在Linux中普通用户在使用系统资源时相对于root超级用户会有好多的限制。诸如,切换到普通用户身分下挂载硬盘,会报如下错误,如右图所示。
这是由于在Linux中linux系统用户权限管理,好多系统管理普通用户是无权使用的,若果准许特定用户执行个别特定的系统管理linux运维最佳实践,就须要对普通用户授权。使其能执行特定的系统管理。如上述的普通用户“moon”linux系统用户权限管理,若准许其执行挂载光碟的命令,就须要对“moon”用户授予执行挂载光碟命令的权限。为了分辨普通用户执行的是普通操作命令还是得到授权的系统管理命令,Linux系统中对普通用户执行的命令进行了界定,执行普通操作命令时,直接输入命令;执行得到授权的系统管理命令时,命令前加sudo。如上述“moon”用户得到挂载光碟的授权,其执行下述命令即可挂载光碟:
[moon@centos7-1~]$sudomount/dev/cdrom/media
为此,浅显的称这些授权为sudo授权。
保存sudo授权的配置文件是/etc/sudoers。对该文件进行修改,即是sudo授权。但Linux不准许直接对该文件进行更改,而是提供了专用于更改该文件的操作命令visudo。root用户使用visudo命令编辑修改/etc/sudoers文件。
(1)配置sudo授权
sudo授权的步骤如下。
①输入su-root,切换到用户root下。
②使用visudo命令打开sudo编辑界面对/etc/sudoers文件进行编辑,如右图所示。
输入visudo后会呈现如右图左边窗口的内容,可以开始编辑。visudo命令和vim命令使用方法方式相同。联通光标,找到右图右边所示的内容。
图示中句子rootALL=(ALL)ALL表示容许用户root在任何主机(包括本机)上执行所有命令,在这一行句子的下添加满足以下格式的一行句子即可。
句子格式如下:
用户主机名=(以那个用户的身分)命令的绝对路径
图中红框内的内容是新降低的配置。
zhangcentos7-1=(root)/usr/bin/mount,/usr/bin/umount表示给用户zhang进行sudo授权,准许其在centos7-1主机上以root的身分执行mount和umount命令。
注意,命令必须使用绝对路径,若对命令的绝对路径不清楚可以使用whereis命令查看。
③保存退出即可。
注意,用visudo命令编辑的是/etc/sudoers配置文件,将授权的普通用户写在该配置文件中可以使该用户运行须要root权限的命令。
(2)验证配置结果
切换到普通用户zhang身分下进行验证,步骤如下。
①切换到用户zhang状态下,输入su-zhang。
②输入命令[zhang@Centos7-1~]sudomount/dev/cdrom/media,会提示输入zhang的密码,验证成功后,则命令成功执行。
普通用户zhang默认没有权限使用mount挂载命令,但root用户通过使用visudo命令配置/etc/sudoers配置文件使用户zhang拥有了使用mount命令的权限(mount命令本来只有root用户能够使用)。只是用户zhang在使用mount命令时,须要在mount命令后面加上sudo命令,表示用户zhang先化身成为root,之后再执行mount命令。如右图所示。
(3)设置命令别称
在更改/etc/sudoers文件进行sudo授权时,还可以把多个命令设置成为命令别称,即把多个命令加入到一个命令集合中,便于将命令集合多次授权给不同的用户使用,简化授权的设置。
设置命令别称的步骤如下。
①编辑/etc/sudoers文件linux系统,输入命令visudo(相当于vi/etc/sudoers),之后输入“i”,步入插入模式,开始编辑。
②输入Cmnd_AliasGUAZAI=/usr/bin/mount,/usr/bin/umount,设定命令别称,即把多个命令组成一个命令集。注意,别称必须小写。
③输入zhangcentos7-1=GUAZAI,授予用户zhang执行mount和umount命令的权限。
④输入%g1centos7-1=(root)GUAZAI,“%”用于给组授权,表示给组g1的成员授予执行sudo的命令。
本文原创地址://gulass.cn/lxtzptyhzxtd.html编辑:刘遄,审核员:暂无