Linux su

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值