##################################################################################################################################################
sudo 命令功能
这个命令既可以让普通用户拥有一部分超级用户权限,又不需要知道root用户的密码,sudo命令提供了一种机制,只需要预先在“/etc/sudoers/”配置文件中进行授权,
既可以允许特定的用户以超级用户的身份执行命令。“/etc/sudoers/”文件默认权限是440,通常使用visudo命令进行编辑,如果直接使用vi命令,则保存文件的时候需要使用:w!,
否则系统将提示为只读文件而拒绝保存。基本的命令格式为:user(用户) machine(主机)=commands(命令);
################################################################################################################################################
sudo 命令的特点:
1.Sudo能够限制用户只在某台主机上运行某些命令。
2.Sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
3. Sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
4.Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。
#########################################################################################################################################
sudo 的编辑命令
sudo 的编辑有写特殊,需要使用 visudo
默认配置文件位置为 : /etc/sudoers
####################################################################################################################################
看下面的例子:
(1)使用 visudo 在 /etc/sudoers 中添加记录,允许zhangsan 执行/usr/sbin/useradd,/user/sbin/userdel,/uss/sbin/passwd,不能执行/usr/bin/passwd root
[root@liyao ~]# visudo -f /etc/sudoers
zhangsan liyao=/usr/sbin/useradd,/user/sbin/userdel,/usr/sbin/passwd,!/usr
/bin/passwd root
使用 sudo -l 来查看我们为用户赋予的权限
[zhangsan@liyao ~]$ sudo -l
[sudo] password for zhangsan:
User zhangsan may run the following commands on this host:
(root) /usr/sbin/useradd, (root) /usr/sbin/userdel, (root) /usr/bin/passwd,
(root) /usr/sbin/usermod, (root) !/usr/bin/passwd root
接下来我们测试一下,看看 zhangsan 这个用户是否能执行这些命令
创建用户:
[zhangsan@liyao ~]$ sudo /usr/sbin/useradd aa
[zhangsan@liyao ~]$ id aa
uid=501(aa) gid=501(aa) groups=501(aa)
为用户设置密码:
[zhangsan@liyao ~]$ sudo /usr/bin/passwd aa
Changing password for user aa.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
删除用户:
[zhangsan@liyao ~]$ sudo /usr/sbin/userdel aa
[zhangsan@liyao ~]$ id aa
id: aa: No such user
不可以为 root 设置密码
[zhangsan@liyao ~]$ sudo /usr/bin/passwd root
Sorry, user zhangsan is not allowed to execute '/usr/bin/passwd root' as root on liyao.