使用 chmod 777 设置整个文件系统后,获取 pppd“必须是 root”

使用 chmod 777 设置整个文件系统后,获取 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

但我不明白为什么

答案1

通过运行chmod 777,您删除了 上的 setuid 位pppd。要恢复它,您需要运行

chmod 4755 /usr/sbin/pppd

请注意,通过以这种方式运行递归chmod 777,您可能会破坏其他权限,并且肯定会使您的系统变得相当不安全。

相关内容