我想将我的系统(和所有安装的软件包)始终保持在最新版本上,因此,我正在考虑创建特殊用户进行自动更新。该用户将获得一个cron作业,该作业每周执行一次sudo apt-get update -y && sudo apt-get upgrade -y
。由于应该自动完成此操作,因此我想编辑/etc/sudoers
文件(当然是sudo visudo
),以使该用户永远不会收到这两个命令的密码提示。但是,到目前为止,我发现的唯一解决方案是仅对apt-get禁用密码提示,而不对特定的子命令禁用密码提示。
由于我想尽可能地确保它的安全,因此我需要一种仅允许更新和升级的方法,而没有apt-get的其他子命令。是的,为了安全起见,我还将通过sudo禁用其他任何命令的执行。
有什么方法可以做到这一点,还是允许没有密码提示就执行apt-get
的唯一方法(因此也允许apt-get install
)?
我正在使用基于Debian的发行版Raspbian。
感谢您的帮助!
为apt-get update
和apt-get upgrade
创建脚本包装,如下所示:
#!/bin/sh
apt-get update $@
并在sudoers
中将其与NOPASSWD
一起允许。
但是需要说的是,我不太确定是否无法使用apt-get update
或apt-get upgrade
执行某些shell命令,因此不确定是否允许非root用户以root用户身份运行它们是足够安全的。