[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 ~]$
允许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
[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 ~]#