-
11111
查看全部 -
11111
查看全部 -
getfacl 文件名????#查看ACL權限;
setfacl 選項 文件名????#設定ACL的權限;
例:setfacl -m u/g:用戶名或組名:權限 ?目錄或文件名
setfacl -m u:lw:rx /av
????-m????設定ACL權限;
????-x????刪除指定的ACL權限;
????-b????刪除所有的ACL權限;
查看全部 -
11111
查看全部 -
11111
查看全部 -
11111
查看全部 -
dumpe2s -h? /dev/sda5
查看全部 -
ACL權限
查看全部 -
文件就三個權限
所有者權限 組權限 其他權限 有時候不夠用 這時候就需要ACL權限 用來解決用戶身份不夠的問題
查看分區ACL權限是否開啟
dumpe2fs -h /dev/sda5
查看全部 -
chattr命令格式(對root生效)
????chattr [+-=] [選項] 文件或目錄
????+????????#增加權限?
????-???????? #刪除權限?
????=????????#等于某權限
????i:如果對文件設置i屬性,那么不允許對文件進行刪除,改名也不能添加和 修改數據;如果對目錄設置i屬性,那么只能修改目錄下文件的數據,但不能建立和刪除文件
????a:如果對文件設置a屬性,那么只能在文件中增加數據,但不能刪除也不能修改數據 如果對目錄設置a屬性,那么只允許在目錄中建立和修改文件,但不允許刪除
????chattr +i abc ????#給abc文件賦予i權限,不能修改和刪除
????lsattr abc????????????#查看abc文件權限? ?
????chattr -i abc??????#給abc文件取消i權限
????chattr +i 123???? #給目錄賦予i權限
????lsattr -d 123查看目錄123本身的具有attr權限的文件
????lsattr 123查看目錄123下的具有attr權限的文件
文件a權限舉例
????mkdir lw
????cd lw?
????vi dt
????chattr dt
????lsattr dt
????vi dt????????#不能修改數據
????echo asdasda >> dt
????cat dt
目錄a權限舉例
????cd ..
????chatttr +a lw
????lsattr -d lw/
????cd lw
????touch asd
????rm -rf dt????????#不能刪除
查看文件系統屬性
????lsattr 選項 文件名? ?查看文件系統屬性
? ? 選項:-a 顯示所有文件和目錄?
????-d 僅列出目錄本身的屬性,僅列出目錄本身的屬性,而不是子文件的
查看全部 -
SBIT粘著位作用
????粘著位目前只對目錄有效
????普通用戶對該目錄擁有w和x權限,即普通用戶可以再次目錄擁有寫入權限
????如果沒有粘著位,因為普通用戶擁有w權限,所以可以刪除此目錄下所有文件,包括其他用戶建立的文件。一旦賦予了粘著位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件,但是不能刪除其他用戶建立的文件
舉例:
root用戶
????cd /home/usr1/
????mkdir 123
????chmod 777 123
????cd 123
????touch av
????chmod o+t /home/user1/123/
????touch cangls
user1用戶
????rm -rf cangls?
設置與取消粘著位
設置粘著位
????chmod 1755 目錄名
????chmod o+t 目錄名
取消粘著位
????chmod 0755 目錄名
????chmod o-t 目錄名
補充:
????ll -d /tmp/ ????????#目錄默認有SBIT權限
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身份
解釋
? ? /usr/bin/locate是可執行二進制程序,可以賦予SGID
????執行用戶user1對/usr/bin/locate命令擁有執行權限
????執行/usr/bin/locate命令時,組身份會升級為slocate組而slocate組對/var/lib/mlocate/mlocate數據庫擁有r權限,所以普通用戶可以使用locate命令查詢mlocate.db數據庫
????命令結束,user1用戶的組身份返回為user1組
SetGID針對目錄的作用
????普通用戶必須對此目錄必須擁有r和x權限,才能進入此目錄
????普通用戶在此目錄中的有效組會變成此目錄的屬組
????若普通用戶對此目錄擁有w權限,新建的文件的默認屬組是這個目錄的屬組
舉例:
root用戶
????cd /tmp/
????mkdir test
????chmod 777 test?
user1用戶
????cd /tmp/test
????touch cangls
????ll
????chmod 2777 test????????#切換到root用戶
????touch bols
????ll
設定SetGID
????chmod g+s 文件名?
????chmod 2755 文件名
取消SetGID
????chmod g-s 文件名 chmod 0755 文件名
測試:
????touch abc
????chmod g+s abc
舉例:
????ll /usr/bin/locate
????ll /var/lib/mlocate/mlocate
查看全部 -
設定SetUID的方法
4代表SUID
????chmod 4755 文件名
?????chmod u+s 文件名
????chmod u-s 文件名? ? 取消某文件的SetUID? ?(chmod g-s 文件名 //組)
?????chmod u+s 文件名? ? 增加某文件的SetUID? (chmod g+s 文件名 //組)
取消SetUID的方法
????chmod 0755 文件名
????chmod u-s 文件名
危險的SetUID(盡量少操作SetUID)
????關鍵目錄應嚴格控制寫權限。比如“/”、“/usr”等
????用戶的密碼設置要嚴格遵守密碼三原則:復雜性、易記性、時效性
????實際工作當中應該將默認具有SetUID權限的文件作一列表,定時檢查有沒有這之外的文件被設置了SetUID權限。
????絕不允許給系統文件賦SUID權限,如chmod 4755 /bin/vi
定期檢查suid和sgid
#!/bin/bash?
find / -perm -4000 -o -perm -2000> /tmp/setuid.check????#搜索系統中所有擁有SUID和SGID的文件,并保存到臨時目錄中?
for i in $(cat /tmp/setuid.check)?????#for循環,每次循環取出臨時文件中的文件名賦予變量i
腳本
do
????grep $i /home/suid.log> /dev/null????#對比這個文件名是否在模板文件中????臨時掃描出的文件名是否在這個模板文件中? ?把所有輸出丟到/dev/null
? ? ?????if [ "$?" != "0" ]????#檢測上一個命令的返回值,如果不為0,證明上一個命令報錯
? ? ? ? ?then
????????????????echo "$i isn't in listfile!">>/home/suid_log_$(date +%F)?
????????#如果文件名不在模板文件中,則輸出錯誤信息,并把報錯報錯到日志當前日期中
? ? ? ? ?fi
done
rm -rf /tmp/setuid.check
操作步驟
vi suid_check.sh
chmod 755 suid_check.sh
chmod u+s abc
./suid_check.sh
cat suid_log_........
查看全部 -
文件特殊權限
????SetUID??????????
????SetGID????????#UID與GID極不安全????盡量不去修改
????Sticky BIT
SetUID功能
????1.只有可執行二進制程序才能設定SUID權限?
????2.命令執行者要對該程序擁有x(執行)權限(如果當前文件沒有執行權限,著會出現大S權限,大S權限是無效的,s=S+x,s才是超級權限。)
????3.命令執行者在執行該程序時獲得該程序文件屬主身份
????4.SetUID權限只在程序執行過程中有效,也就是說身份改變只在程序執行過程中有效
設定SetUID方法?
????chmod 4755 文件名
????chmod u+s 文件名
? ? 舉例:
????touch abc
????chmod 755 abc????????
????ll????????????????????????????#執行這三條命令后可以看到abc為綠色
? ?umask????????????#0022????????0第一位是特殊權限?
? ? chmod 4775 abc????#給abc賦予UID權限? 必須是執行文件
????ll????????????????????#該文件變為紅色? ?提示這個文件要小心
????touch bcd
????chmod 4644 bcd????#與abc相比無執行權限? ?s=S+x
????ll
????? ?
passwd擁有SetUID權限,所以普通用戶可以修改自己密碼?
????ll /usr/bin/passwd????? ? #可查看passwd詳細權限????????-rwsr-xr-x.??
????cat命令沒有SetUID權限,所以普通用戶不能查看/etc/shadow文件內容
????ll /bin/cat????#-rwxr-xr-x????無s
查看全部 -
授權普通用戶可以添加其他用戶
????wheris useradd?
????visudo? ? #sudo賦予普通用戶user1添加用戶的命令 ????在最后加上user1 ALL=/usr/sbin/useradd
????sudo?/usr/sbin/useradd cangls????#切換到user1用戶執行該命令
????cat /etc/passwd????#查看cangls是否添加完成
授權普通用戶可以添加用戶密碼
????wheris passwd
????visudo????#在最后加上user1 ALL= /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root
????sudo -l
?? ?sudo?/usr/sbin/passwd cangls
????#授權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 #不能在visudo里添加該命令。該賦予user1使用vi更改任意文件的權限(甚至包括/etc/shadow 保存用戶名密碼文件)
查看全部
舉報