你是不是以其他非root用户远程登录,然后用su切换到root?
如果是:请exit到非root用户: #cd #vi .bash_profile 把这一行修改成: PATH=$PATH:/bin:/usr/sbin 你的问题,有可能是以普通用户登陆主机,而此用户的环境里面没有定义系统命令所在的一些路径,比如/usr/bin,/usr/sbin等(就象WINDOWS里面的PATH一样),或者在一些情况下TELNET上主机后也会遗失环境变量,这时候你可以做的是: 1。确定需要此用户执行系统命令,那么可以把系统路径加到该用户的.bash_profile/.cshrc_profile的PATH里面。 2。还是用ROOT用户执行命令,那么用命令su - 可以取得ROOT用户的权限和环境。(注意,是su -而不是su。因为su是只取得ROOT的权限,su - 是取得ROOT的权限后还执行ROOT的PROFILE来取得ROOT的环境变量) 核心是,先由非root用户su 到root 但是没有正确的继承root的环境变量哈!~ 直接由root登陆就不会出现这个问题了。 解决方法是 你是不是从普通用户su到root的,如果这样的话,由于PATH变量的缘故,bash可能找不到useradd命令,你可以以直接以root登录,然后执行useradd,或用useradd的绝对路径/usr/sbin/useradd 也可以用whereis 来搜索这个软件包安装在什么地方 |
|