Permissions

使用 chmod 777 設置整個 fs 後獲取 pppd“必須是 root”

  • July 2, 2021

我有一個名為的程序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以這種方式執行遞歸,您可能已經破壞了其他權限,並且您肯定會使您的系統相當不安全。

引用自:https://unix.stackexchange.com/questions/379217