SSHによるsudoに関するアドバイス

SSHによるsudoに関するアドバイス

ローカルサーバーとSSH実行でスクリプトを実行するには、2つの提案が必要です。

1. sudoerのアップデート方法

サーバーにはパスがあります

/var/log/データ/ステータス/

Parent と Child_dir のすべてのファイルは tomcat ユーザーとグループによって所有されます。

-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221119.status
-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221116.status
-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221112.status

new_userというユーザーが私のスクリプトの一部として/var/log/data/status/の下のファイル名を変更できるようにしたいです。以下のようにsudoersファイルを編集しようとしましたが、tomcatはパスワードのないアプリケーションユーザーであるため、パスワードなしで実行されます。 sudoersを変更する方法がわからない。

 new_user  ALL=NOPASSWD: /bin/bash /path/my_script [a-z_]* 20[0-9]*

私が達成したいのは、パスワードなしで実行することです。

sudo -u new_user /bin/bash /path/my_script

2. SSH経由でスクリプトを実行する

私の他の要件は、SSHを介して別のサーバーで同じスクリプトを実行することです。可能であれば構文を助けてください。

  • サーバーA(マイユーザーiamsageとしてログイン) -

こんなことを実行しなければなりません。

ssh new_user@remote_host "sudo -u new_user /path/my_script arg1 arg2"

ベストアンサー1

配線sudoersが正しくありません。この試み

your_user ALL=(new_user) NOPASSWD: /path/my_script

次に、スクリプトが実行可能で、#!/bin/bash最初の行があることを確認します。

リモート通話提案の大きな問題は、新しいユーザーとしてログインしようとするため、それを使用する必要がないことですsudo。次のいずれかを試しても混在しないでください。

ssh remote_host sudo -u new_user /path/my_script arg1 arg2
ssh new_user@remote_host /path/my_script arg1 arg2

どちらの場合も、リモート実行のためにコマンド全体を引用することは完全に可能ですが、ここではそうではありませんでした。

おすすめ記事