Linux/Ubuntu sudoers 文件妙用

      sudo 是 linux 下允许普通用户使用超级权限的工具,他的配置文件为 /etc/sudoers , 我们可以使用 visudo 对该文件进行编辑,并且强烈建议使用这个命令对文件进行编辑,因为这个命令在编辑时带有自动排错和检查语法的功能,这样可以很有效滴保护 sudoers 文件不被错误地修改掉!

       一: sudo 设置不输入密码自动登录:

       1. 用 visudo 编辑 sudoers 文件,默认情况我们会看到有"%admin ALL=(ALL) ALL"一行注释 , 这里的 admin 是一个组名,这里表示属于 admin 组的用户可以有 sudo 权限,但是需要输入密码,如果想不输入密码,可以将此行改为  "%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL" 即可。

       2. 我们知道,sudo 情况下执行 /usr/bin/passwd root , 这个时候由于 admin 组的用户继承了 root 超级权限,因此它是可以将 root 的密码修改的,从安全上来讲,这个是不被允许的,避免这种情况发生,可以在 admin 组后面做如下配置, %admin ALL=(ALL) NOPASSWD:ALL, !/usr/bin/passwd root , 这样把 passwd命令禁用掉,则就不能修改 root 的密码了。

       3. 对于普通用户而言,可以单独定义其sudoer的访问规则:

        首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种
        Host_Alias
        Cmnd_Alias
        User_Alias
        Runas_Alias

1) 配置Host_Alias:就是主机的列表
Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表
Cmnd_Alias      COMMAND_FLAG = command1, command2, command3
3) 配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置权限
配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG 


例:

# Host alias specification
Host_Alias      IP = 172.16.1.100 , 172.16.1.101 。。。。

# User alias specification
User_Alias  OK = test1 , test2
# Cmnd alias specification
Cmnd_Alias      OK2 = /usr/bin/scp , /usr/bin/ssh  

# Defaults specification

# User privilege specification
root    ALL=(ALL) ALL
support IP=(ALL) NOPASSWD: Ok2

      

      


你可能感兴趣的:(Linux/Ubuntu sudoers 文件妙用)