Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146791
  • 博文数量: 70
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 770
  • 用 户 组: 普通用户
  • 注册时间: 2017-11-04 11:19
文章分类

全部博文(70)

文章存档

2018年(69)

2016年(1)

我的朋友

分类: LINUX

2018-06-13 07:08:20

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
#PermitRootLogin yes
PermitRootLogin no

修改过配置文件之后,需要重启服务。
[root@localhost ~]# systemctl restart sshd.service
然后验证root用户是否还能远程登陆。不能。限制成功。
但是还是可以使用sudo来临时使用root权限。


扩展:
sudo与su比较
sudo配置文件样例
sudo不错的教程
sudo -i 也可以登录到root吗?
扩展内容很详细,是可以多次拜读的~
阅读(2499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~