我正在pipe理一个租用的CentOS 5.6专用机器,像初始设置一样,但是我知道这是非常糟糕的做法,所以我创build了一个名为administrator的用户,放入组administrator wheel sshd并添加
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL
通过visudo 。 一切工作尽可能sudoing或SSHing,但$PATH差异太大,导致visudo “不存在”( administrator ),我不知道什么样的我应该编辑administrator进入一些命令。
root $PATH : /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
administrator $PATH : /usr/local/bin:/bin:/usr/bin:/home/administrator/bin
在Debian挤压提到的是
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
和
/usr/local/bin:/usr/bin:/bin:/usr/local/games
但后者用户是在安装过程中添加的,那么我应该如何在CentOS上编辑administrator ?
“如何成为根”
TL; DR:不要将非root用户用于根目录。
“不好的做法”不是使用root帐户。 最好的做法是以root用户身份进行系统pipe理,并以普通用户身份进行正常使用。 这样,您的普通用户从来没有足够的权利来执行系统pipe理工作(也许帐户被盗用,或者您不小心编写了失控脚本)。
sudo和su都是在你需要的时候给你root权限的方法:执行pipe理。
您不应该修改您的本地用户的path包含系统二进制文件。 他们在根path上有一个原因:只有root用户应该运行它们(除了ifconfig ,现在大部分都是固定的)。 如果administrator用户确实只是为了pipe理而删除它。 假的根帐户是没有意义的,当你有一个真正的。
你可能有问题,因为默认情况下,你的当前环境是保持与su 。 你应该su运行su su - ,告诉它作为新用户重新初始化你的环境(在这种情况下是root)。
对于sudo ,您的PATH应该已经被正确重置。 试试sudo env | grep PATH sudo env | grep PATH ; 你应该看到/usr/sbin及其所有的朋友已经在那里。
如果你没有,你必须有一些自定义的sudoersconfiguration元素:检查env_file , secure_path ,或env_keep 。 另一种可能是sudo没有像你想象的那样运行:检查你的别名alias以查看是否在命令行中指定了PATH以解决某些脑死亡原因。
我通常只是添加我的常规用户帐户轮组,每当我需要执行根任务,我su –
你为什么不把administrator的path改成和root一样的path呢?
引用/etc/profile
#根据我们是root用户还是普通用户来设置PATH。
#从正常用户中排除sbinpath没有任何真正的理由,
#但它可以使制表符更容易,当他们不在
#用户的PATH污染可执行的命名空间。