-
切換用戶命令 ?su 用戶
賦予普通用戶已超級管理員的權限 :以root身份 visudo 后,添加一行
user All=(All) 命令的絕對路徑 ?,注釋:第一個All 指管理者的主機的IP地址,意思是,只有在指定的IP地址下才有sudo這個權限,第二個All指,可以切換成任意身份,這個可以直接省略 例如 ? user All=(All) /sbin/shutdown -r now ? 也可以是 user All=/sbin/shutdown -r now
如果為用戶組添加權限的話 ?%組名 All=(All) /sbin/shutdown -r now ?
普通用戶可以執行sudo -l查看可以執行的命令?
普通用戶執行超級命令的時候必須要加 sudo 命令的絕對路徑 例如 sudo /sbin/shutdown -r now
查看全部 -
遞歸ACL:指在給父目錄賦予權限的同時,給已經存在于目錄下的文件賦予相同的權限?
setfacl -m u:用戶名:權限 ?-R 目錄名? ? ? ? 這里R表示遞歸
注意: a.用遞歸的方式容易導致文件權限溢出 b.遞歸acl只能用在目錄而不能用于普通文件
默認ACL 權限 : 給父目錄下將來新建的文件默認賦予父目錄的權限
setfacl -m d:u:用戶名:權限 ? 目錄名? ? ? 這里d 表示default
查看全部 -
chattr命令格式(對root生效)
charrt[+-=][選項]文件或目錄
+:增加權限?
-:刪除權限?
=:等于某權限
i:如果對文件設置i屬性,那么不允許對文件進行刪除,改名也不能添加和 修改數據;如果對目錄設置i屬性,那么只能修改目錄下文件的數據,但不能 建立和刪除文件
a:如果對文件設置a屬性,那么只能在文件中增加數據,但不能刪除也不能修改數據 如果對目錄設置a屬性,那么只允許在目錄中建立和修改文件,但不允許刪除?
文件用echo >>輸出重定向添加數據
lsattr 選項 文件名?
-a 顯示所有文件和目錄?
-d 僅列出目錄本身的屬性
查看全部 -
1.SUID只能對執行文件生效,SGID能對目錄和執行文件生效,SBIT只能對目錄生效
2.要賦予SBIT 權限必須給目錄普通用戶賦予7權限,因此也比較危險。
3.賦予SBIT權限: chmod o+t 或者 chmod 1***
4.目錄有SBIT權限后,任何普通用戶都可以在目錄下新建文件,但是只能刪除自己創建的文件,不允許刪除其它用戶的文件。
5. /tmp/ 目錄默認有SBIT權限
查看全部 -
SetGID針對文件的作用
只有可執行二進制程序才能設定SGID權限
命令執行者要對該程序擁有x(執行)權限
命令執行執行程序時,組身份升級為該程序文件的屬組
SetGID權限只在程序執行過程中有效
例子 、usr/bin/locate具有SetGID身份
SetGID針對目錄的作用
普通用戶必須對此目錄必須擁有r和x權限,才能進入此目錄
普通用戶在此目錄中的有效組會變成此目錄的屬組
若普通用戶對此目錄擁有w權限,新建的文件的默認屬組是這個目錄的屬組
設定SetGID
chmod g+s 文件名 chmod 2755 文件名
取消SetGID
chmod g-s 文件名 chmod 0755 文件名
查看全部 -
定期檢查suid和sgid
#!/bin/bash?
find / -perm -4000 -o -perm -2000> /tmp/setuid.check?
for i in $(cat /tmp/setuid.check)?
????do
????grep $i /home/suid.log> /dev/null
????????if [ "$?" != "0" ]
????????then
????????echo "$i isn't in listfile!">>/home/suid_log_$(date +%F)?
????????fi
????done
rm -rf /tmp/setuid.check
查看全部 -
(1)設定SetUID方法?
chmod 4755 文件名
chmod u+s 文件名?
(2)SetUID功能
1.只有可執行二進制程序才能設定SUID權限?
2.命令執行者要對該程序擁有x(執行)權限(如果當前文件沒有執行權限,著會出現大S權限,大S權限是無效的,s=S+x,s才是超級權限。)
3.命令執行者在執行該程序時獲得該程序文件屬主身份
4.SetUID權限只在程序執行過程中有效
passwd擁有SetUID權限,所以普通用戶可以修改自己密碼 cat命令沒有SetUID權限,所以普通用戶不能查看/etc/shadow文件內容
查看全部 -
#授權普通用戶可以添加其他用戶?
visudo?
#編輯/etc/sudoers文件?
user1 ALL= /usr/sbin/useradd
#sudo賦予普通用戶user1添加用戶的命令
user1 ALL= /usr/bin/passwd
#授權user1用戶設定密碼的權限
#注意:這樣設置極不安全,因為user1可以設置root用戶密碼了,這是不合理的,應該按下面這樣寫
user1 ALL= /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root
#說明1:[A-Za-z]* ,這是個正則表達式,passwd后面的跟的用戶名包括任何字母,*代表字母可以重復0-N次
#說明2:!/usr/bin/passwd "",!代表取反,這意味著passwd 后面跟的用戶名不能為空,因為為空代表設置自身密碼,而user1執行設置密碼命令時使用的是root身份
#說明3:!/usr/bin/passwd root,!代表取反,這意味著passwd后面不能跟root
#說明4:,后面一定要有空格,沒有空格不生效
#說明5:三段代碼順序不能顛倒
#原則:sudo賦予的命令越詳細,普通用戶的權限越小,賦予的越簡單,權限越大
user1 ALL=/bin/vi #賦予user1使用vi更改任意文件的權限(甚至包括/etc/shadow 保存用戶名密碼文件).
查看全部 -
切換用戶命令 ?su 用戶
賦予普通用戶已超級管理員的權限 :以root身份 visudo 后,添加一行
user All=(All) 命令的絕對路徑 ?,注釋:第一個All 指管理者的主機的IP地址,意思是,只有在指定的IP地址下才有sudo這個權限,第二個All指,可以切換成任意身份,這個可以直接省略 例如 ? user All=(All) /sbin/shutdown -r now ? 也可以是 user All=/sbin/shutdown -r now
如果為用戶組添加權限的話 ?%組名 All=(All) /sbin/shutdown -r now ?
普通用戶可以執行sudo -l查看可以執行的命令?
普通用戶執行超級命令的時候必須要加 sudo 命令的絕對路徑 例如 sudo /sbin/shutdown -r now
查看全部 -
最大有效權限mask(使用命令getfacl 文件名顯示的結果中倒數第二排會出現mask這個詞)mask是用來指定最大有效權限的。如果我給用戶賦予了acl權限,是需要和mask的權限“相與”才能得到用戶的真正權限。相與是計算機中的術語,皆真方為真,有假便為假。
修改mask值的命令 setfacl -m m:rx 文件
刪除acl權限的命令 setfacl -x u:用戶名 文件 (刪除指定用戶的acl權限)
setfacl -x g:組名 文件 (刪除指定用戶的acl權限)
setfacl -b 文件 (刪除所有的acl權限)
查看全部 -
getfacl 文件名 ? ? //查看acl權限;
setfacl 選項 文件名 ? ? //設定ACL權限的命令;
選項:
-m:設定ACL權限;
-x:刪除指定的ACL權限;
-b:刪除所有的ACL權限;
-d:設定默認ACL權限;
-k:刪除默認ACL權限;
-R:遞歸設定ACL權限; 為用戶設定ACL權限
setfacl -m u:用戶名:權限(rwx) 文件名? ?setfacl -m u:hanle1:rwx abc
為用戶組設定ACL權限 setfacl -m g:組名:權限(rwx) 文件名
?
查看全部 -
文件就三個權限
所有者權限 組權限 其他權限 有時候不夠用 這時候就需要ACL權限 用來解決用戶身份不夠的問題
查看分區ACL權限是否開啟
dumpe2fs -h /dev/sda5
#dumpe2fs命令查詢指定分區詳細文件系統信息的命令
-h ?僅顯示超級塊中信息,而不顯示磁盤塊的詳細信息
文件信息: Default mount options: user_xattr acl 那就說明分區是支持acl的
臨時開啟分區ACL權限 mount -o remount,acl /
#重新掛載根分區,并掛載加入acl權限
永久開啟分區ACL權限
vi /etc/fstab UUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1(#啟動是否需要檢測) 1(#啟動是否需要備份) #加入acl
mount -o remount / #重新掛載文件系統或重啟系統,使修改生效
查看全部 -
遞歸ACL:指在給父目錄賦予權限的同時,給已經存在于目錄下的文件賦予相同的權限?
setfacl -m u:用戶名:權限 ?-R 目錄名? ? ? ? 這里R表示遞歸
注意: a.用遞歸的方式容易導致文件權限溢出 b.遞歸acl只能用在目錄而不能用于普通文件
默認ACL 權限 : 給父目錄下將來新建的文件默認賦予父目錄的權限
setfacl -m d:u:用戶名:權限 ? 目錄名? ? ? 這里d 表示default
查看全部 -
最大有效權限mask(使用命令getfacl 文件名顯示的結果中倒數第二排會出現mask這個詞)mask是用來指定最大有效權限的。如果我給用戶賦予了acl權限,是需要和mask的權限“相與”才能得到用戶的真正權限。相與是計算機中的術語,皆真方為真,有假便為假。
修改mask值的命令 setfacl -m m:rx 文件
刪除acl權限的命令 setfacl -x u:用戶名 文件 (刪除指定用戶的acl權限)
setfacl -x g:組名 文件 (刪除指定用戶的acl權限)
setfacl -b 文件 (刪除所有的acl權限)
查看全部 -
getfacl 文件名 ? ? //查看acl權限;
setfacl 選項 文件名 ? ? //設定ACL權限的命令;
選項:
-m:設定ACL權限;
-x:刪除指定的ACL權限;
-b:刪除所有的ACL權限;
-d:設定默認ACL權限;
-k:刪除默認ACL權限;
-R:遞歸設定ACL權限; 為用戶設定ACL權限
setfacl -m u:用戶名:權限(rwx) 文件名?
為用戶組設定ACL權限 setfacl -m g:組名:權限(rwx) 文件名
查看全部
舉報