(文章目录)
前言
大家在Linux中操作的时候是不是都很喜欢用root用户呢,因为root的权限最大,操作的时候省了不少事,那大家知道如何让普通用户了拥有root一样的权限吗?这就得提到一个主要的配置文件:/etc/sudoers 只要对sudoers文件进行一些配置,我们就可以灵活的设置用户和组的权限拉
一、/etc/sudoers文件的作用
Linux中的/etc/sudoers文件是用来控制哪些用户和组可以使用sudo命令来执行需要超级用户权限的操作 用户想使用授予权限时只需在命令前加上sudo,就可以使用被授予的权限 编辑/etc/sudoers文件时,建议使用visudo命令,它可以保证一次只有一个用户编辑文件,并且检查语法是否正确
二、如何给用户授权
root ALL=(ALL) ALL # 第1个ALL为机器名,第2个指能以哪些用户的身份执行命令,第3个为命令
liu ALL=(ALL) ALL # liu获得了root权限,liu用户可以在任何主机上以任何用户的身份来执行所有命令
ly ALL=(ALL) NOPASSWD:NETWORKING,SOFTWARE # ly获得了这两个工具包中所有命令的权限并不需要输密码
(ALL)代表用户使用 sudo 时可以以任何用户的身份执行,当然也可以指定某些用户,这样该用户就只能拥有部分用户的权限
liu ALL=(ly) ALL:指示 sudo 命令被允许以 ly 用户的身份执行,那么 liu 用户可以以 ly 用户的身份来执行所有命令,
即当 liu 用户登录时,如果他在命令前加上 sudo,那么这个命令实际上是以 ly 用户的身份去执行的
第三个ALL代表可以使用所有工具包,sudoers中已经写出了很多工具包,格式如下:
## Command Aliases
## These are groups of related commands...
## Networking
# 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
## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
这些工具包中添加了很多命令,授予用户(组)后,该用户(组)就可以使用其中包含的命令了 只要在 sudoers 中解除注释就可以授予给用户或组了 当然也可以按照上面的格式自行添加工具包 或者直接在授予用户命令时,输入该命令的绝对路径即可
另外如果想让用户使用授权的命令时不需要输入密码,则可以在命令前加上"NOPASSWD:" 例:让alice用户在所有主机上只能以root身份执行/usr/bin/apt和/usr/bin/dpkg命令,并且可以免密,就可以写成:
alice ALL=(root) NOPASSWD:/usr/bin/apt, /usr/bin/dpkg
三、如何给组授权
也可设置组权限,语法和授权给用户差不多,注意组名前要加%
%group_name host_list=(user_list) command_list
其中,%group_name表示要授予权限的组名,host_list表示允许使用sudo命令的主机列表,user_list表示可以模拟的用户列表,command_list表示可以执行的命令列表
例:让wheel组在所有主机上可以以root身份执行任何命令,就可以写成:
%wheel ALL=(ALL) ALL
让wheel组在所有主机上只能以root身份执行/usr/bin/find和/bin/rm命令,就可以写成:
%wheel ALL=(root) /usr/bin/find, /bin/rm
让cs组的所有成员可以使用这两个工具包里的命令,就可以写成:
%cs ALL=(ALL) NETWORKING,SOFTWARE # sc组的成员就可以使用这两个工具包里的命令
总结
好了,以上就是今天要讲的内容,如果对你有帮助希望给个大拇指作为鼓励,如果大家有什么问题,也欢迎大家指出和评论,我会及时回复的,感谢大家观看!