一、前言
sudo是什么?
sudo是系统管理指令;由于root用户权限过大,在实际生产过程中很少使用root用户直接登录系统,而是使用普通用户登录系统;但是如果普通用户要对系统进行日常维护操作时需要su到root用户,为了提高安全性,可以使用sudo授权某一用户在某一主机以某一用户身份运行某些命令;从而减少root用户密码知晓人,提高系统安全性。
sudo的优势:
①授权指定用户在指定的主机上运行指定的管理命令;
②详细记录用户基于sudo执行的命令相关的日志信息;
③”检票系统”:时效性认证,用户第一次执行sudo命令时会要求输入密码来验证用户身份,成功后用户会获得一个有固定存活时长的”令牌”(令牌默认存活时长为5分钟)
二、sudo相关参数
sudo的授权文件:/etc/sudoers,只有管理员能够编辑
1、实现sudo授权的方法
①使用vim打开编辑:
可以实现文本着色,但是不能检测语法错误,不建议使用
②visudo:专用的sudoers文本编辑工具
配置完成后能够检测提示语法错误,建议使用此编辑工具进行/etc/sudoers进行编辑
帮助文档:man visudo;man visudoers
2、sudo授权格式:授权某用户在某主机上以某用户的身份运行指定的管理命令
WHO HOST=(WHOM) COMMAND
别名定义:别名必须使用全大写字符
WHO别名定义:
User_Alias NAME = item1,item2,item3,….
item:可以是用户名,%组名,#UID,$#GID,User_Alias
HOST别名定义:
Host_Alias NAME = item1,item2,item3,….
item:可以是hostname,ip,network,Host_Alias
WHOM别名定义:
Runas_Alias NAME = item1,item2,item3,….
item:可以是用户名,%组名,#UID,$#GID,User_Alias
COMMANDb别名定义:
Cmnd_Alias NAME = item1,item2,item3,…..
item:可以是命令,目录(目录下的所有命令),”sudoedit”,Cmnd_Alias
3、常用的标签
PASSWD: 执行操作时,需要输入密码,来验证用户身份
NOPASSWD: 执行操作时,无需输入密码,不能确定用户身份
4、sudo常用的命令参数
-l: 查看当前用户可执行的sudo命令
-k:清除”令牌”
-b COMMAND:在后台运行指定的命令COMMAND
-e /path/to/somefile: 修改指定的文件
-u USERNAME COMMAND: 以指定用户的身份运行指定的命令COMMAND
三、配置举例
1、授权cnetos用户具有添加用户的权限
使用centos用户登录测试:
2、别名定义以及调用
测试;centos用户登录测试指定的相关命令:
3、防止授权用户修改密码修改root用户的密码
原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/5302