su和sudo命令的用法

Posted pandachen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了su和sudo命令的用法相关的知识,希望对你有一定的参考价值。

为了安全起见,尽量不要用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 

以上是关于su和sudo命令的用法的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统中切换用户身份su与sudo的用法与实例

linux怎么提升root权限啊?用su和sudo 也不行啊?

linux su和sudo命令的区别

linux su和sudo命令的区别

Linux: su 和 sudo 的区别和用法

sudo的用法