3.3 sudo详解
用 su 可以切换用户身份, 而且每个普通用户都能切换到root 身份, 如果某个用户不小心泄露了root 的密码,岂不是系统非常的不安全 ?
所以使用sudo 执行一个root 才能执行的命令是可以办到的, 但是需要输入密码 。 这个密码不是root 的密码而是用户自己的密码 。 默认只有root 用户能使用 sudo 命令, 普通用户想要使用 sudo , 是需要root 预先设定的 。 可以使用visudo 命令去编辑相关的配置文件 /etc/sudoers. 如果没有visudo 这命令,可以使用 yum install -y sudo 安装.
visudo
出现如下的核心配置文件
root ALL=(ALL) ALL
用户名 (所有的来源IP=用户名) /bin/ls
分为三部分, 最左侧的是用户名, 指定哪个用户将拥有sudo的权利, 第二部分左边的ALL指定主机名或者主机 IP, 即, test 用户从哪个IP 登录来的, ALL 就是所 小括号里边其实是一个用户名, 即, test 用户可以切换到哪个用户的身份, 如果是ALL 就表示所有用户 。。 最后那个ALL, 用来指定 test 用户可以使用的命令都有哪些, ALL 就是全部命令都可以。如果是多个命令,用英文逗号隔开。
visudo 与命令 vi /etc/sudoer 效果一样
如此,就可以执行
命令 sudo ls /root/
然后将其改回来
#arron617 ALL=(root) /bin/ls
这样就注释掉了, 结果如下
[arron617@arronlinux ~]$ sudo ls /root/
arron617 不在 sudoers 文件中。此事将被报告。
命令 sudo -l 查看当前用户是否有一些sudo 的命令可以执行
用户 arron617 可以在该主机上运行以下命令:
(root) /bin/ls
(root) 表示普通用户拥有root 用户的权限, 对应/bin/ls 命令
如果增加命令 /usr/bin/passwd,要在核心文件编辑行后加英文逗号,然后执行
用户 arron617 可以在该主机上运行以下命令:
(root) /bin/ls, (root) /usr/bin/passwd
如果这样,普通用户可以更改root用户的密码,这样不安全,也没有意义
在/bin/ls 前加上 NOPASSWD:空格,这样,不用第一次登陆就输入密码了,编辑如下
root ALL=(ALL) ALL
arron617 ALL=(root) NOPASSWD: /bin/ls
也可以把用户加到wheel 中去,这是组
# %wheel ALL=(ALL) ALL
编辑回复