终端设置

终端设置

如何让 CentOS/RHEL 提示我我的当我运行特权命令时,我需要输入密码(而不是 root 用户)。我找到了很多指南,详细介绍了如何在命令行中执行此操作,但我希望它也能适用于 X windows 应用程序。

或者换句话说:如何让 RHEL/CentOS 表现得像 Ubuntu。

答案1

终端设置

/etc/sudoers作为 root,我们需要通过运行来编辑文件visudo(注意:您可以获得export EDITOR=vim语法高亮,或使用您选择的编辑器)。
在第 83、86 行左右,您应该会看到两行相似的行(在 vim 中,您可以运行:set number以显示行号):

83 # %wheel  ALL=(ALL)       ALL
84
85 ## Same thing without a password
86 # %wheel  ALL=(ALL)       NOPASSWD: ALL

不同之处在于第 83 行要求用户输入他们的密码进行身份验证,而第 86 行将允许用户sudo无需重新提示他们输入密码即可进行身份验证。最佳安全实践表明,第 83 行更安全;但是根据您的情况,第 86 行可能更合适(例如,我通常在设置服务器时使用第 86 行,然后切换到第 83 行)。

退出并保存该文件。

现在我们需要告诉系统哪些用户可以升级他们的权限sudo。这可以通过将他们添加到wheel组来完成,这就是我们之前编辑的文件%wheel中指示的。有关该文件格式的更多信息,请参阅。sudoersman sudoers

$ usermod -a -G wheel erebusbat

该命令将把用户添加erebusbat到 wheel 组,结合我们之前的更改,将使所有用户都以 root 身份运行任何命令:

erebusbat@centos$ sudo whoami
root
erebusbat@centos$

X / GNOME 设置

consolehelper在 CentOS/RHEL 5 及以下版本中,X 身份验证由一组称为和 的程序处理userhelper。基本上发生的事情是这样的:当用户执行一个程序(例如pirut)时,它会检查pirut文件夹中是否有一个名为 的文件/etc/security/console.apps/,如果我们查看其中一个文件,它看起来像:

USER=root
PROGRAM=/usr/sbin/pirut
SESSION=true
KEEP_ENV_VARS=http_proxy,ftp_proxy

这告诉consolehelper/userhelper允许用户以 root 身份进行身份验证并运行程序。如果我们man userhelper看到,我们可以添加一个UGROUPS=指令,这样如果用户属于该组,他们将被允许以自己的身份进行身份验证,但以指令中指定的用户身份运行应用程序USER=。因此,我们的pirut文件需要看起来像:

USER=root
UGROUPS=wheel
PROGRAM=/usr/sbin/pirut
SESSION=true
KEEP_ENV_VARS=http_proxy,ftp_proxy

一旦我们做出这一更改,每当我们尝试pirut以普通用户身份运行(从 GNOME 菜单添加/删除程序)时,就会发生以下两件事之一:

  1. 系统将提示我们输入密码,然后程序将启动root
  2. root如果当前用户不在该wheel组中,我们将提示输入密码。

但是,手动更改所有这些文件可能会引起 PIA,因此我们要更聪明地工作,而不是更努力地工作:

$ cd /etc/security/console.apps/
$ sudo su -
$ pcregrep -ML '^UGROUPS=' * | xargs sed -i 's/^USER=root/USER=root\nUGROUPS=wheel/' 

sudo su -如果您当前处于 状态,则不需要该命令root。该命令不会“双重修复”任何文件,因此可以将其chron编辑或设置为在启动时运行以确保您的文件正常。更新和安装可以覆盖它们或创建没有该指令的新文件UGROUPS=

禁用 root 用户

一旦完成所有设置并测试,您就应该禁用 root 用户:

$ sudo passwd -l root

这是一个小写的 L,如 LOCK。

PermitRootLogin no然后,您应该在文件中设置或更改/etc/ssh/sshd_config。即使您锁定了 root 帐户,这仍然很有用,以防将来有人启用它。sudo su -即使您设置了它,它仍会起作用,请参见下文,因此没有理由不设置它。

如果您决定不锁定 root 帐户,那么这并不理想,因为任何人都可以登录到 text/X/GNOME 控制台,root这时就会发生不好的事情(控制台保持登录状态或者您意外删除了一堆 OS 文件 [问我怎么知道的],最好锁定帐户。

长时间以 root 身份运行

有时,例如软件安装,需要运行许多命令,root并且不希望每个命令都以 为前缀sudo。在这种情况下,您有两个选择:

  1. 暂时切换到该root帐户:$ sudo su - 该命令将为您提供与以 root 身份登录该帐户相同的命令 shell。
  2. 解锁根帐户:$ sudo passwd root这将允许您设置密码并解锁帐户;然而这不是暂时的并且您必须记住在完成后锁定用户帐户。

相关内容