如何赋予用户root权限?


12

我刚刚安装了Arch。效果很好。我创建了一个新用户,并用它登录,现在我尝试使用进行安装pacman。但是我不断收到错误消息:error: you cannot perform this operation unless you are root.我可以pacman与root一起使用,但是有没有办法让我的新用户执行这些操作?

我尝试登录到root并使用gpasswd:

gpasswd -a jack root

但这什么也没做。


1
作为一般说明,Arch Linux Wiki非常有用且详细。
亚历克斯·张伯伦

Answers:


17

您应该阅读sudo上的Arch Wiki页面。

sudo(“替代用户”)允许系统管理员委派权限,以赋予某些用户(或用户组)以root或其他用户身份运行某些(或全部)命令的能力,同时提供命令及其用户的审核跟踪论点。

您可以sudo从存储库中进行安装,然后对其进行配置,以允许您的用户jack通过编辑来访问特权命令/etc/sudoers。确保使用visudo命令执行此操作。

要为用户提供jack完全的root特权,您可以添加以下行:

jack ALL=(ALL) ALL

8

我通常要做的是为特定组启用root特权。这样,您可以仅向该组添加想要root特权的用户。

编辑/etc/sudoersvisudo添加(或注释掉):

%wheel      ALL=(ALL) ALL

然后将您的用户添加到该组:

gpasswd -a jack wheel

1
即使答案被标记为已接受并且可以使用,但我认为由于使用组而不是修改sudoer,因此此答案更好。
艾里克·布朗

0

我可以用root很好地使用pacman,但是有没有办法让我的新用户执行这些操作?

您可以创建自己的$USER,将其添加到wheel单独的组中:

useradd -Ng wheel --create-home --no-log-init $USER

然后根据Eric Lennartsson的/etc/sudoers 建议进行更新。但是,如果您正在寻找一种编程方式,则可以/etc/sudoers.d像这样创建文件:

echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/dont-prompt-$USER-for-password

上面的方法 Boris在Ask Ubuntu中提出的,它根本不需要使用visudo。与pacman一起使用时,使用sudo作为命令的前缀,例如:

sudo pacman -S docker docker-compose
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.