我有一个脚本,在其中添加了一个新用户 sudo,然后我需要安装软件包。
可以以新用户身份执行 apt-get 吗?
例如,我以 user1 身份登录。我运行脚本。在该脚本中,我创建 user2 (sudoer)。之后,我想使用 user2 安装新软件包
我是否只需要使用该命令行它就可以工作?
sudo -u user2 apt-get -y install [packagename]
答案1
您必须apt-get
以root
via的身份运行sudo
,而不是以其他用户的身份运行。
apt
许多由软件包信息维护的实际目录都需要root
维护;同样,如果软件包要安装到/bin
或类似位置,则需要 root 权限。
Sudoers 权限仅允许已登录的用户使用sudo
并定义他们可以使用或不能使用该sudo
命令执行的操作。它不授予apt-get
操作所需的权限,因为该权限需要root
仅运行sudo apt-get
即可提供的有效权限。因此,如果用户 1 正在运行,sudo apt-get
他们将被允许。如果用户 2 不在 sudoers 中,他们无法执行该命令。(但如果他们在 sudoers 中,则可以)。
要完成您要做的事情,需要sudo
链接两个命令(顺便说一下,未经测试):
sudo -u user2 sudo apt-get -y install PACKAGENAME
但请注意,这通常不是事情应该运行的方式,并且可能会导致未定义的行为或异常。
user2 还需要具有以 root 身份执行的权限,这在 sudoers 配置中可能是也可能不是。