Linux使用教程有不少小伙伴都已经看过了,其中有一部分内容就是关于sudo的。
sudo是什么?
sudo是系统管理指令;由于root用户权限过大,在实际生产过程中很少使用root用户直接登录系统,而是使用普通用户登录系统;但是如果普通用户要对系统进行日常维护操作时需要su到root用户,为了提高安全性,可以使用sudo授权某一用户在某一主机以某一用户身份运行某些命令;从而减少root用户密码知晓人,提高系统安全性。
sudo的优势:
1. 授权指定用户在指定的主机上运行指定的管理命令;
2. 详细记录用户基于sudo执行的命令相关的日志信息;
3. ”检票系统”:时效性认证,用户第一次执行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用户的密码
通过上述大家对sudo使用也有了一些了解,动力节点推出的Linux使用教程技术文档中还有更多知识点可以学习,感兴趣的小伙伴不妨前去看看。
热门跟贴