Linux文件特殊权限、FACL、sudo
suid :屬主有s權限,意味著任何用戶在執行此程序時,不以發起者的身份運行,而是以程序所有者的身份執行。
sgid:屬組有s權限,執行此程序時,其進程的屬組不再是運行著本人所屬的基本組,而是此文件的屬組,主要目的不是上述內容,而是在某些場景下,在某個目錄中創建的文件屬組是目錄的屬組,而不是用戶的基本組。
sticky:附加載other上權限,每個用戶只可以刪除自己的文件。
FACL用于實現在原有的控制機制之外,再補充一種訪問控制功能。
getfacl用以查看文件的訪問控制列表
setfacl
-m:設置:setfacl -mu:mysql:rw- ?/root/abc
-x:刪除:setfacl -x ?u:mysql ?/root/abc
在有了facl之后,文件權限的檢查順序:
1、用戶是否為文件屬主
2、用戶是否匹配特定的訪問控制條目
3、用戶是否在文件屬組
4、用戶所在組是否匹配特定的訪問控制條目
5、其它。
如果有其他的文件系統,默認acl是沒有打開的。
可以使用umount 之后,mount -oacl 來重新掛載。
寫入fstab defaults,acl
tune2fs -o acl ? /path/to/device ? 調整卷屬性,添加acl特性
tune2fs -o ^acl ? /path/to/device ?刪除acl特性
sudo
用于控制某個用戶能夠以另外一個用戶的身份在哪臺主機上執行什么命令
格式:who ?which_host=(run_as_xxuser) ? commands
建議使用visudo編輯配置文件,有語法檢查功能。
別名種類:
用戶別名:User_Alias
主機別名:Host_Alias
身份別名:Runas_Alias
命令別名:Cmnd_Alias
別名只能使用大寫英文字母,可以使用!取反
User_Alias ?名稱 = 用戶名,%組名,其他用戶別名
Host_Alias ?名稱 = 主機名、ip、網絡地址、其他主機別名
Runas_Alias 名稱 = 用戶名、%組名,其他的Runas組名
Cmnd_Alias ?名稱 = 命令路徑、目錄(此目錄內的所有命令),其他命令別名
sudo -l ?列出可以使用的命令
-k 每次必須輸入密碼;
tomALL=(root) NOPASSWD: /usr/sbin/useradd PASSWD: /usr/sbin/usermod
User_AliasUSERADMIN = tom %tom
Cmnd_AliasUSERADMINCMND = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel,/usr/sbin/passwd [A-Za-z]*, ?!/usr/sbin/passwd root
其他配置詳見man 5 sudoers
轉載于:https://blog.51cto.com/jackyan/1392357
總結
以上是生活随笔為你收集整理的Linux文件特殊权限、FACL、sudo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net源碼坊論壇上線
- 下一篇: 软件开发心得点滴记录