su命令:切换用户
用法
su - 用户名 :切换到用户
若缺少 - 则仅切换身份,不切换用户环境
su -root:切换到root
切换到root可以省去 - root
防止其他用户su切换到root用户
借助pam_wheel认证模块,只允许在wheel组的用户可以使用su命令切换用户。
1.将授权su用户添加到wheel组。
2.修改/etc/pam.d/su认证配置以启用pam_wheel认证
[root@localhost zhangsan]# gpasswd -a lisi wheel
正在将用户“lisi”加入到“wheel”组中
[root@localhost zhangsan]# grep wheel /etc/group #查看wheel组用户
wheel:x:10:ky11,zhangsan,lisi
[root@localhost zhangsan]#
[root@localhost zhangsan]# vim /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid #将开头#auth的#删除即可
auth substack system-auth
省略部分
......
保存退出
第一列代表模块类型
第二列代表控制标记
第三列代表模块名称
第四列代表模块参数
[wangwu@localhost ~]$ su - root
密码:
su: 拒绝权限
[wangwu@localhost ~]$
使用su命令切换用户的操作会记录到安全日志/var/log/secure文件中。
[root@localhost zhangsan]# cat /var/log/secure
Apr 26 22:18:01 localhost polkitd[6644]: Loading rules from directory /etc/polkit-1/rules.d
Apr 26 22:18:01 localhost polkitd[6644]: Loading rules from directory /usr/share/polkit-1/rules.d
Apr 26 22:18:01 localhost polkitd[6644]: Finished loading, compiling and executing 10 rules
Apr 26 22:18:01 localhost polkitd[6644]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Apr 26 22:18:04 localhost sshd[7143]: Server listening on 0.0.0.0 port 22.
Apr 26 22:18:04 localhost sshd[7143]: Server listening on :: port 22.
Apr 26 22:18:31 localhost polkitd[6644]: Registered Authentication Agent for unix-process:7746:4533 (system bus name :1.105 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Apr 26 22:18:31 localhost polkitd[6644]: Unregistered Authentication Agent for unix-process:7746:4533 (system bus name :1.105, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
Apr 26 22:18:31 localhost gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session opened for user gnome-initial-setup by (uid=0)
Apr 26 22:20:41 localhost accounts-daemon: request by system-bus-name::1.153 [/usr/libexec/gnome-initial-setup pid:8056 uid:989]: create user 'ky11'
Apr 26 22:20:41 localhost useradd[8532]: new group: name=ky11, GID=1000
Apr 26 22:20:41 localhost useradd[8532]: new user: name=ky11, UID=1000, GID=1000, home=/home/ky11, shell=/bin/bash
Apr 26 22:20:41 localhost useradd[8532]: add 'ky11' to group 'wheel'
省去部分
.......
sudo:提升执行权限
在配置文件/etc/sudoers中添加授权
visudo :编辑配置 末行模式:set nu 显示行数
[root@localhost ~]# visudo
1 ## Sudoers allows particular users to run various commands as
2 ## the root user, without needing the root password.
3 ##
......
省略部分
......
100 root ALL=(ALL) ALL
101 lisi ALL=/usr/bin/useradd
# 普通用户 权限的绝对路径
# 添加多个权限用,隔开。必须用绝对路径
......
## Allows people in group wheel to run all commands
# 允许群组中的人运行所有命令。
110 # %wheel ALL=(ALL) NOPASSWD: ALL
# 有%的是个组。wheel组有所有权限。将用户加入组可以获得所有权限。
110 ## Same thing without a password :同样的事情没有密码
111 # %wheel ALL=(ALL) NOPASSWD: ALL #激活将开头的#删除
当添加命令较多时,可以创建别名(大写)。
26 ## Networking
27 # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/ dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial , /sbin/iwconfig, /sbin/mii-tool
28
29 ## Installation and management of software
30 # Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
31 Cmnd_Alias COMM=/usr/sbin/useradd,/usr/sbin/userdel
#设置别名: COMM= 绝对路径的命令
32 ## Services
33 # Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemc tl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/s ystemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable
......
省去部分
......
[root@localhost ~]# visudo
100 root ALL=(ALL) ALL
101 zhangsan ALL=COMM
# 将别名命令赋给zhangsan
查询用户权限:
[zhangsan@localhost ~]$ sudo -l
用户 zhangsan 可以在 localhost 上运行以下命令:
(root) /usr/sbin/useradd, /usr/sbin/userdel
多个命令时可以排除个别命令。
[root@localhost ~]# visudo
101 zhangsan ALL=COMM,!/user/bin/userdel
# !表示非。即除了此命令外COMM中其他命令都有。
用lisi创建tom用户
[lisi@localhost ~]$ sudo useradd tom
#不加sudo没有权限进行useradd操作
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] lisi 的密码:
[lisi@localhost ~]$ tail -1 /etc/passwd
tom:x:1004:1005::/home/tom:/bin/bash
#可以进行useradd的其他操作。
-u:指定用户UID
-d:指定用户的家目录
-e:指定用户的失效时间
-s:指定用户能否登陆shell
sudo -l :查看用户的权限
[lisi@localhost ~]$ sudo -l
[sudo] lisi 的密码:
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
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
用户 lisi 可以在 localhost 上运行以下命令:
(root) /usr/bin/useradd