红帽7 su命令与sudo服务

1、su命令

su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户

[root@localhost Desktop]# su - lisi
Last login: Wed Sep 12 23:47:44 CST 2018 on pts/0
[lisi@localhost ~]$ id
uid=1001(lisi) gid=1001(lisi) groups=1001(lisi) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

上面的su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。另外,当从root管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成root管理员就需要进行密码验证了。

2、sudo服务

普通用户可以完全切换到root管理员身份来完成相应工作,但这将暴露root管理员的密码,sudo命令可以把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码。我们要做的就是合理配置sudo服务,以便兼顾系统的安全性和用户的便捷性。sudo服务的配置原则也很简单—在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限。

sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。

  sudo服务中的可用参数以及作用

参数 作用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语

 

总结来说,sudo命令具有如下功能:

限制用户执行指定的命令:

记录用户执行的每一条命令;

配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;

验证密码的后5分钟内(默认值)无须再让用户再次验证密码。

可以使用sudo命令提供的visudo命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错,只有root管理员才可以使用visudo命令编辑sudo服务的配置文件

使用visudo命令配置sudo命令的配置文件时,其操作方法与Vim编辑器中用到的方法一致,因此在编写完成后记得在末行模式下保存并退出。在sudo命令的配置文件中,按照下面的格式将第99行(大约)填写上指定的信息

谁可以使用  允许使用的主机=(以谁的身份)  可执行命令的列表

在填写完毕后记得要先保存再退出,然后切换至指定的普通用户身份,此时就可以用 sudo -l 命令查看到所有可执行的命令了

 

作为一名普通用户,是肯定不能看到root管理员的家目录(/root)中的文件信息的,但是,只需要在想执行的命令前面加上sudo命令就可以了

[lisi@localhost ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[lisi@localhost ~]$ sudo ls /root/
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop         Downloads  Music          Public    Videos

如果需要让某个用户只能使用root管理员的身份执行指定的命令,切记一定要给出该命令的绝对路径,多个命令用逗号隔开,否则系统会识别不出来。

 

原文地址:https://www.cnblogs.com/zq8421/p/9643017.html