ルートパスワードの回避


0

私はこの変更を行いました:

vim /etc/sudoers
# User privilege specification
root    ALL=(ALL) NOPASSWD: ALL

私が使用する場合:

sudo service cassandra start 

パスワードなしで機能します。しかし、私が使用するとき:

script shell
ssh -t root@$machine -x "sshpass -p 'ubuntu' ssh -t ubuntu@$address -o   StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'sudo service cassandra start'"

パスワードを入力する必要があります!

sshで動作しなかった理由をご理解ください。

助けてくれてありがとう。宜しくお願いします。


トピックはそれほど明確ではないと思いますが、編集できますか?
フランシスコタピア

ヒント:/etc/sudoersvimを使用して直接編集しないでください。間違えた場合、あなたsudoは壊れているかもしれません。visudoコマンドを使用することをお勧めします。/etc/sudoersファイルも編集しますが、プログラムを終了する前に追加の構文チェックを実行します(を参照
-Slizzered

回答:


0

/ etc / sudoersの「root」は、コマンドを実行するユーザーのIDである必要があります。...あなたの例では、これは「ubuntu」だと思います。

あなたの例はこれを行います:

  1. rootとして$ machineにログインします(rootとしてログオンできるようにそのマシンを設定したと仮定します。そうでない場合は、sshを介したrootログインを許可するようにpam.d設定を調整する必要があります。これはsudoとは関係ありません)。
  2. root @#machineとして、コマンドはubuntu @ addressにsshし、コマンド「sudo service cassandra start」を実行します。

あなたの例では、サービスコマンドを実行できるようにするために、rootではなくubuntuのsudoを有効にする必要があるように見えます。

例:

# User privilege specification
ubuntu    ALL=(root) NOPASSWD: /usr/bin/service cassandra *

編集:あなたが達成しようとしていることに関して私は本当に混乱しています。単に別のサーバーにsshして、そのサービスコマンドを実行しようとしている場合、必要なのはシェルスクリプト内のこれだけです。

コマンドは次のようになります。

sshpass -p 'ubuntu' ssh -t ubuntu@$address -o   StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'sudo service cassandra start'

また、「ubuntu」がそのコマンドを実行できるようにするには、上記の/ etc / sudoersに編集内容を追加する必要があります。


ubuntu ALL =(root)NOPASSWD:/ usr / bin / service cassandra *を/ etc / sudoersに追加しましたが、パスワードを入力する必要があることに言及しています。ubuntu @ $ addressはlxcコンテナです、それは問題ですか?
研究者

ここでlxcは異なるレベルのセキュリティをもたらしますが、それはあなたの問題ではないと思います。ssh呼び出しに-vフラグを追加して、ヒットしているものについてさらに理解することができます。詳細が表示される場合があります。また、/ var / log / auth.logをチェックして、そこに表示されているエラーを確認する必要があります。これらのログデータは両方とも、認証の失敗をさらにデバッグするのに役立ちます。さらに、認証が段階的に機能することを確認する必要があります。最初にパスワードを使用して$ addressに接続してから、sudoが直接機能することを確認してください。存在する場合は、sshpassを使用せずに単純なssh呼び出しを試してください。など
ロブカリストリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.