为了安全起见,尽量不要用root用户去做所有事情,因为一旦执行了错误的命令,可能会直接导致系统崩溃。

一、su命令

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

需要注意的是,su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息,建议在切换用户身份时添加这个减号(-)。下图是su命令的例子:

sudo su是什么命令 sudo命令使用_配置文件

二、sudo命令


使用 su 命令,普通用户可以完全切换到 root 管理员身份来完成相应工作,但这将暴露 root 管理员的密码,从而增大了系统密码被黑客获取的几率,这并不是最安全的方案。

sudo 命令把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露 root 管理员密码。

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

sudo su是什么命令 sudo命令使用_可执行_02


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