SU命令与sudo服务
Linux系统为了安全性考虑,使得许多系统命令和服务只能被root管理员来使用,但是这也让普通用户受到了更多的权限束缚,从而导致无法顺利完成特定的工作任务。
文章目录
su命令
su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户。
一 ,su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)
二 ,su命令切换用户时带上(-)默认切换到root目录便捷操作!
一、sudo命令
sudo命令把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码。我们要做的就是合理配置sudo服务,以便兼顾系统的安全性和用户的便捷性。sudo服务的配置原则也很简单—在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限。
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。
sudo服务中的可用参数以及作用
参数 | 作用 |
---|---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u 用户名或uid值 | 以指定用户身份执行命令 |
-k | 清空密码的有效时间,下次执行sudo时需要再次验证密码 |
-b | 在后台执行的命令 |
-p | 更改询问密码的提示器 |
visudo命令
用于配置用户权限。使用该命令配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。只有root管理员才能用visudo命令。
編輯普通用戶的使用權限 在第99行
先用whereis 查看命令 再在普通用户查看命令位置
在使用visudo 99列赋予文件权限 在切换普通用户 sudo +命令+文件位置 就可以使用
二、sudo 的具体功能及演示
1.使用whereis命令
代码如下(示例):
[root@zhuxing Desktop]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz
复制文件根目录 : /usr/bin/cat
2.使用visudo命令
代码如下(示例):
使用visudo命令修改普通用户zhuxing 的权限使他赋予cat命令的权限
編輯普通用戶的使用權限 在第99行zhuxing ALL=(ALL) /usr/bin/cat
具体命令如下
[root@zhuxing Desktop]# visudo
[root@zhuxing Desktop]# su - zhuxing
Last login: Tue Oct 13 07:43:40 EDT 2020 on pts/0
[zhuxing@zhuxing ~]$ sudo cat /etc/shadow
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for zhuxing: 需要输入密码
处理结果如图所示:普通用户已经赋予cat权限但需要输入密码
赋予无密码使用sudo命令
root ALL=(ALL) ALL
zhuxing ALL=NOPASSWD: /usr/bin/cat
修改普通用户访问sudo需要密码的问题
[root@zhuxing Desktop]# visudo
[root@zhuxing Desktop]# su - zhuxing
Last login: Tue Oct 13 08:17:08 EDT 2020 on pts/0
[zhuxing@zhuxing ~]$ sudo cat /etc/shadow
root:$6$1aEIprXG7Adk55tv$v376la3uqUPhgF.M0m/8D0swVKWZndKNHGqg07tOwxfZYL41RjWviPElX33X1YcEXL0Iv0wH/Itqz28vBXrAU0:18519:0:99999:7:::
bin:*:16141:0:99999:7:::
daemon:*:16141:0:99999:7:::