こんにちは。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
は自己責任で設定をしてくださいね。お仕事ください!
僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。 なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。
カテゴリ「AWS」の最新記事
コメント