使用su切换用户身份提前配置sudo分配管理权限


[root@localhost ~]# su  - test2 -c "touch /tmp/test.txt" //以管理员的身份切换用户


[root@localhost ~]# ls -ld /tmp/test.txt
-rw-rw-r--. 1 test2 test2 0 7月  16 08:58 /tmp/test.txt

[root@localhost ~]#



[root@localhost ~]# su - test2

上一次登录:一 7月 16 08:58:17 CST 2018pts/0 上
[test2@localhost ~]$ whoami
test2
[test2@localhost ~]$ su - -c "systemctl status httpd"  //以普通用户切换管理员身份执行命令
密码:
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 一 2018-07-16 08:42:27 CST; 19min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1980 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1980 /usr/sbin/httpd -DFOREGROUND
           ├─1981 /usr/sbin/httpd -DFOREGROUND
           ├─1982 /usr/sbin/httpd -DFOREGROUND
           ├─1983 /usr/sbin/httpd -DFOREGROUND
           ├─1984 /usr/sbin/httpd -DFOREGROUND
           └─1985 /usr/sbin/httpd -DFOREGROUND


7月 16 08:42:27 localhost.localdomain systemd[1]: Starting The Apache HTTP S...
7月 16 08:42:27 localhost.localdomain httpd[1980]: AH00558: httpd: Could not...
7月 16 08:42:27 localhost.localdomain systemd[1]: Started The Apache HTTP Se...
Hint: Some lines were ellipsized, use -l to show in full.

[test2@localhost ~]$ 


扫描二维码关注公众号,回复: 2316579 查看本文章


 允许softadm管理系统服务的权限

修改/etc/sudoers可以直接使用vim编辑该文件,或使用visudo命令修改该文件。为softadm授予相关脚本的执行权限,允许

systemctl工具来管理系统服务

如果没有softadm账户可以先创建该账户


softadm  ALL=(ALL)    /usr/bin/systemctl  //ALL为主机  (ALL)为权限   /usr/bin/systemctl为可以执行的命令权限
%west  ALL=(ALL)  /bin/*        //%west为附加组      west为附加组的名称  可以执行/bin/*所有的命令

[root@localhost ~]# su - softadm
上一次登录:一 7月 16 08:41:46 CST 2018pts/0 上
[softadm@localhost ~]$ sudo -l  //查看权限
[sudo] softadm 的密码:
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin


用户 softadm 可以在 localhost 上运行以下命令:
    (ALL) /usr/bin/systemctl
[softadm@localhost ~]$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 一 2018-07-16 08:42:27 CST; 13min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1980 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1980 /usr/sbin/httpd -DFOREGROUND
           ├─1981 /usr/sbin/httpd -DFOREGROUND
           ├─1982 /usr/sbin/httpd -DFOREGROUND
           ├─1983 /usr/sbin/httpd -DFOREGROUND
           ├─1984 /usr/sbin/httpd -DFOREGROUND
           └─1985 /usr/sbin/httpd -DFOREGROUND


7月 16 08:42:27 localhost.localdomain systemd[1]: Starting The Apache HTTP S...
7月 16 08:42:27 localhost.localdomain httpd[1980]: AH00558: httpd: Could not...
7月 16 08:42:27 localhost.localdomain systemd[1]: Started The Apache HTTP Se...
Hint: Some lines were ellipsized, use -l to show in full.
[softadm@localhost ~]$ 

[root@localhost ~]# useradd test2

[root@localhost ~]# echo 1 | passwd --stdin test2
更改用户 test2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# usermod -a -G west test2
[root@localhost ~]# su - test2
[test2@localhost ~]$ sudo -l


我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:


    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。


[sudo] test2 的密码:
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin


用户 test2 可以在 localhost 上运行以下命令:
    (ALL) /bin/*

[test2@localhost ~]$ 


修改/etc/sudoers配置

为useradm授予用户管理相关命令的执行权限,例外程序以!符号取反,放在后面。在执行相关程序时,可以利用通配符*.

[root@localhost ~]# visudo

useradm ALL=(ALL)  /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,!/usr/s

bin/user* *root


[root@localhost ~]# su - useradm
[useradm@localhost ~]$ sudo -l


我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:


    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。


[sudo] useradm 的密码:
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin


用户 useradm 可以在 localhost 上运行以下命令:
    (ALL) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user*,
        !/usr/sbin/user* *root
[useradm@localhost ~]$ sudo useradd newuser1
[useradm@localhost ~]$ sudo passwd newuser1
更改用户 newuser1 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[useradm@localhost ~]$ sudo passwd root
对不起,用户 useradm 无权以 root 的身份在 localhost.localdomain 上执行 /bin/passwd root。

[useradm@localhost ~]$ 


允许wheel组成员以特权执行所有命令

展示sudo的便利性及设置不当带来的危险性,生产环境下慎用

[root@localhost ~]# vim /etc/sudoers

%wheel  ALL=(ALL)       ALL

[root@localhost ~]# usermod -a -G wheel  sudoadm
[root@localhost ~]# su - sudoadm
[sudoadm@localhost ~]$ sudo -l


我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:


    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。


[sudo] sudoadm 的密码:
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin


用户 sudoadm 可以在 localhost 上运行以下命令:      //用户sudoadm可以在该主机上运行以附加组所有的权限
    (ALL) ALL

[sudoadm@localhost ~]$ 


为sudo机制启用日志记录,以便跟踪sudo执行操作

[root@localhost ~]# visudo

Defaults logfile="/var/log/sudo"


用户 sudoadm 可以在 localhost 上运行以下命令:
    (ALL) ALL
用户 root 可以在 localhost 上运行以下命令:
    (ALL) ALL
[root@localhost ~]# su - sudoadm

上一次登录:一 7月 16 09:25:08 CST 2018pts/0 上


[sudoadm@localhost ~]$ sudo -l  //查看授权的sudo操作
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, logfile=/var/log/sudo


[sudoadm@localhost ~]$ sudo systemctl status httpd
[sudo] sudoadm 的密码:
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 一 2018-07-16 08:42:27 CST; 48min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1980 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1980 /usr/sbin/httpd -DFOREGROUND
           ├─1981 /usr/sbin/httpd -DFOREGROUND
           ├─1982 /usr/sbin/httpd -DFOREGROUND
           ├─1983 /usr/sbin/httpd -DFOREGROUND
           ├─1984 /usr/sbin/httpd -DFOREGROUND
           └─1985 /usr/sbin/httpd -DFOREGROUND


7月 16 08:42:27 localhost.localdomain systemd[1]: Starting The Apache HTTP S...
7月 16 08:42:27 localhost.localdomain httpd[1980]: AH00558: httpd: Could not...
7月 16 08:42:27 localhost.localdomain systemd[1]: Started The Apache HTTP Se...
Hint: Some lines were ellipsized, use -l to show in full.

[sudoadm@localhost ~]$ exit
登出
[root@localhost ~]# tail /var/log/sudo
Jul 16 09:30:48 : root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=list
Jul 16 09:31:26 : sudoadm : TTY=pts/0 ; PWD=/home/sudoadm ; USER=root ;
    COMMAND=/bin/systemctl status httpd
[root@localhost ~]# 


猜你喜欢

转载自blog.csdn.net/weixin_40018205/article/details/81059485
今日推荐