sudoを使用してコマンドを実行するためのエイリアス

sudoを使用してコマンドを実行するためのエイリアス

より多くの権限が必要なので、特定のアプリケーションを常にrootとして実行します。私は通常sudoだけを使います。次のようなエイリアスを作成したいと思います。 alias myCmd='sudo nohup /path/to/binary > /dev/null 2>&1 &'

問題は、sudoにパスワードの入力を求められますが、実際に何も起こらない場合に発生します。どうすればいいですか?

ベストアンサー1

エイリアスの代わりにシェルスクリプトを使用してください。

~/.bashrcから:

export PATH="$PATH":~/bin

スクリプトは ~/bin/run にあります。

#!/bin/bash
sudo nohup /path/to/binary > /dev/null 2>&1 &

次に実行するには、次のようにします。

$ runthat

または、PATHステップをスキップした場合は、次のように実行します。

$ ~/bin/runthat

これがあなたのスクリプトではなくシステム全体(すべてのユーザー)スクリプトである場合は、/usr/local/binに入れてください。

あるいは、関数を使用することもできます。例えば。 ~/.bashrcから:

runthat() {
    sudo nohup /path/to/binary > /dev/null 2>&1 &
}

また、質問への直接的な答えではなく参照用に、別のオプションはこれをsudoersファイルに入れることです。

sudo visudo
    (your editor pops up here)
    username ALL=NOPASSWD: /path/to/binary

今パスワードはまったく尋ねません。 (これは安全性が低いことを意味します。おそらく、いくつかのセキュリティホールがあるため、マルウェアはこのアプリを実行する可能性があります...したがって、この小さなリスクを負う必要があります。

おすすめ記事