这是一台只有一个用户的家用电脑。
已使用以下命令:
chown root:root /usr/bin/apt-get
chmod 4775 /usr/bin/apt-get
如何撤消命令并恢复默认值?
答案1
删除危险的 setuid 位
sudo chmod 755 /usr/bin/apt-get
其他都没什么问题。
为了添加更多细节,以下是默认设置:
$ stat -c '%a %A %U %G' /usr/bin/apt-get
755 -rwxr-xr-x root root
问题中提到的命令添加了 setuid 位,以4
八进制权限的前导显示为,并以人类可读的形式s
代替所有者:x
4755 -rwsr-xr-x
setuid 位允许执行程序的用户使用其所有者的 EUID 执行此操作。在这种情况下,这意味着运行的普通用户apt-get
默认以 root 身份执行此操作。由于apt-get
能够完全破坏您的系统,正如 David Foerster 和 cat 在评论中指出的那样,赋予它此权限设置(尤其是因为设置了其他人的执行位,就像在这种情况下一样,允许任何用户运行该程序)非常不安全。
setuid 位始终保持在最低限度,是sudo
程序中必不可少的
$ stat -c '%a %A %U %G' /usr/bin/sudo
4755 -rwsr-xr-x root root
sudo
为了使其更安全,在 中配置了关于谁可以使用 的严格策略/etc/sudoers
。如果该文件已损坏或不存在,或者 的权限sudo
错误,sudo
则会退出并显示错误。