コメントを正しく理解している場合、ここでの問題は、sudoがデフォルトで要求するパスワードを入力する機能を持たない接続を介してコマンドが発行されることです。また、多くのOSディストリビューションでは、sudoはデフォルトでTTYを要求するようになっています-このプログラムにはない場合があります。
ただし、sudoは非常にきめ細かいアクセス許可構造を持つことができるため、1人以上のユーザーがパスワードとTTYなしで特定のコマンドを発行できるようになります。以下に、ニーズに合わせてこれを設定する3つの方法を示します。どちらを選択しても、ユーザーはsudo rndc reload
パスワードを入力しなくてもコマンドを発行できます。
(また、これは不要かもしれないが、... してください、あなたはバックアップに戻す場合にいるルートのオープンを必要とするシェルを保つために、それを編集する前に、あなたのsudoersファイルのバックアップコピーを作成することを忘れないでください、と編集にそれ使用してvisudo
の代わりにsudo vi /etc/sudoers
、より良いそれらを持っているし、逆よりも、それらを必要としないために...うまくいけば、これらの注意事項は不要となります。しかし!)
1.リクエストにTTYを必要としない場合
TTY要件(存在する場合)を取り除く最も簡単な方法は、Defaults
inで始まる行に/etc/sudoers
単語が含まれていないことを確認することです。requiretty
代わりにを含める必要があります!requiretty
。ただし、これを行うと、 sudoコマンドにはttyが不要になります!
また、行を追加する必要があります
rndcuser ALL = (root) NOPASSWD: /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
2.これ以外のすべてのユーザーにTTYを要求する場合
これは、次のように、この1人のユーザーにデフォルトを設定することで実行できます。
Defaults:rndcuser !requiretty
rndcuser ALL = (root) NOPASSWD: /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
3.この1人のユーザーがこの1つのコマンドを除くすべてのコマンドにTTYを要求する場合
sudoersファイルの構文のため、これはもう少し複雑です。次のように、コマンドのコマンドエイリアスを作成し、そのコマンドエイリアスのデフォルトを設定する必要があります。
Cmnd_Alias RNDC_CMD = /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
Defaults!RNDC_CMD !requiretty
rndcuser ALL = (root) NOPASSWD: RNDC_CMD
sudo
は、ほとんどの目的です。彼sudo
がこれに使用することに対するあなたのビジネス上の異議は何ですか?