設置用戶ID(set-user-ID),設置組ID(set-group-ID),sticky
set-user-ID: SUID
當文件的該位有設置時,表示當該文件被執行時,程序具有文件所有者的權限而不是執行者的權限。
這樣說有點繞,舉個例子就是說passwd這個命令,它的所有者是root,并且它的set-user-id有設置,所以執行passwd命令后,passwd進程具有root權限,也才能改密碼,畢竟普通用戶沒有修改/etc/passwd文件的權限。然而,并不能該別人的密碼,因為st_uid還是我,并不是root。
當文件的set-user-ID位被設置時,通過ls -l命令查看,在許可權限部分,用戶的x被替換成s
ls -l /usr/include/passwd
-rwsr-xr-x 1 root root 41284? 9月 13? 2012 /usr/bin/passwd
set-group-ID: SGID
和set-user-id同理,不過具有的是所有組的權限.
當文件的set-group-ID位被設置時,在許可權限部分,組用戶的x被替換成s
sticky:
sticky位對于文件和目錄有不同的用途。
對于文件而言,sticky位告訴內核即使沒有人在使用這個程序,也要把它放在交換空間中,放在交換空間里的文件被內存調用的時候要比放在磁盤上快。不過有虛擬技術后,這個用的很少了。
對于目錄而言,sticky位使得存放在這個目錄下的文件只能被創建者刪除,別人不能夠刪除。
當文件的sticky位被設置時,通過ls -l命令查看,在許可權限部分,其他用戶的x被替換成t
設置方法類似 : chmod 4777 filename
4 代表SUID
2 代表SGID
1 代表sticky