新管理员用户的 $PATH 与 root 的严重不同

新管理员用户的 $PATH 与 root 的严重不同

我正在管理一台租用的 CentOS 5.6 专用机器,就像root最初的设置一样,但我知道这是非常糟糕的做法,所以我创建了一个名为的用户administrator,将其放入组中administrator wheel sshd并添加

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

通过visudo。 一切正常,只要使用 sudo 或 SSH 即可,但$PATH两者差别太大,导致某些命令像visudo“不存在”(对于administrator),我不知道应该将 编辑administrator成什么样。

$PATH对于root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
$PATH对于administrator/usr/local/bin:/bin:/usr/bin:/home/administrator/bin

在 Debian Squeeze 上提到的是
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
和,
/usr/local/bin:/usr/bin:/bin:/usr/local/games
但后者用户是在安装期间添加的,所以我应该如何administrator在 CentOS 上编辑?

答案1

答案2

为什么不将administrator的路径改为与 的路径相同root呢?

去引用/etc/profile

# 根据我们是 root 还是普通用户来设置 PATH。
# 没有真正的理由将 sbin 路径排除在普通用户之外,
# 但是当它们不在
用户的 PATH 中时,它可以使制表符补全更容易,从而污染可执行命名空间。

答案3

我通常只是将我的常规用户帐户添加到 wheel 组,每当我需要执行 root 任务时,我

答案4

TL;DR:不要使用非 root 用户来执行 root 操作。

“坏习惯”是指不使用 root 帐户。好习惯是以 root 身份进行系统管理,以普通用户身份进行正常使用。这样,您的普通用户就永远不会有足够的权限进行系统管理工作(也许帐户被盗用,或者您不小心编写了失控脚本)。

sudosu两种方式都可以在您需要时授予自己 root 访问权限:执行管理。

你应该不是修改本地用户的路径以包含系统二进制文件。它们位于 root 的路径中是有原因的:只有 root 才能运行它们(除了ifconfig,现在这个问题基本已经解决了)。如果用户administrator真的只是用于管理,请将其删除。当您有一个真正的 root 帐户时,伪造的 root 帐户是没有意义的。

您可能遇到问题,因为默认情况下,您的当前环境保留为su。您应该su以身份运行su -,告诉它以新用户(在本例中为 root)重新初始化您的环境。

对于sudo,您的PATH应该已经正确重置。尝试sudo env | grep PATH;您应该看到/usr/sbin和其所有朋友都已存在。

如果没有,那么你肯定有一些自定义sudoers配置元素:检查env_filesecure_pathenv_keep。另一种可能性是 sudo 并没有像你想象的那样运行:检查你的别名,alias看看命令行上是否因为某些愚蠢的原因指定了 PATH。

相关内容