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"