赋予普通用户特别权限(sudoers)

sudoers简介:

在linux系统中,管理员往往不止一人,若每位管理员都用root身份进行管理工作,根本无法弄清谁做了些什么操作,做什么。所以最佳的方式是:管理员创建一些普通用户,分配一部份系统管理工作给他们。通过sudo我们能把某些终极权限有针对性的下放,并且不必普通用户知道root密码,所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被 称为受限制的su,别外sudo是需要授权许可的,所以也被 称为授权许可的su,sudo执行命令的流程是当前用户有转换到root或者他指定转换到的用户,然后以root或者其它指定的转换到的用户身份执行命令,执行完成后,直接退回到当前用户,而且这些的前提是通过sudo的配置文件/etc/sudoers来进行授权

sudoers公式:

授权用户 主机=[(转换到哪些用户或者用户组)][是否需要密码验证]命令1,[(转换到哪些用户或者用户组)] [命令2]....

1、sudo工具由文件/etc/sudoers进行设置,该文件包含所有能访问sudo工具的用户列表并定义了他们的特权。一个典型的/etc/sudoers条目如下:

xiewb ALL=(ALL) ALL 

这个条目使得用户xiewb作为终极用户访问所有应用程式,如果用户xiewb需要作为终极用户运行命令,他只需要简单地在命令前加入sudo。因些需要root用户的身份执行命令ifconfig,xiewb要输入sudo  /usr/sbin/ifconfig。

注意:执行ifconfig命令要写绝对路径,/usr/sbin默认不在普通用户的搜索路径中,或加入export PATH=$PATH:/usr/sbin

2、例子

管理员需要允许gem用户在主机sun上执行reboot和shutdown命令,在/etc/sudoers中加入:
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown
注意:命令一定要使用绝对路径,以避免其他目录的同名命令被执行,从而造成安全隐患。
然后保存退出,gem用户想执行reboot命令时,只要在提示符下运行下列命令:
$ sudo /usr/sbin/reboot
输入正确的密码,就能重启服务器了。