默认情况下,/usr/bin/apt-get 的所有权和权限。

这是一台只有一个用户的家用电脑。
已使用以下命令:
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,在可读形式中,所有者的x被替换为s
4755 -rwsr-xr-x

setuid位允许执行程序的用户以其所有者的EUID来执行。在这种情况下,这意味着普通用户运行apt-get时默认以root身份运行。正如David Foerster和cat在评论中指出的那样,由于apt-get有完全破坏系统的能力,给予它这个权限设置(特别是在其他人的执行位被设置的情况下,允许任何用户运行该程序)是极不安全的。
setuid位始终保持最小限度,在sudo程序上是必需的。
$ stat -c '%a %A %U %G' /usr/bin/sudo
4755 -rwsr-xr-x root root

为了增加安全性,有一个严格的政策规定谁可以使用sudo,该规则在/etc/sudoers中进行配置。如果该文件损坏或不存在,或者sudo的权限设置不正确,sudo将会出现错误。

2对于普通用户来说,使用apt-get autoremove --force-yes ubuntu-minimal命令非常方便。太棒了! - David Foerster
2可以补充一点,setuid位在apt上比如grepls等更加危险,因为软件包可能包含安装触发器,即在aptdpkg子进程的不同阶段运行的任意外部脚本。 - cat