Linux與Unix是多用戶操作系統,所以文件的許可權與所有權的實現就顯得很有必要;每個文件主要與三組許可權打交道,分別是用戶(user),用戶組(group),其他用戶(other) 用戶(u)是文件的所有者,通常有所有的文件的操作許可權 用戶組(g)是多個用戶的集合,可能有文件的部分訪問權,相當於各用 ...
Linux與Unix是多用戶操作系統,所以文件的許可權與所有權的實現就顯得很有必要;每個文件主要與三組許可權打交道,分別是用戶(user),用戶組(group),其他用戶(other)
用戶(u)是文件的所有者,通常有所有的文件的操作許可權
用戶組(g)是多個用戶的集合,可能有文件的部分訪問權,相當於各用戶之間的共用文件
其他(o)是指文件所有者和用戶組成員之外的任何人
使用ls -l可以顯示出當前目錄下的文件類型,許可權,所有者以及組在內的多方面信息;
第一列含義為:-(filetype)---(user)---(group)---(other),每組許可權對應一個三位的二進位數,第一位表示擁有讀(r)的許可權,第二位表示有寫(w)的許可權,第三位表示有執行(x)的許可權(若該文件可執行);在擁有相應的許可權時相應的位被置為1(否則為0),表示當前對象擁有此許可權
1:用戶可讀寫執行:-rwx------,通常來說,對於數據文件,用戶的許可權為rw-,可執行文件與腳本的許可權為rwx;對於用戶來說,還擁有一個叫做setuid的特殊許可權,他能出現許可權x的位置,setuid(S)許可權允許可執行文件以其擁有者的許可權來執行,即使該可執行文件是由其他用戶運行的,若被賦予許可權則序列為:-rwS------
2:用戶組讀寫可執行:----rwx---, 對於用戶組來說,其擁有一個被稱作setgid(S)的特殊許可權它允許我們使用任意一個有效用戶組來運行該文件,前提是該組需要與該文件的所需組許可權相同,,----rwS---
3:其他用戶:-------rwx
一:使用chmod(change mode)設置文件許可權:
--x=1;-w-=2;r--=4; r-x=5; rw-=6;rwx=7;
假如設置許可權:rwxrw-r--
1:chomd 764 filepath
2:chmod u=rwx, g=rw, o=r filepath; chmod ugo=r,g=w filepath
為文件增添許可權或刪除許可權:
1:增添可執行許可權給用戶與用戶組(+):
chmod u+x, g+x filepath
2:刪除(-)用戶組的可執行許可權:
chmod g-x fielpath
chmod g=u-r filepath意為設置用戶組的許可權為與用戶相同的許可權,但刪除r許可權
3:給所有(a)的許可權類別(即用戶,用戶組,其他用戶)添加/刪除可執行許可權
chmod a+x filepath
二:更改所有權(change owner)
1:使用chown更改文件的所有權,一般用戶沒有許可權來改變別人的文件的擁有者,也沒有許可權可以將自己的文件的擁有者改設為別人,只有系統管理者(root)才有這樣的許可權:chown user:group filepath (user , group 為新的用戶與用戶組)
2:給目錄設置粘滯位(sticky bit)
粘滯位:目錄有一個叫做粘滯位的特殊許可權,如果某目錄設置了粘滯位,則只有創建該目錄的用戶才能刪除目錄中的文件。其出現在其他用戶組中的執行許可權位置。當設置執行許可權時-------rwt,當沒有設置執行許可權時-------rwT,chmod a+t dirname
3:遞歸方式設置所有權和文件許可權,使用選項-R;
chmod 764 . -R
chown user:group . -R
補:文件類型:- 普通文件 d 目錄(directory); c 字元設備(char);b 塊設備(block);l 符號鏈接(link)s 套接字(socket)p 管道(pipe)