
こんにちは。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」の最新記事

【EC2・RDS】WordPressのデータベース接続確立エラー
【自動化】Google Analyticsの集計→Slack通知
Amazon Linux2でLet’s Encryptを使う方法
リバースプロキシしているApacheにHTTPS接続できないとき
【AWS】Route53とは?EC2のIPにドメイン設定する方法
TerraformによるLinodeインスタンス新規作成サンプル
【Fingerprint】CircleCIがSSHできない問題解決
【Laravel】セッションタイムアウト後のログイン処理で前回URLに遷移するバグ修正
M1 Mac(2021)でanyenv/phpenvの初期設定!
コメント