root権限でファイルを読み取り、他のユーザーまたはグループと一緒に保存

root権限でファイルを読み取り、他のユーザーまたはグループと一緒に保存

root権限を必要とするファイルを読み込み、他のユーザーやグループと一緒に別の場所に保存する必要があります。たとえば、root が必要な dmesg を読み取り、ユーザー/グループ権限 770: test /test を使用して別の場所に保存します。ここで問題は、rootとして保存できないことです。これが SElinux ポリシーであり、エラーが発生します。そのため、ファイルを保存するときにプロセス権限を変更する必要があります。

どんな提案がありますか?

ベストアンサー1

スクリプトはrootとして実行されています。したがって、sudoユーザーとして実行するのを妨げることはありません。ルートとしてファイルに書き込むことはできませんが、別のユーザーとしてファイルに書き込むことができる場合は、次のオプションを使用できます。

target=/path/to/target/file
dmesg | sudo -u test tee "$target" >/dev/null
chmod 770 "$target"

su代わりに使用したい場合は、sudoこのバリアントを使用できます。

target=/path/to/target/file
dmesg | su test -c "tee '$target' >/dev/null'
chmod 770 "$target"

おすすめ記事