3.3 sudo详解

回复 收藏

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

2017-06-18 00:00 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: