APUE學習之三個特殊位 設置用戶ID(set-user-ID),設置組ID(set-group-ID),sticky,apueset-user-id
APUE學習之三個特殊位 設置用戶ID(set-user-ID),設置組ID(set-group-ID),sticky,apueset-user-id
設置用戶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
http://xxxxxx/Linuxjc/1148876.html TechArticle