一、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管理员就须要进行密码验证了。ide
二、sudo服务ui
普通用户能够彻底切换到root管理员身份来完成相应工做,但这将暴露root管理员的密码,sudo命令能够把特定命令的执行权限赋予给指定用户,这样既可保证普通用户可以完成特定的工做,也能够避免泄露root管理员密码。咱们要作的就是合理配置sudo服务,以便兼顾系统的安全性和用户的便捷性。sudo服务的配置原则也很简单—在保证普通用户完成相应工做的前提下,尽量少地赋予额外的权限。spa
sudo命令用于给普通用户提供额外的权限来完成本来root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。code
sudo服务中的可用参数以及做用blog
参数 | 做用 |
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u 用户名或UID值 | 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行sudo时须要再次进行密码验证 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
总结来讲,sudo命令具备以下功能:it
限制用户执行指定的命令:io
记录用户执行的每一条命令;table
配置文件(/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管理员的身份执行指定的命令,切记必定要给出该命令的绝对路径,多个命令用逗号隔开,不然系统会识别不出来。