所以你已經找到了你喜歡的Linux風格,但是現在你很困惑,因為你對終端命令和Linux文件權限一無所知?
或者你有一個在Linux服務器上託管的網站,你遇到了一些文件權限問題,這些問題只能通過一些命令行魔法來解決。
無論如何,要學習的最基本的Linux命令之一是一個稱為chmod的小而強大的命令。但是在解釋這個命令的作用之前,我們必須先了解一下Linux是如何處理文件安全的。
Linux操作系統實際上是類Unix系統(瞭解Linux與Unix),類Unix系統處理文件權限的方式如下:
每個文件都有一個所有者,它決定了文件的“用戶類”。每個文件也有一個組,它決定了文件的“組類”。任何不是所有者並且不屬於同一組的系統用戶都被確定為其他用戶。
類Unix系統上的所有文件都有分配給這三個類的權限,這些權限決定了這些類可以對給定文件執行哪些操作。
在類Unix系統上可用的三種操作是:read(打開和查看文件內容的能力)、write(打開和修改文件內容的能力)和execute(將文件作為可執行程序運行的能力)。
換句話說,文件的權限決定是否:
Linux文件權限可以以兩種格式顯示。
第一種格式稱為符號表示法(symbolic notation),它是一個由10個字符組成的字符串:一個字符表示文件類型,然後九個字符表示文件的讀(r)、寫(w)和執行(x)權限(按所有者、組和其他人的順序)。如果不允許,則使用破折號(-)。
例如:
-rwxr-xr--這意味著它是一個常規文件,擁有所有者的讀、寫和執行權限;擁有組的讀和執行權限;只有其他人的讀權限。
第二種格式稱為數字表示法,它是由三個數字組成的字符串,每個數字分別表示用戶、組和其他權限。每個數字的範圍從0到7,每個數字的值是通過對類的權限求和獲得的:
換句話說,每個數字值的意義最終是:
所以上面的例子(
-rwxr-xr--)用數字表示是754。
簡而言之,這就是Linux文件權限。
在類Unix系統上,chmod是一個系統級命令,表示“更改模式”,允許您手動更改文件的權限設置。
不要與chown混淆,chown是類Unix系統上的另一個系統級命令,代表“change owner”,允許您將文件的所有權分配給另一個用戶;chgrp代表“change group”,將文件分配給另一個組。知道這些很重要,但不像chmod那樣常用。
將文件的權限設置為644,這樣,只有所有者可以訪問和修改文件,而其他人只能訪問而不修改,並且沒有人可以執行該文件,甚至所有者也不能。這是可公開訪問的文件的理想設置,因為它平衡了靈活性和安全性。
將文件的權限設置為755與644基本相同,只是每個人都有執行權限。這主要用於可公開訪問的目錄,因為需要execute權限才能更改為目錄。
將一個文件的權限設置為555,這樣除了系統的超級用戶之外,任何人都不能修改該文件(瞭解有關Linux超級用戶的更多信息)。這不像644那樣常用,但是知道它仍然很重要,因為只讀設置可以防止意外更改和/或篡改。
將文件的權限設置為777,這樣任何人都可以對該文件執行任何操作。這是一個巨大的安全風險,尤其是在web服務器上!實際上,任何人都可以訪問該文件,根據需要修改它,並在系統上執行它。你可以想象,如果一個流氓用戶得到它的潛在損害。
chmod命令的格式很簡單:
chmod [permissi***] [file]權限可以用數字符號表示,這是您要為所有類分配特定權限時使用的最佳格式:
chmod 644 example.txt權限也可以用符號表示,當您只想修改特定類的權限時,這很有用。例如:
chmod u=rwx example.txtchmod g=rw example.txtchmod o=rw example.txt您可以修改多個類的權限,例如此示例將所有者設置為讀/寫/執行,但將組和其他類設置為讀/執行:
chmod u=rwx,g=rw,o=rw example.txt將相同的權限分配給多個類時,可以將它們合併:
chmod u=rwx,go=rw example.txt但是,當您只想為特定類添加或刪除特定操作的權限時,使用符號表示法的美妙之處就顯現出來了。
例如,這將為文件所有者添加執行權限:
chmod u+x example.txt這將刪除其他用戶的寫入和執行權限:
chmod o-wx example.txt最後,如果要將特定權限集應用於特定目錄(即遞歸chmod)中的所有文件和文件夾,請使用-R選項並以目錄為目標:
chmod -R 755 example_directory雖然chmod命令乍一看有點瘋狂,但它實際上非常簡單,而且完全符合邏輯。如果你瞭解以上內容,你就基本上掌握了chmod!
chmod、chown和chgrp等命令只是Linux的冰山一角。如果您對操作系統是全新的,我們建議您為Linux新手檢查一下這些整潔的技巧,以及這些您永遠不應該運行的Linux命令。
但最重要的是,你最好看看我們全面的Ubuntu和Linux初學者指南,它會教你入門所需的一切知識,熟悉到讓你感到舒服。
... 使用cd命令轉到要隱藏的檔案或資料夾。例如,我們要在Documents資料夾中隱藏FilesToHide資料夾。因此,我們使用以下命令: ...
如果您不知道如何使用ls命令,那麼獲取與儲存上的檔案相關的詳細資訊是很困難的。在這裡,我們將討論Linux上與ls命令相關的所有內容,以及它使用的一些不同的標誌。 ...
...nux密碼很容易。今天我們將向您展示如何通過幾個簡單的命令更改當前使用者的密碼、其他使用者的密碼和超級使用者的密碼。 ...
...限使用者不能更改其目錄,您可以控制他們可以訪問哪些命令。下面介紹如何在Linux上設定受限shell。 受限炮彈 受限shell不是另一個shell。這是標準外殼的另一種模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下啟動。在...
...際上並不需要它們中的大多數,但是包含它們可以讓我們解釋它們。 描述:這是您的服務的文字描述。 想要:我們的服務想要但不需要在我們的服務啟動前啟動網路。 After:此服務成功啟動後(如果尚未執行)應啟動的單元名...
...“選擇”按鈕。這將把它新增到列表中。 訪問級別是自解釋的,具有“只讀”訪問級別的使用者無法編輯檔案,但他們可以訪問這些檔案。如果帳戶設定為“讀寫”級別,則它們可以同時執行這兩項操作。 要為列表中的使用者...
...權的人如何更改他們的密碼? 提升你的地位 通常,Linux命令和程式執行時與啟動程式的人具有相同的許可權集。當root執行passwd命令以更改密碼時,它將以root的許可權執行。這意味著passwd命令可以自由訪問/etc/shadow檔案中儲存的...
...思?當我們談論Linux檔案時間戳時。在本指南中,我們將解釋系統如何更新它們,以及如何自己修改它們。 atime、mtime和ctime的區別 每個Linux檔案都有三個時間戳:訪問時間戳(atime)、修改時間戳(mtime)和更改時間戳(ctime)...
...串。它們是--format和--printf。它們之間的區別是——printf解釋C樣式的轉義序列,例如換行符和製表符,並且不會自動向其輸出中新增換行符。 我們建立一個格式字串並將其傳遞給stat。要使用的格式序列是%n表示檔名,%s表示檔案...