linux中權限管理
權限的描述:
權限的意思就是用戶擁有的對系統支配能力的大小在Linux中是嚴格控制用戶權限的,不同的用戶給予不同的權限,權限應遵循能少給就盡量少給的原則從而增加系統的安全性。
進程安全上下文:
進程對問件訪問權限的應用模型:進程的屬主與文件的屬主是否相同,如果相同,則應用屬主權限,如果不同 則去檢測進程的屬主是否與文件的屬組相同如果相同,應用屬組權限,否則就只能應用other權限。
Linux中權限劃分:
按照針對的對象可分為:
user:屬主
group:屬組
other:其他人
示例:

在看到的 rw-r--r-- 中:左三位定義了user權限
中三位定義了group權限
右三位定義了other權限
按照可執行的操作分為:
r:read 讀
w:write 寫
x:excute 執行
按照對文件和目錄的執行結果不同劃分:
r:read |
w:write | x:excute | |
文件 | 可以查看文件的的內容 | 可以對文件的內容進行修改 | 可將此文件運行為進程 |
目錄 | 可以列表查看目錄 | 可以對目錄內的文件和子目錄修改、刪除也可添加 | 能cd切換到此目錄作為工作目錄 |
權限的組合機制:
權限位 二進制 八進制
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
權限的管理命令:
chmod 命令
格式1:賦權、授權表示法
chmod [ugoa][+-=][rwx]文件...
u、g、o、a分別代表:屬主、屬組、其他人、所有人
+:在原來權限的基礎上增加權限
-:在原來權限的基礎上去除權限
=:直接定義權限
r、w、x:讀、寫、執行
X權限:加x權限到目錄上,而不給文件加,數字表示法不支持
當執行所有人統一修改權限時,a可省略,但加w權限時除外(如圖最后一條命令)
示例:

格式2:八進制表示法
chmod nnn 文件...
nnn表示八進制數,每個n分別代表對應的rwx(權限位)的組合的和
r=4
w=2
x=1
第一個n代表屬主
第二個n代表屬組
第三個n代表其他人
示例:

格式3:
chmod --reperence=文件1 文件2 // 以文件1的權限為標準修改文件2的權限
示例:

chmod命令的選項:
-R :遞歸修改目錄的權限,當執行-R選項時,會把目錄及其目錄里的文件、子目錄的權限一并修改。
示例:

從屬關系的管理命令: chown、chgrp
chown命令只有root用戶可以執行;chgrp命令root可執行,文件的所有者也可以執行,不過只能修改為所有者所屬的組。 chown命令:
格式1 chown [OPTION] ..[OWNER]:[GROUP] FILE ....
可修改文件或目錄的屬主、屬組,也可二者同時修改
示例:
chown [OPTION] .. --reference=RFILE FILE ...
把RFILE的從屬關系賦值給FILE,
示例:
chown命令的選項:
-R:遞歸修改目錄的從屬關系,當執行-R選項時,會把目錄及其目錄里的文件、子目錄的從屬關系一并修改。
chgrp命令:對所屬組進行更該與chown 用法一致
特殊權限:SUID SGID sticky
對文件或目錄加上特殊的權限以實現某些特殊的需要
對應的八進制數:
SUID = 4
SGID = 2
sticky = 1
介紹:
SUID
當給一個可執行的程序添加SUID權限時,如果此二進制程序的屬主有可執行權限,則權限位x位上顯示s(顯示s,但x權限并沒有刪除,只是做了隱藏),當其他用戶執行此二進制程序時,將以屬主身份執行,如果屬主對此二進制程序沒有可執行權限,則權限位x位上顯示S。
用法:
格式1: chmod u+s 二進制程序
格式2: chmod nnnn 二進制程序
第一個n就代表特殊權限位
SGID:
作用于二進制文件時,與SUID用法一致,
chmod g+s 可執行程序
當作用于目錄時,該目錄內再新建文件或目錄的所屬組自動繼承該目錄的所屬組。
chmod g+s 目錄
sticky:粘滯位,只能作用于目錄,占據other的執行權限位
作用:執行后,目錄里的文件或目錄將會受到保護,這些文件或目錄只能由root用戶和文件、目錄的擁有者來進行管理。其他人無權修改刪除。
chattr 命令;鎖定文件
應用場景:當有一些文件特別重要,害怕被誤刪出時,可以用到,這只是一個方面。
用法:
選項:
+i:鎖定后的文件將不能刪除、改名、更改
-i:解鎖+i的鎖定
+a:鎖定后的文件只能增加
-a:介紹+a的鎖定
lsattr命令:可以查看chattr的鎖定情況
示例:
訪問控制列表:
ACK:實現靈活的權限管理
設置命令: setfacl
格式:setfacl -m u/g:用戶/組:權限 文件/目錄
設置用戶或組對文件或目錄的ACL權限
u:屬主 g:組 d:默認設置
與常用選項的組合:
setfacl -m u:zhang:rw f1 //設置zhang用戶對f1文件的acl訪問權限為rw
setfacl -x u:zhang f1 //取消zhang用戶對f1文件的acl訪問權限
setfacl -b f1 //清除所有ACL設置
setfacl -m d:zhang:rw 目錄 //d 選項為默認設置,設置新建的文件或目錄機子文件都設上ACL權限(只針對于目錄)
setfacl -k 目錄 //刪除默認ACL設置
查詢ACL設置命令:getfacl 文件/目錄
示例:
[root@myhost testdir]# setfacl -k dir
[root@myhost testdir]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x