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
これにより、ファイルの所有権のみがルートに付与されます。