控制誰可以使用Linux的chmod命令訪問檔案、搜尋目錄和執行指令碼。這個命令修改Linux檔案許可權,乍看起來很複雜,但一旦你知道它們是如何工作的,實際上就相當簡單了。
在Linux中,誰可以對檔案或目錄做什麼是透過許可權集來控制的。有三組許可權。一組用於檔案所有者,另一組用於檔案組成員,最後一組用於其他所有人。
許可權控制可以對檔案或目錄執行的操作。它們允許或阻止檔案被讀取、修改或執行(如果是指令碼或程式)。對於目錄,許可權控制誰可以將cd放入目錄,誰可以在目錄中建立或修改檔案。
您可以使用chmod命令來設定每個許可權。要檢視對檔案或目錄設定了哪些許可權,可以使用ls。
我們可以使用-l(長格式)選項讓ls列出檔案和目錄的檔案許可權。
ls -l在每行上,第一個字元標識要列出的條目型別。如果是破折號(-),則是一個檔案。如果是字母d,那就是一個目錄。
接下來的九個字元表示三組許可權的設定。
每組許可權中有三個字元。這些字元表示是否存在某個許可權。它們不是破折號(-)就是字母。如果字元是破折號,則表示未授予許可權。如果字元是r、w或x,則已授予該許可權。
這些字母代表:
例如:
在我們的螢幕截圖中,第一行以d開頭。這一行指的是一個名為“archive”的目錄。目錄的所有者是“dave”,目錄所屬的組的名稱也叫“dave”
接下來的三個字元是此目錄的使用者許可權。這表明所有者具有完全許可權。r、w和x字元都存在。這意味著使用者dave擁有該目錄的讀、寫和執行許可權。
第二組三個字元是組許可權,它們是r-x。這些字元表示dave組的成員對此目錄具有讀取和執行許可權。這意味著他們可以列出目錄中的檔案及其內容,並且可以將其cd(執行)到該目錄中。他們沒有寫許可權,因此無法建立、編輯或刪除檔案。
最後一組三個字元也是r-x。這些許可權適用於不受前兩組許可權控制的人。這些人(稱為“其他人”)對此目錄具有讀取和執行許可權。
總之,組成員和其他人擁有讀取和執行許可權。所有者,一個叫dave的使用者,也有寫許可權。
對於所有其他檔案(除了mh.sh公司指令碼檔案)dave和dave組的成員對檔案具有讀寫屬性,其他成員僅具有讀許可權。
對於特殊情況mh.sh公司指令碼檔案中,所有者dave和組成員具有讀取、寫入和執行許可權,其他成員僅具有讀取和執行許可權。
要使用chmod設定許可權,我們需要告訴它:
我們使用指示符來表示這些值,並形成簡短的“permissi***語句”,如u+x,其中“u”表示“user”(誰),“+”表示add(什麼),“x”表示execute permission(哪個)。
我們可以使用的“誰”值是:
如果這些都沒有使用,chmod的行為就好像使用了“a”。
我們可以使用的“what”值是:
我們可以使用的“which”值是:
假設我們有一個每個人都有完全許可權的檔案。
ls -l new_ file.txt我們希望使用者dave具有讀寫許可權,組和其他使用者僅具有讀許可權。我們可以使用以下命令:
chmod u=rw,og=r new_file.txt使用“=”運算子意味著刪除所有現有許可權,然後設定指定的許可權。
讓我們檢查此檔案的新許可權:
ls -l new_file.txt現有的許可權已被刪除,新的許可權已設定,如我們所料。
在不刪除現有許可權設定的情況下新增許可權如何?我們也很容易做到。
假設我們有一個已經完成編輯的指令碼檔案。我們需要讓它對所有使用者都可執行。其當前許可權如下所示:
ls -l new_script.sh我們可以使用以下命令為每個人新增執行許可權:
chmod a+x new_script.sh如果我們看一下許可權,就會發現execute許可權現在被授予了所有人,而現有的許可權仍然存在。
ls -l new_script.sh如果沒有“a+x”語句中的“a”,我們也可以實現同樣的目標。下面的命令也同樣有效。
chmod +x new_script.sh我們可以同時對多個檔案應用許可權。
以下是當前目錄中的檔案:
ls -l假設我們要從副檔名為“.page”的檔案中刪除“其他”使用者的讀取許可權。我們可以使用以下命令執行此操作:
chmod o-r *.page讓我們來看看有什麼影響:
ls -l如我們所見,對於“其他”類別的使用者,讀取許可權已從“.page”檔案中刪除。沒有其他檔案受到影響。
如果我們想在子目錄中包含檔案,我們可以使用-R(遞迴)選項。
chmod -R o-r *.page使用chmod的另一種方法是以三位數的形式向所有者、組和其他人提供您希望授予的許可權。最左邊的數字表示所有者的許可權。中間數字表示組成員的許可權。最右邊的數字表示其他數字的許可權。
此處列出了您可以使用的數字及其代表的內容:
三個許可權中的每一個都由一個二進位制位表示,二進位制位相當於十進位制數。所以5,在二進位制中是101,意味著讀和執行。2是二進位制的010,表示寫許可權。
使用此方法,您可以設定希望擁有的許可權;您不會將這些許可權新增到現有許可權中。因此,如果讀寫許可權已經存在,則必須使用7(111)來新增執行許可權。使用1(001)將刪除讀寫許可權並新增執行許可權。
讓我們為其他使用者類別的“.page”檔案新增讀取許可權。我們還必須設定使用者和組許可權,因此需要將它們設定為現有的許可權。這些使用者已經擁有讀寫許可權,即6(110)。我們希望“others”具有讀取和訪問許可權,因此需要將它們設定為4(100)。
以下命令將完成此操作:
chmod 664 *.page這將使用者、組成員和其他人所需的許可權設定為所需的許可權。使用者和組成員的許可權已重置為原來的許可權,其他使用者和組成員的讀取許可權已恢復。
ls -l如果您閱讀chmod的手冊頁,您將看到與SETUID和SETGID位以及受限刪除或“粘滯”位相關的一些高階選項。
對於99%需要chmod的情況,這裡描述的選項將涵蓋您。
... 在您真正充分利用終端之前,您需要知道如何導航它。這就是為什麼我們認為這些是最基本的Linux命令:如果你不能更改目錄或者在一個你不記得如何使用的命令上獲得幫助,那麼再多的終端知識也幫不了你。 ...
...但幸運的是,更改Linux密碼很容易。今天我們將向您展示如何通過幾個簡單的命令更改當前使用者的密碼、其他使用者的密碼和超級使用者的密碼。 ...
... 第一行告訴執行這個程式的人如何執行它(即使用bash直譯器)。第二個命令與您在命令列中輸入的任何其他命令一樣。將該檔案另存為hello_世界.sh,然後: ...
...改其目錄,您可以控制他們可以訪問哪些命令。下面介紹如何在Linux上設定受限shell。 受限炮彈 受限shell不是另一個shell。這是標準外殼的另一種模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下啟動。在本文中,我們將...
...立整合服務的過程,甚至與雜誌進行對話。 本教程演示如何設定啟動系統時啟動的系統服務。要在登入時啟動圖形程式,請改用桌面的啟動管理器。 啟動時執行程式 有時,您在計算機上安裝的軟體會將自己連線到Linux啟動過...
...可以設定檔案和目錄的讀、寫和可執行許可權。 相關:如何在Linux上使用chmod命令 但是chmod命令並不是一個僅限Linux的命令。與許多其他Linux終端命令一樣,chmod可以追溯到上世紀70年代的Unix Linux和macOS都有這一傳統,這就是chmod命...
...權的人才能訪問儲存的密碼,那麼那些沒有該許可權的人如何更改他們的密碼? 提升你的地位 通常,Linux命令和程式執行時與啟動程式的人具有相同的許可權集。當root執行passwd命令以更改密碼時,它將以root的許可權執行。這意...
...們談論Linux檔案時間戳時。在本指南中,我們將解釋系統如何更新它們,以及如何自己修改它們。 atime、mtime和ctime的區別 每個Linux檔案都有三個時間戳:訪問時間戳(atime)、修改時間戳(mtime)和更改時間戳(ctime)。 訪問時...
...給它: drink_of-the_Year="$my_boost $this_year" echo drink_of_the-Year 如何在指令碼中使用變數 如果沒有變數,指令碼將完全無法執行。變數提供了靈活性,使指令碼成為通用的解決方案,而不是特定的解決方案。為了說明這一區別,這裡...