如何在 CentOS 7 中创建超级用户

如何在 CentOS 7 中创建超级用户

我对 Linux 操作系统非常陌生(我从 CentOS 7 开始),所以我想知道是否可以创建某种超级用户,使其拥有与 root 相同的权限。我的意思是能够写入 + 读取 + 执行 root 用户拥有的文件夹和文件。我为什么需要这个?我有具有完全访问权限的 VPS。为了提高我的 Web 服务器的安全性,我创建了新用户并禁用了 root 登录,现在我通过 Putty 和 WinSCP 使用 RSA 公钥/私钥登录我的服务器。这是我的 sshd.conf:

Port my_port_number
Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

AuthorizedKeysFile  .ssh/authorized_keys
PasswordAuthentication no
RSAAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
PermitEmptyPasswords no

SyslogFacility AUTHPRIV

LoginGraceTime 15m
PermitRootLogin no
StrictModes yes
MaxAuthTries 2

GSSAPIAuthentication yes
GSSAPICleanupCredentials no

UsePAM no

IgnoreRhosts yes

X11Forwarding no
ClientAliveInterval 120
ClientAliveCountMax 720

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

Subsystem   sftp    /usr/libexec/openssh/sftp-server
AllowUsers user_that_i_have_created

另外,我已将此行添加到/etc/sudoers

## Allow root to run any commands anywhere 
root    ALL=(ALL)   ALL
user_that_i_have_created ALL=(ALL) ALL

我也这样做过:

usermod -aG wheel user_that_i_have_created

现在有什么问题?作为我创建的新用户,我无法访问仅允许 root 读取和修改的文件和文件夹。由于我经常需要修改一些 root 拥有的配置文件(例如 apache 的 httpd.conf),我需要通过 WinSCP 访问这些文件,因为我习惯于通过其记事本编辑它们。通过 Putty(以 root 身份登录)编辑这些文件会浪费时间。

我在脑海中想象着我可以创建新用户,与 root 相同(就特权和权限而言),但名称不同。这在 Linux 中可行吗?

答案1

通过 Putty(以 root 身份登录)编辑这些文件会浪费时间。

如果以上是真的在安全性和工作量方面,您的最佳平衡点就在于此,然后愉快地设置PermitRootLogin without-password并以 root 身份直接通过 WinSCP 登录来编辑您想要的任何内容。

所有“不要以 root 身份登录”的想法都是为那些有时间使用的人准备的sudo。如果您只允许使用密码保护的私钥进行 root 登录,则漏洞表面大致相同(需要一个私钥 + 一个密码)。

然而,我认为 Putty 方法慢点比 WinSCP 更好。它快点对我来说 - 我不知道,也许我不知道如何有效地使用 WinSCP。或者也许你需要复习一下你的bash技能。

答案2

这就是目的sudo所在。如果配置正确,文件中的用户sudoers也可以执行 root 可以执行的所有操作。

要编辑文件:vim filename您只需使用sudo vim filename和类似的命令即可。

创建额外的实际根用户实际上是不可能的 - 您也可以为另一个用户提供 id 0,但那是具有另一个名称的实际根用户。

答案3

扩展 Veniamin 的评论,成为 root 的另一种方法是改变配置文件的权限,以便您的个人用户可以编辑它们。

也许您可以创建一个 wwwadmin 用户组并将自己添加到其中。然后在 /etc/httpd/conf.d/ 中创建您的 Web 服务器配置,并使其可由 wwwadmin 组写入。

您可能还希望能够重新启动 httpd。您可以创建 sudo 规则,仅允许以 root 身份执行该服务重新启动命令。

以 root 身份启动 httpd 也是可选的。您可以覆盖 systemd httpd.service 以添加 CAP_NET_BIND_SERVICE(用于端口 < 1024)并以不同的用户和组身份运行。请参阅 systemd.exec 手册页。

相关内容