找不到“服务”命令,找不到“htpasswd”命令..?

2 centos

这个问题有一些背景知识 - 它不会持续很长时间,但最好我能正确解释一切;

昨晚我去在我的 CentOS / DirectAdmin 设置上设置了一个 SVN 存储库 - 我回到我的笔记并去做一个'htpasswd -cm passwd myuser'。

我以 root 用户身份登录,但出现“未找到命令”?几周前,当我第一次设置 SVN 时,这已经奏效了。

所以我做了一个 whereis htpasswd 并在 /usr/bin/htpasswd 中找到它。我做了一个 which htpasswd 并得到了这个:

/usr/bin/which: 中没有 htpasswd (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/admin/bin)

奇怪的?我从 /usr/bin/htpasswd 做了一个符号链接,现在它可以工作了。后来我去了'service httpd restart',但我遇到了与'service'完全相同的问题。

我的问题:

你认为发生了什么?为什么这些会“消失”?

再次设置“服务”以便只有“root”和“admin”用户可以使用它的最佳方法是什么?它存在于 /sbin/service

nix*_*eek 5

echo $PATH
Run Code Online (Sandbox Code Playgroud)

它应该符合你“这”上面列出什么,并没有包含/ sbin目录这似乎意味着你提升你的权限,但是从你的普通用户保存环境?

您通常如何登录此框?你是在做“su”还是“su -”来提升?

如果您直接以 root 身份登录,那么您需要查看您的 shell 配置。可能这将是 Bash,所以查看 ~/.bash_profile 和 ~/.bashrc 以查看是否定义了 PATH,如果没有定义,则 /etc 中的系统范围默认值将应用于您的会话。

作为快速修复,这应该有效:

export PATH="/usr/local/sbin:/usr/sbin:/sbin:${PATH}"
Run Code Online (Sandbox Code Playgroud)

所做的只是将 /sbin 添加到您的 PATH 环境变量中,并且它在登录会话中不是永久性的。您需要找到 PATH 的定义位置(见上文)以进行修复。