我刚刚安装了 Arch。效果很好。我创建了一个新用户,用它登录,现在我尝试使用pacman
.但我不断收到错误:error: you cannot perform this operation unless you are root.
我可以pacman
很好地使用 root,但有没有办法允许我的新用户执行这些操作?
我尝试登录 root 并使用 gpasswd:
gpasswd -a jack root
但这没有任何作用。
答案1
您应该阅读 Arch Wiki 页面须藤。
sudo(“替代用户执行”)允许系统管理员委派权限,赋予某些用户(或用户组)以 root 或其他用户身份运行某些(或全部)命令的能力,同时提供命令及其操作的审计跟踪论据。
您可以sudo
从存储库安装,然后将其配置为允许您的用户 ,jack
通过编辑 来访问特权命令/etc/sudoers
。确保使用该visudo
命令执行此操作。
要授予用户jack
完全 root 权限,您可以添加以下行:
jack ALL=(ALL) ALL
答案2
我通常做的是为特定组启用 root 权限。这样你就可以将你想要 root 权限的用户添加到该组中。
编辑/etc/sudoers
并visudo
添加(或注释掉):
%wheel ALL=(ALL) ALL
然后将您的用户添加到该组:
gpasswd -a jack wheel
答案3
我可以在 root 下使用 pacman ,但是有办法让我的新用户执行这些操作吗?
您可以创建您的$USER
,将它们wheel
单独添加到组中:
useradd -Ng wheel --create-home --no-log-init $USER
然后更新/etc/sudoers
按照建议作者:埃里克·伦纳特森。但如果您正在寻找一种编程方法,您可以创建一个文件,如下/etc/sudoers.d
所示:
echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/dont-prompt-$USER-for-password
上面的方法被建议visudo
由 Boris 在 Ask Ubuntu 中提出,它根本不需要使用。当与 pacman 一起使用时,请在命令前加上 sudo ,例如:
sudo pacman -S docker docker-compose