GNU/Linux >> Linux の 問題 >  >> Linux

sudo コマンドのパスを設定する方法

これは通常 secure_path によって設定されます /etc/sudoers のオプション . man sudoers から :

 secure_path   Path used for every command run from sudo.  If you don't
               trust the people running sudo to have a sane PATH environ‐
               ment variable you may want to use this.  Another use is if
               you want to have the “root path” be separate from the “user
               path”.  Users in the group specified by the exempt_group
               option are not affected by secure_path.  This option is not
               set by default.

デフォルトの $PATH にないコマンドを実行するには 、どちらでも構いません

<オール>
  • フルパスを使用してください:sudo ~/bin/my-command;または

  • コマンドを含むディレクトリを secure_path に追加します . sudo visudo を実行 安全なパスの行を編集します:

    Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/youruser/bin/"
    

    ファイルを保存し、次に sudo を実行するとき 、ディレクトリ ~/bin $PATH になります .


  • これは私が回避策として使用したものです:

    sudo cp $(which my-command) /usr/bin
    ...
    

    which コマンドは非ルートのサブシェルで実行されるため、 my-command を見つけることができます 、次に、sudo は実行可能ファイルをパス root にコピーします。 ユーザーがアクセスできます。セキュリティ上は良くありませんが、コマンドの実行直後に破棄されていた Docker イメージを実行しても問題ありませんでした。


    Linux
    1. ApacheでvHostを設定する方法

    2. Python スクリプトで、PYTHONPATH を設定するにはどうすればよいですか?

    3. 長いパスのエイリアスを作成するには?

    1. `sudo`に$pathを保持させる方法は?

    2. Git コマンドのオートコンプリートを設定するにはどうすればよいですか?

    3. Debian ですべてのユーザーの PATH を設定するにはどうすればよいですか?

    1. UbuntuでJAVA_HOMEパスを設定するには?

    2. 新しい irssi 接続にデフォルトのニックネームを設定するにはどうすればよいですか?

    3. システムユーザーの umask を設定するには?