目錄標題
- chmod指令
- 八進制形式權限修改
- 文件擁有者所屬組的修改
- umask有關內容
chmod指令
chmod指令可以用來修改人員的權限其形式如下:
u代表的是擁有者,g代表的是所屬組,o代表的是其他人,a表示所有人,如果你想增加權限的話就使用+,如果你想刪除權限的話就使用-,對應的權限就是r w x,當然這里的權限可以是一個組合比如說rwx,rx,wx等等,最后再加上你想要修改的文件,那么這里的操作就如下:
一開始所有人對test1文件的權限都是沒有的,我要是想讓test1文件的擁有者有讀權限就可以使用下面的指令:
如果我想讓test1文件的所屬組擁有讀和執行的權限的話就可以使用下面的操作:
如果我想讓test1文件的其他人擁有讀寫執行權限的話就可以使用下面的指令:
如果我想讓test1文件的所有人都沒有任何權限的話就可以使用下面的指令:
當然這里的修改還可以連續的將多人進行修改,比如說我想讓擁有者的權限變為rx讓其他人的權限都變成rwx的話就可以執行下面的操作:
八進制形式權限修改
文件的權限用rwx來表示,如果哪個權限沒有的話對應位置上的內容就變成了-,那么這里我們就可以把 - 當成0,把r w x 都看成1比如說rwx就是1 1 1,r - x 就是101 ,r - -就是000,那么這里我們就可以根據這個邏輯列出一個表出來
一個人的權限可以由三個二進制數字來表示,而3個二進制數字可以合成一個8進制數字,一個文件有3類人,所以就有三個不同的權限來進行表示,所以一個文件就應該有三個八進制數字來表示權限,比如說一個文件的權限分別為:rwx rw- r-x那么這個文件的權限就可以用765來進行表示,如果一個文件的權限為 - - - -w- r-x的話,那么就可以使用數字025來表示文件的權限,既然一個文件的權限可以使用數字來表示的話,那么這里我們也可以用數字來修改一個文件的權限,那么修改的形式就是如下:
比如說一個文件的開始權限為000,我們要想將這個權限修改成rwx rwx rwx的話就可以這樣進行修改:
如果我們想把這個文件的權限改成r-x rw- r- -的話就可以使用下面的指令:
那么這就是八進制權限修改法,希望大家能夠理解。
文件擁有者所屬組的修改
使用chown指令可以修改文件的擁有者,使用chgrp指令可以修改文件的所屬組,這兩個指令的用法如下:
這里我將用戶改成了root,如果是普通用戶要使用這個指令的話得用sudo進行提權,那么這里的操作如下:
如果是普通用戶不用sudo提權的話,是無法修改這里的人的:
這里的chown可以連續修改擁有者和所屬組,其用法如下:
那么這就是chown和chgrp的用法,希望大家可以理解。
umask有關內容
我們首先來看看下面的操作:
創建了一個文件夾和一個普通文件,我們通過ll可以看到這里文件的起始權限是rw- rw- r- -,而文件夾的起始權限為rwx rwx r-x那這是為什么呢?答案是跟umask的值有關,往命令行中輸入umask就可以看到umask的值:
umask值為0002第一個0表示后面的三個數字都是八進制,我們將三個八進制數字展開成二進制就變成了這樣:000 000 010,這里得將這些數字看成權限,所以這里umask的權限就變成了- - - - - - -w-,而umask的概念是權限掩碼就是凡事在umask中出現的權限在文件或者目錄中都得去掉,linux規定:目錄的起始權限為777也就是rwx rwx rwx 普通文件的起始權限是666也就是rw- rw- rw-,而umask中的other有寫權限,所以目錄和文件在創建的時候就得將other中的寫權限去掉,所以目錄在創建的時候權限就變為了rwx rwx r-x,文件的權限就變成了rw- rw- r–,那這里我們可以驗證一下上面講的內容是否是對的:
我們講umask的值進行修改,改成了777然后再創建文件或者目錄的話就可以發現這里的起始權限都沒有了:
我們還可以講umask的值設置為444這樣我們創建文件或者目錄的話就都沒有讀權限:
這里大家注意的一就是umask不是單獨的減法,而是通過下面的公式來算出的最終權限:
umask要去掉的權限位是1,要保留的權限位是0,使用~反轉權限后就變成~umask要去掉的權限是0,要保留的權限是1,最后再使用&操作可以讓起始權限中與~umask對應的位置為0的數字都變成0,就是~umask為0的位置起始權限也變成了0,最終達到權限刪除的作用。