シェルスクリプトの Sudo の実行は、直接ユーザーの実行とは異なる動作をします。

シェルスクリプトの Sudo の実行は、直接ユーザーの実行とは異なる動作をします。

runDaemon.ksh私のクライアントには、userとして実行する必要があるスクリプトがありますapp-admin。このスクリプトはポート 3001 の IP へのソケット接続を作成します。

このスクリプトを自動化しますが、他のユーザーを使用するように求められましたautomation。彼らは私のユーザーにsudo権限を与えますrunDaemon.kshapp-admin/etc/sudoers

automationこのコマンドを使用してスクリプトを実行しようとすると、sudo -u app-admin ./runDaemon.kshデーモンは起動されますが、ポート3001の宛先IPへのソケット接続は作成されません。変ですね。クライアントが直接ログインしてスクリプトを実行すると、正常に実行されます。

sudo付与されたユーザーが実際のユーザーと同じように振る舞うようにするにはどうすればよいですか?

答え1

-isudoのパラメータを使用すると、実際のユーザーが実行するのと同じ動作でスクリプトを実行できます。

sudo -i -u app-admin ./runDaemon.ksh

関連情報