3.8 命令sodu
上一节讲的su命令,需要使用root用户才能登陆到其他普通用户。可以既然有了root用户,直接使用root用户不就好了吗,所以,这不太合理。
为了系统安全,所以有sudo命令:让普通用户使用其他用户身份执行某条命令。通常是给普通用户授权root用户的权限
[root@localhost ~]# visudo //打开sudo的配置文件,实际打开的是/etc/sudoers.tmp。不建议使用vi直接编辑这个文件,因为,使用visudo可以检查语法错误。
......
root ALL=(ALL) ALL
用户 在哪里=(前面的用户被授予哪个用户的身份) 所有的命令
xiao ALL=(root) ALL
上面的内容也可以写为:
xiao ALL=(ALL) ls,mv,cat //限制授予的命令
......
退出后:
>>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么? //回车
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
返回修改错误:e
xiao ALL=(root)
/usr/bin/ls, /usr/bin/mv, /usr/bin/cat
测试验证:
[root@localhost ~]# su - xiao
[xiao@localhost ~]$ ls /root/
-bash: /bin/ls: 权限不够
[xiao@localhost ~]$ sudo /usr/bin/ls /root/
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] xiao 的密码: //要求输入此用户密码。这样就可以避免将root用户的密码给普通用户了。
1 1_heard.txt
1_heard.txt.bak 2 anaconda-ks.cfg
[root@localhost ~]# visudo
zhangsan ALL=(root)
NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
//使用sudo时,不需要再次输入普通用户自己的密码 的设置。
[root@localhost ~]# su - zhangsan
上一次登录:日 6月 10 23:11:26 CST 2018pts/0 上
[zhangsan@localhost ~]$
[zhangsan@localhost ~]$ ls /root
-bash: /bin/ls: 权限不够
[zhangsan@localhost ~]$ sudo ls /root/
1 1_heard.txt
1_heard.txt.bak 2 anaconda-ks.cfg
除了以上操作,sudo还有很多其他设置:
# Host_Alias FILESERVERS = fs1, fs2 //设置服务器别名,好统一管理
# User_Alias ADMINS = jsmith, mikem //设置用户别名,前面是虚拟用户,用来包含多个真实用户
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
//这里是命令别名,将多个命令,放到这里,方便使用。自定义时,注意格式相同。
eg:
Cmnd_Alias
XIAO_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
xiao ALL=(root)
XIAO_CMD
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
//使用组的方式管理
3.9 限制root远程登陆
为了安全起见,防止root密码丢失,被别人使用root权限远程登陆服务器,所以限制root远程登陆。
[root@localhost ~]# visudo
User_Alias XIAOS = xiao, zhangsan
XIAOS ALL=(ALL) NOPASSWD: /usr/bin/su
测试:
[root@localhost ~]# su - xiao //切换到普通用户了
上一次登录:三 6月 13 06:29:54 CST 2018pts/1 上
[xiao@localhost ~]$ sudo su -
//临时切换到root用户了。但是,还没有限制root禁止远程登陆。
上一次登录:三 6月 13 06:28:55 CST 2018从 192.168.172.1pts/2 上
[root@localhost ~]# whoami
root
限制root用户远程登陆:
[root@localhost ~]# vim /etc/ssh/sshd_config
#Permit
RootLogin yes
PermitRootLogin no
修改过配置文件之后,需要重启服务。
[root@localhost ~]# systemctl restart sshd.service
然后验证root用户是否还能远程登陆。不能。限制成功。
但是还是可以使用sudo来临时使用root权限。
扩展:
sudo与su比较
sudo配置文件样例
sudo不错的教程
sudo -i 也可以登录到root吗?
扩展内容很详细,是可以多次拜读的~
阅读(2499) | 评论(0) | 转发(0) |