我想要给一个用户sudo权限。我应该在终端中输入什么?
您需要运行visudo
并在打开的编辑器中编写:
igor ALL=(ALL) ALL
这行代码授予用户igor
所有权限。
如果您想允许用户运行仅限于某些命令,您需要在此行中列出这些命令:
igor ALL=(ALL) /bin/kill, /bin/ps
igor
)仍无法获得完全的sudo访问权限(即可以执行sudo ls
但无法执行sudo mount -a
),可能的原因是什么? - puk这个答案可以做到您所需的,尽管通常情况下您不会将特定的用户名添加到sudoers
中。相反,您可以创建一个sudoers
组,并在需要时将您的用户添加到该组中。这样,当给用户sudo
权限时,您只需要使用visudo
一次即可。
如果您使用的是Ubuntu,则该组很可能已经设置好并被称为admin
:
$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
...
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
在其他发行版中,比如Arch和一些其他发行版中,它通常称为wheel
,你可能需要进行设置:Arch Wiki
要让属于wheel组的用户在命令前加上"sudo"时拥有完全的root权限,请取消以下行的注释: %wheel ALL=(ALL) ALL
还要注意,在大多数系统中,visudo
将读取EDITOR
环境变量或默认使用vi
。因此,您可以尝试使用vim
作为编辑器,执行EDITOR=vim visudo
。
要将用户添加到组中,您应该以root身份运行:
# usermod -a -G groupname username
其中groupname
是你的组名(例如admin
或wheel
),而username
是用户名(例如john
)。
/etc/sudoers
文件,可以手动编辑或使用visudo应用程序。
记住:系统从顶部到底部读取/etc/sudoers
文件,因此您可以通过将下一个设置放在下面来覆盖特定设置。
为了安全起见,请在底部定义您的访问设置。visudo
。 - ripper234