Linux權限管理——set uid、set gid、stricky bit(比較危險的操作)
setuid
用戶在執行具有suid權限的可執行文件時,身份發生轉化,暫時成爲該文件的所有者,執行完畢後身份再切換回來
1)該文件是一個可執行二進制程序
2)用戶對該文件有執行權限
3)執行完畢後身份還原
setuid的設定方法
chmod 4755
chmod u+s
setuid的取消方法
chmod 755
chmod u-s
說明:
/bin/passwd
普通用戶可以執行該命令修改密碼,我們知道密碼是要寫入到/etc/shadow文件中的,而該文件的權限是000,所以passwd具有suid權限,所以普通用戶能夠執行該命令,將密碼寫入到/etc/shadow文件中(普通用戶身份切換爲root)
如果將vi命令賦有suid權限,那麼執行用戶將可以修改任何文件(危險!)
setgid
setgid既可以對二進制文件有效,也可以對目錄有效
對二進制文件(與setuid類似)
對目錄
用戶對目錄有r和x權限
用戶在進入到該目錄後,所屬組變爲該目錄的所屬組
如果用戶對該目錄有w權限,則在該目錄下創建的文件的所屬組是該目錄的所屬組
setgid的設定方法
chmod 2777
chmod g+s
setgid的取消方法
chmod 777
chmod g-s
stricky bit
粘着位
只針對目錄有效,用戶對目錄有w和x權限
用戶對目錄有w權限,如果沒有粘着位,那麼用戶可以刪除該目錄下的所有文件,如果設置粘着位,那麼該用戶只能刪除自己創建的文件,對於其他用戶創建的文件不能刪除。
stricky bit設定方法
chmod 1777
chmod o+t
取消方法
chmod 777
chmod o-t