CentOS 6.5 で sudo コマンドを使ったとき、command not found になりました。その一般ユーザのパスにも、root ユーザのパスにも含まれているコマンドなのに。secure_path という機能で、sudo 時のパスを /etc/sudoers に明示されたパスに限定しているためです。

$ sudo bash -c 'echo $PATH' /sbin:/bin:/usr/sbin:/usr/bin

visudo コマンドで /etc/sudoers の env_keep に PATH を追加して、secure_path を無効にすればユーザのパスが効くようになります。

Defaults env_reset Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS" Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE" Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES" Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE" Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" Defaults env_keep += "PATH" ←追加

#

Adding HOME to env_keep may enable a user to run unrestricted

commands via sudo.

#

Defaults env_keep += “HOME”

#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin ← コメントアウト </code>