跳到主要内容
  1. Skills/
  2. 系统运维、优化/

普通用户使用 sudo 来执行需要 root 权限的命令

··字数 468·1 分钟
howto

为安全起见,操作 linux 服务器,一般都使用普通用户。如有权限需要,再另外设置。但有时又为了方便,让某个普通用户具有 root 的执行权限。这时是通过命令 sudo 来实现,即在执行的命令之前加上 sudo,终端会提示输入 root 密码。但是每次都要输入非常麻烦,所以就有了免输密码的需求。要启用 sudo 免输密码,需要在系统上先行配置,本文介绍如能在系统中设置用户的 sudo 权限。

使用 root 用户修改 /etc/sudoers,将需要免密码操作的用户添加到其中。/etc/sudoers这个文件是只读的,需要执行 visudo 命令修改。

假设用户名为 youwutoday,那么可按下修改,

...
# User privilege specification
root    ALL=(ALL:ALL) ALL

#
# 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
# 将用户添加到这里
youwutoday     ALL=(ALL) NOPASSWD: ALL
...

当然,上面的操作没有问题,只是不符合官方建议而已。在 /etc/sudoers 的文件头开,有一段注释:

secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
...

这段注释告诉你不要直接修改 /etc/sudoers 文件,而要使用 visudo 命令。并且最好是在 /etc/sudoers.d 目录下写配置,然后再在 /etc/sudoersinclude 进来。确实,使用 visudo 这个命令来修改 /etc/sudoers 非常麻烦,不信自己试试。