Sudo 命令的使用
 
linuxsu用于切换用户
1--su USERNAME
改命令是在切换用户后不开启一个新的环境变量shell,也就是说仍然处在切换前用户的shell,具有切换前用户的权限。
2--su – USERNAME
su 命令后加上“-”表示开启一个新的变量。Root用户在切换到普通用户时不需要输入密码。
 
3--sudo 是在不切换用户的情况下,以其他用户的身份执行一个命令。它能够限制指定用户在指定的主机上运行某些指定的命令。
/etc/sudoerssudo命令的编辑文档
命令格式 User_Alias Host_Alias=(Runas_Alias) Commd_Alias
 
----注:
1.      User_Alias可以是单个或多个用户,系统组(以%标识),网络组(以+标识)
2.      Runas_Alias 可以是单个或多个用户,系统组(以%标识),网络组(以+标识),ID号(以#开头标识)
3.      Host_Alias 使用主机名或IP,或一个网段
4.      Commd_Alias 1命令;2目录(必须以/结尾)最好使用全路径;3other aliases
允许嵌套;允许使用通配符。
 
测试 sudo 命令
1 建立两个普通用户 liv  poppy 添加到组stu
 切换到liv 测试fdisk –l 
2 root用户下使用visudo命令编辑 /etc/sudoers文件
添加如下命令。让liv具有root用户使用fdisk的权限。
 liv station73=(root) /sbin/fdisk
(注:使用sudo命令时加上命令的全路径)
 
3 下面在添加几个命令行 使liv能执行更多的命令
1.liv station73=NOPASSWD:/sbin/service,/sbin/ifconfig,/bin/mount
上诉命令都不输入密码
(注:在普通用户使用sudo命令时,系统会提示输入密码,验证身份,密码要输入的是普通用户的密码。系统确定使用sudo命令的是哪个用户,并记录至日志。若不想在使用某个命令时输入密码,在命令行前加上NOPASSWD: 默认是PASSWD )
 
2 liv station 73=/sbin/service/,NOPASSWD:/sbin/ifconfig,/bin/mount
执行service命令需输入密码,ifconfig,mount 不需要
2.liv station73=(poppy) /sbin/service,NOPASSWD:(root) /bin/mount
一个用户可以执行多个用户的某些命令
3.%stu station=NOPASSWD:NETWORKING./bin/
Stu组中的用户可以不输入用户密码执行文件中定义的NETWORKING ,以及目录/bin下的命令。还记得吗?目录后面必须加上/结尾
4 poppy ALL=(ALL) ALL
这个命令很危险 它是是poppy用户可以在任何主机上以任何用户执行任何命令。
测试方法相同。
Sudo 的特点是:给用户尽可能少的权限,但能完成他们的工作,所有在编辑SUDOERS文件时,注意不要让非法用户截取root权限。