我正在管理一台租用的 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 身份进行系统管理,以普通用户身份进行正常使用。这样,您的普通用户就永远不会有足够的权限进行系统管理工作(也许帐户被盗用,或者您不小心编写了失控脚本)。
sudo
这su
两种方式都可以在您需要时授予自己 root 访问权限:执行管理。
你应该不是修改本地用户的路径以包含系统二进制文件。它们位于 root 的路径中是有原因的:只有 root 才能运行它们(除了ifconfig
,现在这个问题基本已经解决了)。如果用户administrator
真的只是用于管理,请将其删除。当您有一个真正的 root 帐户时,伪造的 root 帐户是没有意义的。
您可能遇到问题,因为默认情况下,您的当前环境保留为su
。您应该su
以身份运行su -
,告诉它以新用户(在本例中为 root)重新初始化您的环境。
对于sudo
,您的PATH
应该已经正确重置。尝试sudo env | grep PATH
;您应该看到/usr/sbin
和其所有朋友都已存在。
如果没有,那么你肯定有一些自定义sudoers
配置元素:检查env_file
、secure_path
或env_keep
。另一种可能性是 sudo 并没有像你想象的那样运行:检查你的别名,alias
看看命令行上是否因为某些愚蠢的原因指定了 PATH。