首页 > 其他 > 详细

su命令与sudo服务

时间:2020-04-29 20:12:25      阅读:106      评论:0      收藏:0      [点我收藏+]

su命令

su命令可以切换用户身份,使得当前用户在不退出登录的情况下,顺畅的切换到其他用户。

[root@localhost Desktop]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost Desktop]# su - letty
Last login: Tue Apr 28 20:34:38 CST 2020 on pts/0
[letty@localhost ~]$ id
uid=1000(letty) gid=1000(letty) groups=1000(letty) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

使用su - username或su -l username,可以连同PATH/USER/MAIL等变量都转换成新用户的环境。普通用户切换时均需要密码验证,root管理员切换为任何用户都不需要密码验证。

默认情况下任何用户都允许使用su命令,会带来安全风险,因此Linux为了进一步加强系统的安全性建立了一个管理员组,只允许这个组的用户来执行su - 命令登陆为root管理员。在Unix/Linux中这个组通常为wheel,配置在/etc/pam.d/su。

[root@localhost ~]# cat /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        substack    system-auth
auth        include        postlogin
account        sufficient    pam_succeed_if.so uid = 0 use_uid quiet
account        include        system-auth
password    include        system-auth
session        include        system-auth
session        include        postlogin
session        optional    pam_xauth.so

将需要使用su命令的用户加入wheel组,修改配置文件/etc/pam.d/su,启用pam.sheel认证

 [root@localhost ~]# cat /etc/group | grep wheel
  wheel:x:10:
 [root@localhost ~]# usermod -G wheel letty
 [root@localhost ~]# cat /etc/group | grep wheel
  wheel:x:10:letty

[root@localhost ~]# vim /etc/pam.d/su
 auth        required    pam_wheel.so use_uid

使用用户letty与test测试su - 命令

[root@localhost ~]# su - letty
Last login: Wed Apr 29 18:22:03 CST 2020 on pts/0
[letty@localhost ~]$ su - root
Password: 
Last login: Wed Apr 29 18:31:05 CST 2020 on pts/0
[root@localhost ~]# su - test
[test@localhost ~]$ su - root
Password: 
su: Permission denied

sudo服务

sudo命令将特定命令的执行权限赋予给指定用户,这样即可以保证普通用户能够完成特定的任务,也可以避免泄露root管理员的密码。sudo服务的配置原则——在保证普通用户完成相应工作的前提下,尽可能少的赋予额外的权限。

格式为:sudo [参数] 命令名称

技术分享图片

 sudo功能如下:

  • 限制用户执行指定的命令;
  • 记录用户执行的每一条命令;
  • 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
  • 验证密码后5分钟内(默认值)无须再让用户再次验证密码。

一开始系统默认仅有root可以执行sudo,如果安装的时候将一般用户设置为了管理员,那么除了root,该一般用户也可以使用sudo(建立账号的时候默认将此用户加入sudo的支持了)。

可以使用sudo命令提供的visudo命令配置用户权限,该命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,并对配置文件内的参数进行语法检查。


[root@localhost ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz

[root@localhost ~]# visudo

98 root    ALL=(ALL)       ALL
     99 letty   ALL=(ALL)       /usr/bin/cat
用户名
第一个ALL:允许从任何终端访问sudo
第二个ALL:sudo命令被允许以任何用户身份执行
第三个ALL:所有命令都可以作为root执行

测试

[root@localhost ~]# su - letty
Last login: Wed Apr 29 18:51:27 CST 2020 on pts/0
[letty@localhost ~]$ cat /etc/shadow | tail -n 5
cat: /etc/shadow: Permission denied
[letty@localhost ~]$ sudo cat /etc/shadow | tail -n 5
postfix:!!:18378::::::
sshd:!!:18378::::::
tcpdump:!!:18378::::::
letty:$6$M4kyBi8YOacMjgqY$uBvWHmoMOaLaft2agEk7dNrIHcVV3LoW8nKwxKHAdYlGlcbZqA6BkUp5F/F8J5ipxfYN.gotJx95Oq.wgSebb1::0:99999:7:::
test:$6$EDWlmaBH$NV0ZfamDGSc7UnEiAGerDx5L.jggepKOL4LO/ZZKM0dYA6KZMPANbGXoAObDV2fAcw0TNNTLko2Z41G1N4Vdn.:18381:0:99999:7:::

 

sudo的工作过程如下:

  1. 当用户执行sudo命令,系统主动寻找/etc/sudoers文件判断该用户是否拥有sudo权限;
  2. 确认用户拥有sudo权限后,使用户输入自己的密码确认(可修改参数设置为不输入密码);
  3. 后开始执行sudo的操作。

 

参考博客:

https://www.cnblogs.com/kerrycode/p/7053118.html

https://www.linuxidc.com/Linux/2013-07/88047.htm

su命令与sudo服务

原文:https://www.cnblogs.com/wanao/p/12804150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!