Rocky Linux(9.1)仮想マシンを構築しましたが、一部のファイルに権限の問題があります。また(リンクされた「類似の質問」を見た後)、これはNFSやリモートマウントではなくローカルマウントであることに注意してください。
ファイルの匿名権限は次のとおりです。
-r--r--r--. 1 engineer myadmin <filesize> <date> filename.jar
SE Linux環境の場合:
unconfined_u:object_r:defailt_t:s0 filename.jar
id
ユーザーが実行できる次の出力を提供します。uid=1001(engineer) gid=1002(myadmin) groups=1002(myadmin),1001(engineer) context=unconfirmed_u:unconfirmed_r_unconfirmed_t:s0
ファイルを読み取ろうとすると、次のような状況が発生します。
cannot open 'filename.jar' for reading: Operation not permitted
ファイル権限、インストールオプション、SE Linux権限、およびユーザーグループを調べました。ユーザーがengineer
ファイルを読むことができることを願っています。
ドライブの取り付けオプションは次のとおりです。
rw,seclabel,relatime
ファイルを読み取るすべての試みはOperation not permitted
。
私は何を見逃していますか?
コメントで要求された追加情報:
結果journalctl -n 100
は次のとおりです。
<timestamp> <hostname> login[<pid>]: pam_unix(login:session): session opened for user engineer(uid=1001) by engineer(uid=0)
<timestamp> <hostname> login[<pid>]: LOGIN ON pts/1 BY engineer
dmesg
ファイルを開く試みに関する情報は提供されません。
SE Linuxはすでに存在しますがpermissive
モードなので、いかなる方法でも制限しないでください。
答え1
selinux
ただし、アクセスをブロックしませんfapolicyd
。具体的にはこれがルールです。deny_audit perm=any all: ftype=application/java-archive
解決策:
systemctl stop fapolicyd
(ファイルアクセスポリシーの適用を無効にする)- 実行
fapolicyd --debug-deny
(アクセスが許可されていないことを示す) - 以前に表示されたファイルを開いてみてください。
Operation not permitted
- どのルールが違反しているかを観察してください。
- マンページを注意深く読み、
fapolicy.rules(5)
グループまたはユーザーがJavaアーカイブ(.jar
ファイル)とJavaアプレット(.class
ファイル)を開くことを可能にする新しいルールファイルを作成します。 fagenrules --load
新しく作成したルールをインストールするには、実行してください。- 停止して再起動してください。
fapolicy --debug-deny
- 上記と同じファイルを開いて実際に開いてみてください。 (ロギングルールなし)
- 問題を解決する方法を知っていることを示すために、応援するか拳を打ちます。 (このステップはオプションです。)
fapolicyd
コマンドを使用して再起動systemctl enable --now fapolicyd