web-dev-qa-db-ja.com

パスワードなしでカスタムSudoコマンドを作成する

ルート権限でコマンドを実行するためのスクリプトを実装したいのですが、パスワードを入力する必要はありません。ターミナルでは、次のように表示したいと思います。

./newsudo "comand with root privileges" 

実行する方法は、「root権限を持つコマンド」をスクリプト内の引数として使用し、execまたは類似のものを使用して実行することだと思います。

真実は、私はこのすべての分野で非常に初心者であり、どこから始めればいいのかわかりません。

ありがとう!!

4
Binkpang34

パスワードなしで任意の(サブ)コマンドをSudoとして実行する汎用コマンドを作成します。出来ますか?

理論的には、あなたが尋ねることは可能です。 sudoersファイル内のアプリケーションを引数付きで実行するように設定することが可能であるため、canを呼び出すコマンド(スクリプト)を作成し、問題のコマンドでSudoで実行します引数として。

私たちはそれをすべきですか?

NEVER。これは管理者であるという原則を破るからです。悪意のあるプロセスは、コードを実行してシステムを破壊する可能性があります。

一番下の行は、私もそれを行う方法を投稿しないことです。


パスワードなしでソフトウェアを実行する際の注意事項

@Groundzeroで述べたように、specificアプリケーションまたはスクリプトをsudoersファイルに追加して、 here のようにパスワードなしで実行できます。ただし、次のことに注意してください。

  • Sudoersファイルにアプリケーションを追加しないでください。sudoersファイルは、システムに損害を与えたり、一般的に有害なことをしたりするために使用できます。特に、アプリケーションに豊富なオプションがある場合。
  • 管理者権限なしで編集できる場所に、Sudo(パスワードなし)で実行するスクリプトを保存しないでください。誰(または任意のプロセス)による簡単な編集でも、何でもできます。
14
Jacob Vlijm

コマンドの前にNOPASSWD:を指定して、目的のユーザー/グループに問題のコマンドを許可するSudoルールを作成します。新しいスクリプトは必要ありません。パスワードを必要とせずにadminsグループの全員にrootとして何かを実行する権限を付与するには、次のようにします。

%admins ALL = NOPASSWD: ALL

一般的に、余分な危険なコマンドでパスワードを要求するのは良い考えですが、セキュリティポリシーはあなたのものです。これがどのように安全でないかについてのいくつかの(現在は削除された)議論があり、私は同意します:それはis危険です。 「このユーザーは、時々IDを再検証せずにルートとして何でも実行できる」と言うのは、ほとんど常に悪い考えです。

ただし、セキュリティ専用のフォーラムは他にもあります。正当な目標がパスワードなしでrootとして任意のコマンドを実行することである場合、上記の方法が最も安全な方法です。これを実装する人は誰でも、「このユーザーの特権でコマンドを実行できる人は実質的にrootである」などのリスクを認識する必要があることに注意してください。ブラウザにセキュリティホールがある場合は、ダウンロードされたスクリプトや悪意のあるWebページなども含まれます。 「非特権ユーザー」と「ルート」の分離は、このようなルールが導入されたため、ほとんどなくなりました。バイヤーは注意してください。 :)

3
dannysauer