Permissions
使用 chmod 777 設置整個 fs 後獲取 pppd“必須是 root”
我有一個名為的程序
network_manager
,它有時會執行一個命令/usr/sbin/pppd
。一切正常。但是隨後,一些文件在文件系統上變得不可讀,我使用
sudo chmod -R 777 rootfs
它來獲得訪問權限。一旦我執行這個命令,network_manager
就不能再執行/usr/sbin/pppd
,我得到一個錯誤:
/usr/sbin/pppd: must be root to run /usr/sbin/pppd, since it is not setuid-root
我不明白,執行
chmod 777
不會改變所有者,pppd
為什麼它不再工作?它通過設置工作
chown root /usr/sbin/pppd chmod u+s /usr/sbin/pppd
但我不明白為什麼
通過執行
chmod 777
,您刪除了 setuid 位pppd
。要恢復它,您需要執行chmod 4755 /usr/sbin/pppd
請注意,通過
chmod 777
以這種方式執行遞歸,您可能已經破壞了其他權限,並且您肯定會使您的系統相當不安全。