【CentOS】sudoできる一般ユーザ用のパスを設定する

スポンサーリンク

$ sudo lokkit
などとした場合に

sudo: lokkit: command not found

のようなエラーがでる場合の対策。

lokkitというのは、ファイアウォールの設定を簡単にするためのコマンドです。が、これはroot用なので一般ユーザのPATHが通っている場所にはないです。rootになってwhichコマンドで調べると

#which lokkit
/usr/sbin/lokkit

と、/usr/sbin以下にあることがわかります。root用のコマンドは大体ですが/sbinと/usr/sbinにあるので、この2つへのパスを通しておけば、sudoするときに上のようなエラーがでることが少なくなるはず。

sudo可能な一般ユーザ(仮にユーザ名:hogehoge)としておきます。
printenvで一般ユーザの環境変数を表示し、grepでPATHを抽出。/sbinへのPATHは当然とおってない

$printenv |grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/hogehoge/bin

ホームディレクトリの.bashrcの末尾に/sbin:/usr/sbinへのPATHを追加。.bashrcはユーザごとに存在し、ログイン時に実行されるファイル。

$vi .bashrc
 ファイルの末尾に($PATH=$PATH:/sbin:/usr/sbin)を追加

追加しただけでは変更が反映されないので、sourceコマンドで変更を反映する。

$source .bashrc

確認。PATHの最後に/sbin:/usr/sbinがあればOK

$printenv |grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/hogehoge/bin:/sbin:/usr/sbin

パスを通しておけば$sudo lokkit とやってもすぐに実行されてちょこっと便利です。