使用不同的用户运行 apt-get

使用不同的用户运行 apt-get

我有一个脚本,在其中添加了一个新用户 sudo,然后我需要安装软件包。

可以以新用户身份执行 apt-get 吗?

例如,我以 user1 身份登录。我运行脚本。在该脚本中,我创建 user2 (sudoer)。之后,我想使用 user2 安装新软件包

我是否只需要使用该命令行它就可以工作?

sudo -u user2 apt-get -y install [packagename]

答案1

您必须apt-getrootvia的身份运行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 配置中可能是也可能不是。

相关内容