sudo命令詳解

 

1.sudo命令功能:控制指定用戶 通過哪些遠程主機 以哪個用戶身份 执行哪些命令

 sudo配置文件在/etc/sudoers

 /etc/sudoers:輸寫格式

    誰 通過遠程主機=(以誰的身份) 執行這些命令


 例如:root ALL=(ALL) ALL

   root用戶通過任意遠程主機以所有用戶身份執行所有命令

注意:man sudoers 可查看详细的输写格式

2.別名定義:別名取名必須全部使用大寫字母,當后面有多個,用逗號隔開

       别名之间可以嵌套。

 用户别名     User_Alias     FULLTIMERS = willow, tom, rucy

                              也可以用组名:%组名


 主机别名     Host_Alias     CUNETS = 172.16.0.0/255.255.0.0

                              也可以使用主机名,IP地址


 以谁的身份别名 Runas_Alias    OP = root, operator

                              用法与User_Alias相同


 命令列表     Cmnd_Alias     PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less

                              命令路径,命令目录

3.visudo 相當于vim /etc/sudoers,都是修改sudo的配置文件

  visudo 檢查語法,建议常用这个命令修改sudo配置文件

  vim /etc/sudoers 不檢查語法

4.sudo常用选项:

   -l,显示当前用户可使用sudo的命令列表

   -k,清除当前用户认证密码,下次sudo命令需输入密码

5.实例:希望willow用户使用root身份执行ifconfig命令查看本机IP地址:

   visudo   #打开/etc/sudoers配置文件进行修改

   willow   ALL=(root)   /sbin/ifconfig

6.实例:希望willow用户使用root身份执行mount命令挂载,但无需输入密码认证

  visudo   #打开/etc/sudoers配置文件进行修改

   willow   ALL=(root)   NOPASSWD: /bin/mount

7.实例:希望willow用户,willow组,user1组使用root身份执行添加,修改,删除用户命令,并能够修      改用户密码(注意:请使用别名实现)

 visudo   #打开/etc/sudoers配置文件进行修改

 User_Alias USERSADM = willow,%willow,%user1

 Cmnd_Alias USERSADMCMD = /usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd

 USERSADM ALL=(root)  USERSADMCMD

8.实例:希望willow用户,willow组,user1组使用root身份执行添加,修改,删除用户命令,并能够修改用户密码    但不能修改root密码(注意:请使用别名实现,执行命令时无需输入密码认证)

 visudo   #打开/etc/sudoers配置文件进行修改

 User_Alias USERSADM = willow,%willow,%user1

 Cmnd_Alias USERSADMCMD = /usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,! /usr/bin/passwd root

 USERSADM ALL=(root) NOPASSWD: USERSADMCMD


解释:/usr/bin/passwd [A-Za-z]*  :表示/usr/bin/passwd 后面必须跟用户名,不能直接回车

   ! /usr/bin/passwd root    :表示除了 /usr/bin/passwd root这个命令其他所有,即叹号是取反的意思

9.希望willow普通用户拥有与root相同的权限

 willow ALL=(ALL) NOPASSWD: ALL