这个问题有一些背景知识 – 它不会持续很长时间,但是如果我正确地解释所有事情,这是最好的;
昨晚我在CentOS / DirectAdmin安装程序中build立了一个SVN仓库 – 我回到我的笔记,去做一个'htpasswd -cm passwd myuser'。
我是作为根login,但我得到'命令未find'? 几个星期前,当我第一次创buildSVN的时候,这已经工作了。
所以我做了一个whereis htpasswd,并在/ usr / bin / htpasswd中find它。 我做了一个htpasswd并得到这个:
(/ usr / kerberos / sbin:/ usr / kerberos / bin:/ usr / bin /其中:/ bin:/ usr / bin:/ home / admin / bin)
奇怪? 我做了一个从/ usr / bin / htpasswd的符号链接,现在它工作。 后来我去“服务httpd重启”,但我有'服务'完全相同的问题。
我的问题:
你觉得发生了什么? 为什么这些“消失”?
再次设置“服务”的最好方法是什么,只有用户的“根”和“pipe理员”才能使用它? 它存在于/ sbin / service
echo $PATH
它应该匹配你在上面列出的“哪个”,不包括/ sbin,这似乎暗示你提升了你的特权,但保持了你的普通用户的环境?
你通常如何login这个盒子? 你正在做“苏”还是“苏 – ”提升?
如果你直接以root身份login,那么你想看看你的shellconfiguration。 可能这将是Bash如此偷看〜/ .bash_profile和〜/ .bashrc来查看是否定义了PATH,如果不是,那么/ etc中系统范围的默认值将应用于您的会话。
作为一个快速解决,这应该工作:
export PATH="/usr/local/sbin:/usr/sbin:/sbin:${PATH}"
所做的只是将/ sbin添加到PATH环境variables中,并且在login会话中不是永久的。 你需要findPATH定义在哪里(见上面)来解决问题。