Linux系統有什麼基本許可權,許可權管理命令是什麼?下面跟yjbys小編一起來看看吧!
一、基本許可權
linux許可權機制採用UGO模式。其中 u(user)表示所屬使用者、g(group)表示所屬組、o(other)表示除了所屬使用者、所屬組之外的情況。
u、g、o 都有讀(read)、寫(write)、執行(excute) 三個許可權,所以UGO模式是三類九種基本許可權。
用命令 ls -l 可列出檔案的許可權,第一列輸出明確了後面的輸出(後面一列代表 ugo許可權)。第一個字母對應的關係:
“-” 普通檔案
“d” 目錄
”l“ 符號連結
”c“ 字元裝置
"b" 塊裝置
"s" 套接字
"p" 管道
修改檔案或目錄的所屬使用者: chown 檔名 | 目錄名 使用者
-R 該引數以遞迴的方式修改目錄下所有檔案的所屬使用者,引數可以敲 chown --help 檢視。
修改檔案或目錄的所屬組: chgrp 檔名 | 目錄名 組名
-R 該引數以遞迴的方式修改目錄下的所有檔案的所屬組。
命令chmod 用來修改檔案或目錄的許可權: chmod -引數 模式 檔案 | 目錄
例子: 修改目錄 log下所有檔案的許可權為700
chmod -R 700 log
注:700的來歷是 u g o
rwx rwx rwx
111 000 000
關於 chmod 命令的許可權模式除了數字表示,還可以是 u、g、o 、a 加 +、- 來表示。格式如下:u、g、o分別代表使用者、屬組和其他,a 就是
all ,可以代替ugo。 +、- 代表增加或刪除對應的許可權,r、w、x 代表三種許可權,分別是讀、寫、執行。
例子:對於目錄 log下的所有檔案(已有許可權是700)增加所屬組(g)的讀(r)、執行(x)許可權。
chmod -R g+rx log
類似的命令可能還有很多,這裡只是舉幾個最基本且常用的例子。很多命令用到時,再去查也可以。還可參考《鳥哥的'Linux私房菜》。
二、特殊許可權
Linux的3個特殊的許可權,分別是setuid、setgid和stick bit。
setuid許可權(S):只有使用者可擁有,出現在執行許可權(x)的位置。
setuid許可權允許使用者以其擁有者的許可權來執行可執行檔案,即使這個可執行檔案是由其他使用者執行的。
setgid許可權(S):對應於使用者組,出現在執行許可權(x)的位置。
setgid許可權允許以同該目錄擁有者所在組相同的有效組許可權來允許可執行檔案。但是這個組和實際發起命令的使用者組不一定相同。
stick bit (t /T):又名粘滯位,只有目錄才有的許可權,出現在其他使用者許可權(o)中的執行位置(x)。當一個目錄設定了粘滯位,只有建立了該目錄的使用者才能刪除目錄中的檔案,但是其他使用者組和其他使用者也有寫許可權。使用 t 或 T來表示。若沒有設定執行許可權,但是設定了粘滯位,使用 t;若同時設定了執行許可權和粘滯位使用 T。典型的粘滯位使用是 /tmp 目錄,粘滯位屬於一種防寫。
設定特殊許可權:
setuid: chmod u+s filename
setgid: chmod g+s directoryname
stick bit: chmod o+t directoryname
用數字表示特殊許可權,是在基本許可權之上的。濁嘴笨腮說不清楚,看例子:
例子:將上面例子中的log日誌目錄(已有許可權 700)許可權設定為755。特殊許可權是類似 /tmp目錄的 stick bit有效。
特殊許可權 基本許可權
setuid setgid stick bit user group other
0 0 1 rwx rwx rwx
111 000 000
所以,設定特殊許可權(stick bit)的命令應該是:chmod 1755 log
設定特殊許可權後,ls -dl 檢視該目錄:drwxr-xr-t 2 gg gg 4096 5月 11 19:05 log ( 注意 other 的 x 位是代表特殊許可權的字母 t )
取消該特殊許可權的命令:chmod 755 log 。如此 stick bit的許可權就沒有了。
再次 ls -dl 檢視該目錄: drwxr-xr-x 2 gg gg 4096 5月 11 19:15 log ( 注意最後一位已經變為代表普通許可權的字母x )
需要注意的是,最前面一位 ”1“ 就是特殊許可權位。其他兩個特殊許可權的設定也類似。setuid使用不是無限制的。出於安全目的,只能應用在Linux ELF格式二進位制檔案上,而不能用於指令碼檔案。
三、高階許可權
ACL(Access Control List),訪問控制列表是Linux下的的高階許可權機制,可實現對檔案、目錄的靈活許可權控制。ACL 允許針對不同使用者、
不同組對同一個目標檔案、目錄進行許可權設定,而不受UGO限制。
在一個檔案系統上使用ACL需要在掛載檔案系統的時候開啟ACL功能。而根分割槽(ROOT)預設掛載的時候支援ACL。
命令:mount -o acl /掛載路徑
例子:mount -o acl /dev/sdb1 /mnt
檢視一個檔案的ACL設定的命令: getfacl file
(針對一個使用者)為一個檔案設定指定使用者的許可權的命令: setfacl -m u:username:rwx filename
(針對一個組)為一個檔案設定指定組的許可權的命令: setfacl -m g:groupname:r-x filename
刪除一個ACL設定的命令: setfacl -x u:username filename