在Linux系統中,文件具備三種身份,即屬主、屬組和其餘,每種身份對應可讀(r)、可寫(w)、可執行(x)三種權限。
用戶訪問文件時,首先判斷用戶是否爲文件的屬主,如果屬主則安照屬主權限訪問,若不是屬主,判斷用戶是否文件屬組的組成員,如果組成員,則安照組權限訪問,不然安照其餘人權限訪問文件。mysql
權限 | 文件 | 目錄 |
---|---|---|
r權限 | 具備讀取文件內容權限,只能使用查看類命令cat、head、tail、less、more | 具備瀏覽目錄和子目錄權限,僅僅能瀏覽目錄內的文件名,無其它操做權限 |
w權限 | 具備新增、修改文件內容權限,不能刪除文件,需參考上級目錄是否具備w權限 | 具備增長、刪除或修改目錄內文件名權限,不能進入目錄、不能複製目錄、不能刪除目錄、不能移動目錄 |
x權限 | 具備執行文件權限 | 具備訪問目錄內容權限,只能進入目錄,不能瀏覽、複製、移動、刪除 |
rw權限 | 能夠查看和編輯文件內容 | 能看,能寫,但沒法進入目錄 |
rx權限 | 容許查看和執行文件,當不能修改文件 | 容許瀏覽目錄文件及子目錄,容許在目錄內新建文件 |
rwx權限 | 能讀,能寫、能執行,當不能刪除,需參考上級目錄是否有w權限 | 能看,能寫,能進入目錄,能刪除內容,能寫入內容 |
對於文件來講,寫的權限和執行的權限,都須要有讀權限配合,若是想對文件進行操做,必須對文件賦予讀的權限;sql
對於目錄來講,寫的權限和讀的權限,都須要有執行權限配合,若是想對目錄進行操做,必須對目錄賦予執行的權限bash
一個普通文件默認權限: 644 保證屬主用戶對文件能夠編輯 保證其餘用戶能夠讀取文件內容
一個目錄文件默認權限: 755 保證屬主用戶對目錄進行編輯 保證其餘用戶能夠讀取目錄中的信息,能夠進入到目錄中less
// 設置全部人權限ide
chmod a=[MODE] filename遞歸
// 設置用戶、組、其它人權限進程
chmod u=[MODE],g=[MODE],o=[MODE] filenameit
// 添加執行權限table
chmod u+x filenameclass
// 數字形式設置文件權限
chmod 644 filename
// 遞歸修改權限
chmod -R 755 dir/subdir
chown [OPTION]... [OWNER][:[GROUP]] FILE...
如:
chown -R mysql:mysql /data/mysql
SUID權限讓普通用戶對可執行二進制文件,臨時擁有二進制文件的屬主權限,若是設置的二進制文件沒有執行權限,則SUID 權限爲S。SUID權限僅對二進制文件有效,對文件和目錄無效。
添加SUID權限
chmod 4755 /usr/bin/passwd 或chmod u+s /usr/bin/passwd
將目錄設置SGID權限後,在該目錄下建立目錄和文件,都與該目錄的屬組保持一致。
添加SGID權限
chmod 2755 dirname 或 chmod g+s dirname
Sticky粘滯位僅對目錄有效,讓多個用戶具備讀寫權限,且只能刪除本身的文件。
添加SBIT權限
chmod 1755 /tmp 或 chmod o+t /tmp
chattr用來修改文件系統的權限屬性
chattr [+-=] [選項] filename | dirname
a:讓文件或目錄僅可追加內容
i:不得更改文件或目錄
umask設置文件和目錄的默認權限,系統默認umask=022,默認目錄權限777-022=755,默認文件權限666-022=644umask屬性在/etc/bashrc、/etc/profile、 ~/.bashrc、/.bash_profile