概述
sudo
命令可以让普通用户具有超级管理员root
才有的权限。
有时候需要让普通用户执行一些只有超级管理员才有权限执行的命令,但如果告诉普通用户超级管理员的密码,就可能造成密码泄露。所以使用sudo
可以让普通用户执行一些超级管理员才有权限执行的命令,这样减少了root
用户的登录和管理时间,也提高了安全性。
注:
sudo
命令默认情况下只能root
用户才能使用。如果需要让普通用户也能使用sudo
命令,必须在/etc/sudoers
文件中进行配置。
/etc/sudoers
文件
如果需要让普通用户也能使用sudo
命令,必须在/etc/sudoers
文件中进行配置。并且该文件也只有root
用户才有权限进行修改。
修改该文件必须使用visudo
命令,因为该文件是一个只读文件,必须通过特殊的方式才能修改。并且visudo
命令可以对修改后的/etc/sudoers
文件进行语法检查,判断你的修改是否有效。
这两行说明如下:
root ALL=(ALL) ALL用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)%wheel ALL=(ALL) ALL%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
关于各字段说明如下:
例如:
# 表示用户 zhangsan 可以执行 useradd 命令zhangsan ALL=(ALL) /usr/sbin/useradd# 表示名为 lisi 的用户组中的所有成员可以执行 userdel 命令%lisi ALL=(ALL) /usr/sbin/userdel
进行测试:首先使用visudo
命令在文件中的如下位置添加如下内容(注意,首先要有如下的用户和用户组):
接着登录zhangsan
用户,然后使用sudo useradd zhangsan-son
命令添加用户:
注意:可以写多个授权命令,之间用逗号分隔。
语法
该命令的语法如下:
sudo [选项] 命令
该命令支持的选项有:
使用
执行命令
如果要使用sudo
执行命令:
# 语法sudo 命令# 示例sudo useradd zhangsan-son
查看当前用户可执行的sudo
命令
如果要查看当前用户可以以超级管理员身份执行哪些命令,加上-l
选项:
# 语法sudo -l