LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2108|回复: 5

sudo为何提示找不到命令?(明明PATH正确的……)

[复制链接]
发表于 2006-12-21 00:35:06 | 显示全部楼层 |阅读模式
安装了Sun的java,将其运行文件的目录加入PATH,并在启动时加载。

在普通用户下执行java正常。

用[su -]切换到root下执行也正常。(至少java -version能够正常执行)

但是使用
sudo java
却无法执行。

错误如下:
$ sudo java -version
sudo: java: command not found

另外,执行
sudo echo $PATH
可以看到java所在的目录也在其中。

这是咋回事儿呢?
发表于 2006-12-21 13:14:43 | 显示全部楼层
应该是 sudo java --version吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-21 17:48:55 | 显示全部楼层
看起来应该不是参数的问题,因为直接执行
sudo java
也不行。错误信息一样。

另外,后来又试了一下,用
su
切换到root后,也有同样的问题。
查看$PATH发现java的目录已经没有了。

不知道su的时候发生了什么……
回复 支持 反对

使用道具 举报

发表于 2006-12-21 17:53:09 | 显示全部楼层
你把PATH加在哪里了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-21 23:13:18 | 显示全部楼层
我把PATH加在/etc/profile和/etc/X11/Xsession.d/下面的一个自定义的文件(/etc/X11/Xsession.d/98xjava)里面了。
因为看了一下/etc/X11/Xsession,它会把/etc/X11/Xsession.d/里面的所有配置文件都运行一次,为了尽量保持系统原有配置文件,就自己加了一个配置文件。在X下面看来好用。
就这两个地方。

具体的做法实际上是建立了一个/etc/java/java.conf文件,然后在上面两个文件里面加入
. /etc/java/java.conf

呵呵……

我也正在查su和sudo的时候都会读取哪些文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-21 23:25:37 | 显示全部楼层
看了一下su的man找到了如下说明。
       Unless the -m or -p options are used, the current environment is passed
       to  the  new  shell  with  alterations.  The value of $PATH is reset to
       /bin:/usr/bin for normal users,  or  /sbin:/bin:/usr/sbin:/usr/bin  for
       the  super  user.  This may be changed with the ENV_PATH and ENV_SUPATH
       definitions in /etc/login.defs.
这样可以解释为什么
su
切换到root后无法找到java了,但是还是搞不懂sudo为什么不行。
因为man sudo里面说
        PATH                   Set to a sane value if sudo was configured with the --with-secure-path option
也就是说如果没有指定--with-secure-path就应该是原有的PATH了。

另外,进行了如下实验
pl@pro:~$ sudo echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/lib/jdk1.6.0/binpl@pro:~$ sudo sh
sh-2.05b# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
sh-2.05b# sudo java
sudo: java: command not found
sh-2.05b#

不过,看样子要弄好是要改动很深层的配置文件了。又不想把java的路径直接写到系统的配置文件里面。还是权且在/usr/local/bin下面做一个symbol link吧。

不过还是很想搞清楚sudo的时候到底是怎么回事。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表