標籤:linux營運
Linux營運第二階段(五)許可權管理
一、許可權管理(解決使用者和身份不足的問題)
》#dumpe2fs -h /dev/sda2 (查詢指定分區詳細檔案系統資訊的命令,-h僅顯示超級塊中的詳細資料)
#mount -o remount,acl / (重新掛載根分區,加入acl許可權)
》acl基本命令:
#getfacl 檔案名稱 (查詢檔案的acl許可權)
#setfacl -m u:使用者名稱:許可權 檔案名稱
#setfacl -m g:組名:許可權 檔案名稱
#setfacl -m u:使用者名稱:許可權 –R /test (賦予遞迴acl許可權,只能賦予目錄)
#setfacl -m d:u:使用者名稱:許可權–R /test (加入預設許可權,預設許可權只能賦予目錄)
#setfacl -b /test (刪除acl所有許可權)
#setfacl -x u:aa (刪除指定使用者和使用者組的acl許可權)
注意:如果給目錄賦予acl許可權,以下兩條命令都要:
#setfacl -m u:使用者名稱:許可權 /test (只對已經存在的檔案生效)
#setfacl -m d:u:使用者名稱:許可權 /test (只對未來要建立的檔案生效)
最大有效許可權mask(實際設定的許可權與最大許可權相與才是有效許可權,effective)
#setfacl -m m:rx project/ (設定mask許可權為rx,使用“m:許可權”格式)
#getfacl project/
二、sudo授權
#visudo (與操作vi一樣)
root ALL=(ALL) ALL
使用者名稱 被管理主機的IP=(可使用的身份) 授權命令(絕對路徑)
%wheel ALL=(ALL) ALL
%組名 被管理主機的IP=(可使用的身份) 授權命令(絕對路徑)
使用者名稱/組名:代表root給哪個使用者或組賦予命令,注意組名前加“%”
被管理主機的IP:如果寫ALL代表可以管理任何主機,如果寫固定IP,代表使用者可以管理指定的伺服器。這裡的IP指的是使用者可以管理哪個IP地址的伺服器,如果一台獨立的伺服器那寫IP地址和ALL都一樣。而寫入網段,只有對NIS使用者和密碼集中管理的伺服器才有意義。這裡寫原生IP地址,代表指定的使用者可以從任何來源IP地址來管理當前伺服器,並不是只允許原生使用者使用指定命令。
可使用的身份:把來源使用者切換成什麼身份使用,ALL代表可切換成任意身份,這個欄位可省略
授權命令:代表root把什麼命令授權給普通使用者,細化到選項和參數,注意命令一定要寫成絕對路徑
例:授權使用者lamp可以重啟伺服器
#visudo
lamp ALL=/sbin/shutdown -r now
$sudo -l
例:授權一個使用者管理你的web伺服器,從三處著手:可使用apache管理指令碼;可修改apache設定檔;可更新網頁內容。
lamp ALL=/etc/rc.d/init.d/httpd reload, /etc/rc.d/init.d/httpd configtest
註:重新讀取設定檔讓更改的設定生效(reload);檢測apache語法錯誤(configtest);不允許執行stop/restart等操作
lamp ALL=/bin/vi /etc/httpd/conf/httpd.conf
註:授權可使用root身份使用vi編輯設定檔
#chmod lamp /var/www/html/
註:授權lamp對此目錄具有寫入權限或更改此目錄的屬主為lamp
例:授權aa使用者可建立新使用者
aa ALL=/usr/sbin/useradd
aa ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd “”, !/usr/bin/passwd root
三、檔案特殊許可權
1、setuid:只有可執行檔二進位程式才能設定suid許可權;命令執行者要對該程式擁有x許可權;命令執行者在執行該程式時獲得該程式檔案屬主的身份;只在該程式執行過程中有效。
#ll /etc/shadwo
#ll /usr/bin/passwd -rwsr-xr-x
危險的suid:#chmod u+s /usr/bin/vim
幾點建議:關鍵目錄嚴格控制w許可權,如:/,/usr等;密碼嚴格遵守三原則;對系統中預設具有setuid的檔案作一列表,定時檢查有沒有這之外的檔案被設定了suid許可權。
2、setgid
》針對檔案:只有可執行檔二進位程式才能設定sgid;命令執行者要對該程式擁有w許可權;執行時組身份升級為該檔案的屬組;在程式執行過程中有效。
#ll /var/lib/mlocate/mlocate.db
#ll /usr/bin/locate
》針對目錄:普通使用者必須對此目錄擁有rx;普通使用者在此目錄中的有效組會變成此目錄的屬組;當普通使用者對此目錄擁有w,建立檔案的預設屬組是這個目錄的屬組。
3、sticky BIT:粘著位,僅針對目錄有效;普通使用者對該目錄擁有WX,可在此目錄擁有寫入權限;設定了SBIT,普通使用者有W,只能刪自己建立的檔案,不能刪其它使用者建立的檔案。
SUID:4 SGID:2 SBIT:1
#chmod 4755 ftest
#chmod 2755 ftest
#chmod 1755 ftest
四、chattr (檔案系統屬性許可權)
#chattr [+-=] i|a|e 檔案或目錄
i:對檔案:不允許刪除、改名、不能添加修改資料,已鎖死;
對目錄:只能修改目錄下檔案的資料,不允許建立和刪除檔案。
a:對檔案:可增加資料,但不能刪除和修改資料;
對目錄:只允許在目錄中建立和修改檔案,但不允許刪除
e:linux中絕大多數的檔案預設擁有e屬性,表示該檔案使用ext檔案系統進行儲存,不能用#chattr -e 取消e屬性。
#lsattr -a|-d 檔案名稱 (-a,all;-d,directory)
來自兄弟連培訓
本文出自 “Linux營運重痛點學習筆記” 部落格,請務必保留此出處http://jowin.blog.51cto.com/10090021/1641485
Linux營運 第二階段 (五)許可權管理