我的供应商给我发了一台安装了 Centos5 的服务器。他们已将机器设置为直接使用 root 帐户登录。
使用 root 帐户登录后,我可以运行如下命令:
服务 httpd 重启
我不喜欢 root 帐户能够直接登录。所以我在 sshd_config 文件中添加了“PermitRootLogin no”。然后我创建了另一个用户并将其放入 sudoer 列表中。
问题出现了。当我用这个新用户登录时,我无法再运行“服务命令”。它会提示找不到命令。即使我“sudo su”,我也无法运行此命令,有人能告诉我该怎么办吗?谢谢。
答案1
您的 $PATH 变量不包含所需的路径,并且使用时sudo su
$PATH 不会受到影响。
但是我建议不要使用sudo su -
,而是使用:
sudo /sbin/service httpd restart
仅以 root 身份运行所需的命令,并且不要打开任何 root shell。
答案2
您几乎已经完成了。下次,只需执行以下操作:
sudo su -
使用“sudo su”运行意味着您使用普通用户的环境设置,而不是特权用户,这意味着服务命令不在您的路径中。
要么这样做,要么这样做:
/etc/init.d/httpd restart
如果您想完全绕过服务命令。
答案3
登录时可以使用命令的完整路径。尝试一下/sbin/service httpd restart
。