普通用户使用 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/sudoers 中 include
进来。确实,使用 visudo
这个命令来修改 /etc/sudoers 非常麻烦,不信自己试试。