linux下普通使用者更改密碼原理(S權限)
首先,我們來看 /etc/passwd 和 /etc/shadow 檔案的權限:
可以看到passwd檔案,所有者有讀寫權限,其他使用者隻能讀
而shadow檔案什麼權限都沒有開通
那麼普通使用者整麼修改自己的密碼呢?
passwd檔案參考:http://blog.csdn.net/lyhdream/article/details/9046347
shadow檔案參考 :http://blog.csdn.net/lyhdream/article/details/9046335
下面我們來看看passwd 指令的詳細資訊:
我們看到在passwd指令可執行位那是個s,那麼s是什麼權限呢?
s權限(也可以叫做SetUID):當一個可執行(隻有可執行程式設定SetUID才有意義)程式具有SetUID權限,使用者執行這個程式時,将以這個程式所有者的身份執行。(在linux裡,預設的指令的所有者都是root使用者)。
給指令設定SetUID權限的方法:
一、 chmod u+s
二、chmod 4755 (Linux中預設指令的權限都是755,而SetUID标準的權限數字位是4,檢視預設權限的數字位指令:umask)
去掉SetUID權限:
一、chmod u-s
二、chmod 755
SetGID=2
當一個可執行程式具有SetGID時候,使用者執行程式的時候,将會以所屬組的方式執行。
chmod g+s
chmod 2755
chmod 6755 (同時設定SetUID和SetGID )
linux下還有一個特殊權限:粘着位:
參見位址:http://blog.csdn.net/lyhdream/article/details/9074913