在linux中su-和suroot和sudo有什么区别?

直接更改su用户,需要密码。
运行 sudo 命令;使用您自己的密码。
suroot 不是命令并且是错误的。
sudo 比 su 更安全、更方便。
你自己看看吧。

Linux 著名的sudo、su是什么?怎么用?

哎呀,这些su和sudo命令在Linux系统中非常重要。
简单地说,su 命令允许您从当前用户切换到另一个用户。
如果不指定用户名,则默认以root用户登录。
默认情况下,此 su 不会更改您的当前目录。
它只会更改环境变量,例如 HOME 和 SHELL。
如果您不是 root 用户,还会添加 USER 和 LOGNAME。

然后我们来谈谈sudo命令。
这个东西非常有用。
非 root 用户也可以运行需要超级用户权限的命令。
sudo 配置文件称为 sudoers,位于著名的 /etc 目录中。
这个 sudoers 文件告诉系统如何处理 sudo 命令并规定每个 sudo 用户可以做什么。

看,/etc/sudoers.d目录包含自定义配置文件,这些文件与/etc/sudoers中的相同。
但是,请注意,只有不以 ~ 结尾且不包含 . 被视为有效的配置文件。
sudo 将读取所有这些文件并将它们附加到配置中。

visudo命令用于检查sudoers文件的语法,以避免因配置错误而导致系统崩溃。
默认使用 vi 编辑器,但您也可以将其配置为使用其他编辑器。

在 Ubuntu 和 CentOS 上配置 visudo 的方式略有不同。
如果要修改 sudoers 文件,必须使用 sudovisudo 命令打开该文件。

这个sudoers权限比较复杂,但是如果你想给普通用户授予sudo权限,最简单的方法就是将他添加到超级权限组中。

自定义sudoers规则时,可以为单个用户或用户组指定一行规则,也可以使用别名在组中指定规则。
您会看到,示例 1 和示例 2 显示了如何使用别名对指定规则进行分组。

sudo还有一些常用选项,例如设置密码有效期和错误消息。

如果你想了解更多sudo的使用和配置规则,可以去sudo官网。
有SudoManual、SudoersManual、VisudoManual等文档,相当详细。

Linux su命令使用方法及注意事项

说白了,su命令是在Linux系统中用来改变用户身份的。
其实很简单。
它允许您临时从某个用户(特别是 root 用户)获取权限,以便执行某些高权限操作。
我们先来说说最重要的事情。
如果要切换到root用户,记得输入su-或su--login然后输入密码,这样才能加载root环境变量、主目录和shell配置文件。
比如我们去年跑的项目中,我们使用su-切换到root用户,执行一些系统维护任务。

还有一点,如果想切换到指定的普通用户,直接使用su-用户名,比如su-alice,然后输入密码。
更改后将加载用户的环境配置。
还有另一个关键细节。
如果不想加载目标用户的环境变量,可以直接使用su用户名。
这只会更改身份并保留当前用户的环境变量和路径。

一开始我以为su和sudo没有什么区别,后来发现错了。
sudo 实际上更安全,因为它不需要共享 root 密码,而且还可以授权命令和审计操作日志。
例如,我们可以允许用户Alice在配置文件中通过sudo重启Nginx,避免直接使用su的风险。

等等,还有一件事。
使用su时,请注意保护root密码,不要泄露。
另外,可以通过PAM模块限制对su的访问,例如只允许wheel用户组使用su。
此外,检查目标用户的 shell 配置也很重要。
如果设置为 /sbin/nologin 或 /bin/false,您将无法通过 su 登录。

最后,定期审核日志很重要。
您可以通过查看 /var/log/auth.log 或 /var/log/secure 了解有关登录尝试的更多信息。
我认为值得尝试结合 sudo 和 PAM 模块来管理生产环境中的权限。
这样可以有效平衡系统管理的便捷性和安全性。