su rootを実行してスクリプトに資格情報を入力するにはどうすればよいですか?

su rootを実行してスクリプトに資格情報を入力するにはどうすればよいですか?

rootユーザーが実行する必要があるスクリプトがあります。suスクリプト内でこれを使用してスクリプトを実行する方法を知りたいです。 - CentOS7を実行しています。

私が試したコマンド(下)が失敗しました。

su root credentials=/home/root/root.cred

その後、残りのスクリプトを続行します。残念ながら動作しません。 rootに変更すると、rootがrootパスワードを要求するため、.credファイルが含まれていました。su rootスクリプト内で実行してrootに変更する方法はありますか?

どんなアイデアがありますか?


混乱しているかもしれませんが、もっと詳しく説明したいと思います。

一般(Sudoerではない)ユーザーが実行できるスクリプトがありますが、コマンドはsudoコマンドであるため、sudoerでのみ実行できます。ルートはsudoerなので、通常のユーザーがスクリプトを実行すると、スクリプト内でルートとして実行されます。スクリプトを起動すると、su rootパスワードが必要なため進行しません。コマンドを渡しsu、スクリプト自体を使用して残りのスクリプトを実行するためのルートパスワードを入力する方法はありますか?たぶんそれともecho何ですか? - わかりません。だからこんな質問をすることになりました。

ご不明な点は下記までお問い合わせください:)

ベストアンサー1

/etc/sudoersパスワードを使用せずにrootとしてスクリプトを実行するには、ファイルにエントリを追加する必要があります。

username ALL = (root) NOPASSWD: /your/script's/absolute/address

username自分のユーザー名に変更する必要があります。

ただし、権限のない(つまり、Sudoerではない)ユーザーがスクリプトを改ざんすると、パスワードなしでroot権限で必要なすべてのプログラムを実行できるため、セキュリティ対策は危険です。ファイルを読みます。 - root以外のユーザーのみ:

sudo chmod 755 your_script

これにより、sudoer以外のユーザーにスクリプトを読み取り、実行(書き込みではない)する権限を付与します。

また、将来の反転を防ぐには、次の手順を実行してください。

sudo chown root your_script

これにより、ファイルの所有権のみがルートに付与されます。

おすすめ記事