以前没有太在意这方面的知识,现整理如下:
用root用户登录或用su - 切换到root用户,使用visudo命令,方法跟vi一样
赋予用户在所有主机上的所有权限
在最后一行加入
your_user_name ALL=(ALL) ALL
第一个ALL表示主机,后两个ALL表示权限
保存即可。
指定主机别名
为了方便设置一批主机,可以在文件中定义别名,如
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
授权用户指定主机指定权限
有了上面的知识积累,就可以给指定的用户授予指定的管理员权限,如:
your_user_name server1 = NETWORKING
server1是主机名,NETWORKING是之前定义的命令的别名
如果有多个命令或命令别名,需要用逗号隔开。
授权某个用户组相应权限
如果想将一组用户都可以使用sudo,则使用%加在组名前面
%your_group_name ALL=(ALL) ALL
授权用户使用管理权限的时候不输入密码
如果想不必输入密码,则需要更改visudo中的相关行如下
your_user_name ALL=(ALL) NOPASSWD: ALL
设置过以上相关内容后,就可以使用sudo临时使用需要管理权限的命令,方法是
sudo commands
如果没有指定NOPASSWORD的话,是需要输入相关用户密码的。
可以使用sudo -l命令列出此用户的相关特殊权限