无需root即可自动删除和自动清理

无需root即可自动删除和自动清理

是否可以通过向用户授予执行 apt/apt-get 的权限,在没有 root 用户的情况下运行 apt 内务管理命令( apt-get autoremove、 )。apt-get autoclean

看来你必须使用 root/sudo 来执行这些命令,否则会失败:

$ sudo cat /etc/sudoers
...
%sudo   ALL=(ALL:ALL) ALL
%wheel ALL=(ALL) NOPASSWD: ALL
user  ALL=(ALL:ALL) ALL
user  ALL= (ALL) NOPASSWD: /usr/bin/apt-get 

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
user  ALL=(ALL) NOPASSWD: ALL

$ /usr/bin/apt-get autoremove
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

 

答案1

是的,大多数apt-get命令需要以 root 身份运行,包括autoremoveautoclean。根据您的配置,这意味着

sudo apt-get autoremove

请注意,允许用户以 root 身份运行任何apt-get命令实际上与授予他们完全 root 访问权限相同。 (用户可以准备一个软件包并安装它;该软件包可以包含用户想要的任何内容,包括 root-suid shell。另一个选择是安排dpkg遇到配置文件冲突,在这种情况下可以要求打开一个root shell。)为了避免这种风险,您应该在以下位置完整指定命令sudoers

user  ALL= (ALL) NOPASSWD: /usr/bin/apt-get autoremove
user  ALL= (ALL) NOPASSWD: /usr/bin/apt-get autoclean

至少对于autoclean,您可能会发现设置 cron 作业很有用。

相关内容