📅  最后修改于: 2023-12-03 15:36:44.341000             🧑  作者: Mango
在 Linux 系统中,root 用户是最高权限用户,拥有对系统的完全控制权。默认情况下,只有 root 用户才能执行一些敏感任务和命令。然而,有时需要允许普通用户作为 root 用户执行某些命令,以方便他们完成某些任务。这篇文章将介绍如何在 CentOS 系统中允许普通用户执行 root 命令。
要允许普通用户执行 root 命令,需要将其添加到系统的 sudoers 文件中。sudoers 文件位于 /etc/sudoers。这个文件只能由 root 用户编辑。因此,必须使用具有 root 权限的用户登录系统并使用以下命令打开 sudoers 文件:
sudo visudo
此命令将启动一个编辑器,您可以使用该编辑器编辑 sudoers 文件。在将用户添加到文件中之前,需要了解一些关于 sudoers 文件的重要信息。
Sudoers 文件是一个非常强大的配置文件。它允许您指定哪些用户可以以 root 身份执行哪些命令。如果您编辑此文件并出现错误,可能会导致严重问题。因此,在修改 sudoers 文件之前,请务必备份该文件。
最好的方法是使用 visudo 命令编辑 sudoers 文件。它会检查您所做的更改是否正确,并提示您进行更正。如果有任何语法错误,visudo 命令会通知并拒绝保存 sudoers 文件。
要将用户添加到 sudoers 文件中,请输入以下命令:
user_name ALL=(ALL) ALL
这将为 user_name 用户授予 root 权限。在 real_login_shell 启动之前,还需要配置以下内容,才能在允许用户 root 命令时真正按照root用户的权限执行。
Defaults:%username requiretty
请将 user_name
替换为您要添加到 sudoers 文件中的实际用户名。如果要允许多个用户执行 root 命令,则可以在同一行上输入所有用户名,用逗号分隔。
要测试用户是否具有 sudo 权限,请尝试在 user_name 用户会话中执行指令:
sudo whoami
此命令将执行 whoami 命令,并返回当前用户的 ID。如果用户 user_name 具有 sudo 权限,则此命令将返回 root 用户 ID。
通常常常遇到含有特殊字符的密码,在被 $ 转义后无法正常形成命令,需要使用引号才能正常使用(比如,这种情况的密码:$123abc)。
sudo ufw allow from 192.168.0.0/16 to any port 3306 comment "Allow MySQL access from local network"
注意,如果用户当前已经登录系统,需要重新登录用户,才能将对 sudoers 的更改生效。
在 CentOS 系统上,允许普通用户执行 root 命令相当简单。只需按照本文所述的步骤编辑 sudoers 文件即可。但是,在编辑此文件之前,请务必了解秘诀和注意事项,以避免造成严重问题。