为了安全起见,尽量不要用root用户去做所有事情,因为一旦执行了错误的命令,可能会直接导致系统崩溃。
一、su命令
su 命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,切换到其他用户,比如从 root 管理员切换至普通用户。
需要注意的是,su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息,建议在切换用户身份时添加这个减号(-)。下图是su命令的例子:
二、sudo命令
使用 su 命令,普通用户可以完全切换到 root 管理员身份来完成相应工作,但这将暴露 root 管理员的密码,从而增大了系统密码被黑客获取的几率,这并不是最安全的方案。
sudo 命令把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露 root 管理员密码。
sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为“sudo [参数] 命令名称”。
sudo 命令具有如下功能:
1、限制用户执行指定的命令:
2、记录用户执行的每一条命令;
3、配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
4、验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。
三、sudo配置文件
可以使用 sudo 命令提供的 visudo 命令来配置用户权限,只有 root 管理员才可以使用 visudo 命令编辑sudo的配置文件(/etc/sudoers),其操作方法与Vim编辑器中用到的方法一致,因此在编写完成后记得在末行模式下保存并退出。
# visudo
进入编辑状态后,按照下面的格式填写指定的信息:
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
需要注意的是,可执行命令列表中一定要给出命令的绝对路径,否则系统会识别不出来。例如:
root ALL=(ALL) ALL
cb ALL=(ALL) /usr/bin/cat,/usr/sbin/poweroff
如果让用户执行sudo命令时不需要密码验证,可以添加NOPASSWD参数。例如:
cb ALL=NOPASSWD: /usr/bin/cat,/usr/sbin/poweroff
对用户组配置sudo权限,组名前加%,下面的配置允许sudo组中的用户执行任何命令:
%sudo ALL=(ALL:ALL) ALL
原文地址:https://www.cnblogs.com/pandachen/p/10992284.html