root把本来只能由超级用户执行的命令赋予普通用户执行的权限叫sudo权限。
1 赋予权限
1.1给用户赋予权限:
visudo 命令 # 实际修改的是 /etc/suduers 文件
例:username ALL=(ALL) ALL
# 用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
user1 ALL=(ALL) /sbin/shutdown -r now
# 允许user1 执行 shutdown -r now 重启命令 此处命令写的越详细,普通用户得到的权限就越小,如果只写 /sbin/shutdown 那么普通用户就可以使用shutdown命令的所有参数了。
1.2给用户组赋予权限:
格式跟上面是类似的 只是把用户名换成组名的同时在组名前加 %
例:%group1 ALL=(ALL) /sbin/shutdown -r now
2 执行命令
执行之前我们可以用 sudu -l 查看可用的sudo 命令。
当root用户赋予普通用户执行某条命令的权限后,普通用户可以如下执行
sudo /sbin/shutdown -r now
当第一次使用 sudo 执行命令的时候会需要你输入当前登录用户的密码,以确保你是此用户真正的管理者。而且在接下来的短时间内不会再让你输入密码。
注意:
当root给普通用户赋予权限时,一定要考虑到命令的危险性。比如修改密码的操作。
user1 ALL=(ALL) /user/bin/passwd
这样的配置会导致user1可以修改任意用户的密码,包括root
所以要把命令配置的详细一些:
user1 ALL=(ALL) /user/bin/passwd [A-Za-z]*, !/user/bin/passwd "", !/user/bin/passwd root
第一句的正则表达式指定了密码的格式,第二句规定密码不能为空 ,第三句限制不能修改root用户的密码。