audit2whyを実行すると、SCPを介してファイルをフォルダー/ foo/barにアップロードしようとしたときに失敗する理由がわかります。 フォルダ/ foo/barへのアクセスが拒否されたリモートサーバーの場合、次のテキストが表示されます。
Was caused by:
Unknown - would be allowed by active policy
Possible mismatch between this policy and the one
under which the audit message was generated.
Possible mismatch between current in-memory
boolean settings vs. permanent ones.
これは間違いなくSELinuxが原因であることがわかります。
setenforce 0
SCP経由で/ foo/barにファイルをアップロードできます。また、SELinuxを有効にしてcdフォルダ/ foo/barにSSHで接続し、ファイルを作成できることにも注意してください。このフォルダ。
SELinux内で正確な問題を引き起こしている原因を確認するには、どのようにデバッグすればよいですか?
[〜#〜]編集[〜#〜]
これは/ foo/barのls -lZ
の出力です
drwxrwx--T. root foo-users user_u:object_r:default_t:s0 bar
audit2allow
からのAVC拒否の出力
type=AVC msg=audit(1519304988.434:6984): avc: denied { write } for pid=26506 comm="scp" name="event-20180203.log.gz" dev="dm-4" ino=7260 scontext=user_u:user_r:user_t:s0 tcontext=user_u:object_r:default_t:s0 tclass=file
Was caused by:
Unknown - would be allowed by active policy
Possible mismatch between this policy and the one under which the audit message was generated.
aVCの発言:
$ echo "type=AVC msg=audit(1519304988.434:6984): avc: denied { write } for pid=26506 comm="scp" name="event-20180203.log.gz" dev="dm-4" ino=7260 scontext=user_u:user_r:user_t:s0 tcontext=user_u:object_r:default_t:s0 tclass=file" |audit2allow
#============= user_t ==============
#!!!! WARNING: 'default_t' is a base type.
allow user_t default_t:file write;
==> user_t SElinuxコンテキストタイプで実行されているプロセスが、default_tタイプのディレクトリに書き込もうとしています。
これを修正する代替策は次のいずれかです。
user_tが書き込みを許可するように、宛先ディレクトリのラベルを変更します。
$ sesearch -s user_t --allow | grep "file。* write"
ファイルの書き込み操作で許可されているターゲットコンテキストが表示されます。たとえば、foo/barは、許可リストにあるssh_home_tに再ラベル付けされる場合があります。
$ Sudo chcon -R -t ssh_home_t/foo/bar
または可能な場合は、宛先ディレクトリーを許可されたディレクトリーに変更してください。
または、audit2allowを使用して新しいルールを作成し、コントロールをバイパスしますが、これにより権限が開かれ、SELinuxの目的が損なわれるため、これが最後の選択肢になります。 '参照 http://selinuxproject.org/page/Audit2allowRecipe )
Unknown - would be allowed by active policy
Possible mismatch between this policy and the one
under which the audit message was generated.
修正ポリシーを適用した後、同じメッセージが表示されました。新しいポリシーで許可されているため、以前に監査されたすべてのavcを説明できませんでした。
新しいイベントが引き続き発生するかどうかを確認します。