linux系统命令sudo权限-40

来源:互联网 发布:teenie weenie知乎 编辑:程序博客网 时间:2024/05/01 19:05

linux系统命令sudo权限

一、sudo权限介绍
1、root把本来只能超级用户执行的命令赋予普通用户执行
2、sudo的操作对象是系统命令而不是文件。

二、sudu使用
1、命令书写格式
[root@localhost ~]# visudo
实际修改的是/etc/sudoers文件,也就是说不用visudo命令,直接用vi来修改这个文件也是一样的。
linux系统命令sudo权限
这个文件内容挺多的,但最主要用到的就是图示的系统给出的例子:
root ALL=(ALL) ALL
用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

那么如果这样写:user1 ALL=(ALL) ALL,就代表user1用户可以使用root用户的所有命令权限了。当然不合理,实际操作中是要指定命令的具体路径的,肯定不能让普通用户使用root的所有命令。

这里的第一个ALL一般写ALL或者当前服务器的Ip,也就是允许某个用户在当前计算机或服务器上执行某个命令。也就是说这个ip地址不是指的来源ip,而是被访问ip。
括号里面的ALL指的是所有用户,可以不写或写ALL,都代表可以执行root用户的权限。
最后一个ALL就代表所有命令了。

我们举例说明:
[root@localhost ~]# visudo
user1 ALL= /sbin/shutdown -r now
这句命令就代表把重启服务器命令赋予用户user1在本机执行,把括号内的ALL给忽略了,可以不写。
而且我们可以把后面的路径写短一些,比如:
user1 ALL= /sbin/shutdown -r
这就代表user1用户可以执行的shutdown -r命令范围宽一些,可以执行now,也可以执行定时。
如果把-r也去掉,
user1 ALL= /sbin/shutdown
那就代表user1用户可以在本服务器执行所有关于shutdown的命令,关机从起等。
但是建议大家给某个用户赋予sudo权限的shutdown命令时,一定写全了,不能让普通用户具备关机的权限,不然的话关机了用户就无法从启动了,只能由远程管理员来启动,会很麻烦。
如图:
sudo命令格式
这样user1就具备从新启动服务器的权限了,大家可以自己试试,在没有设置这个权限前是不能从新启动服务器的。

2、普通用户执行sudo赋予的命令
虽然我们普通用户被赋予了可以使用root用户权限的某个命令,但是是不能直接使用的,是有自己的命令格式的。
被赋予sudo命令的用户执行命令的格式。

A、[user1@localhost ~]$ sudo -l
查看可用的sudo命令
如图:
sudo -l查看命令
我们用sudo -l命令查看的时候会提示password for user1:验证密码,我们输入user1用户的密码回车,然后就在下面提示我们user1用户可以在该主机上运行的命令了。

B、[user1@localhost ~]$ sudo /sbin/shutdown -r now
普通用户执行sudo赋予的命令。
如图:
普通用户执行sudu命令
大家看我们用-h来关机,他提示没有权限,而我们用-r来从启动就可以执行,因为我们只给user1用户赋予了从新启动的命令。
那么也就是说普通用户在执行sudo命令的时候需要用sudo添加绝对路径,而不能和普通命令来用。

这里提醒大家一个非常危险的sudo命令,如下:
user1 192.168.1.200=/usr/bin/vim
也就是在192.168.1.200这台服务器上给user1赋予vim命令的所有root权限,这是一件非常危险的事情,这样一来,普通用户是可以利用vim命令来编辑所有root用户可以编辑的配置文件的,包括passwd和shadow。所以我们平时给权限的时候一定要考虑完善,特别是vim。

2、给用户组设置sudo权限
%user1 ALL=(ALL) ALL
%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
和给用户设置sudo一个道理,只不过格式不同,作用的范围是这个组的所有用户,这里就不演示了。
本教程原创作者:mageo,出自每集博客,尊重作者劳动,转载请注明出处:http://www.ql2015.cn,谢谢!

0 0
原创粉丝点击