こんにちは。iQeda [@iQeeeda] です。
普段つかっている Linux コマンドが使えないと焦ることがあります。
たとえばアクセス権が必要なファイルを編集したいとします。
自分でインストールした Emacs を使いたいので
自分でインストールした Emacs を使いたいので
sudo emacs [ファイル名] と入力します。カタカタカタ...ターン!
コマンドが見つかりません (command not found)
...!?
...!?
僕は泣く泣く vi を使いました。
今回はそんな
sudo で使えないコマンドがあった場合、visudo コマンドで secure_path を修正して PATH を通す方法を説明します!sudo で一部コマンドが使えなくなる原因
sudo 実行時はセキュリティ上「環境変数を初期化している」のだそうです。
なので環境変数
PATH なども初期化されてしまい、usr/local/bin にある普段づかいのライブラリが使えなくなってしまいます。sudo 時の PATH を設定する
/etc/sudoers というファイルで sudo 時に使われる PATH が設定がされています。
visudo コマンド
直接 /etc/sudoer を開いてもいいのですが、vidudo というコマンドを使った方が簡単です。
visudo コマンドを実行すると vim で /etc/sudoers を編集する画面に移ります。secure_path
vim で / と入力して secure_path という文字列を検索します。以下の追記を行ってください。
# 末尾に :/usr/local/bin を追加 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
ファイル保存後 visudo -c で記述に誤りがないかチェックしてみましょう。
問題なければ sudo で個人設定のコマンドを実行できるようになります。
secure_path は自己責任で設定しましょう
そもそもなぜ PATH に制限がかかっているかというと、sudo で何でも実行できてしまうと「危険」だからですね。
個人設定のコマンドを使うと予期せぬ影響があるかもしれませんので、
secure_path は自己責任で設定をしてくださいね。
No comments yet