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使用教程技术文档中还有更多知识点可以学习,感兴趣的小伙伴不妨前去看看。