プログラムがHOMEディレクトリに書き込まないようにするには、SMACKを使用してください。

プログラムがHOMEディレクトリに書き込まないようにするには、SMACKを使用してください。

起動するたびに、HOMEディレクトリに空のフォルダを作成するバイナリプログラムがあります。気にしないで使いたいスマーカーこれを防ぐメカニズムです。私の考えは、タグを使用してHOMEディレクトリを表示しHOME、タグを使用してプログラムプロセスを表示NoWriteHomeしてから3つのSMACKルールを作成することです。

$ sudo setfattr -n security.SMACK64     -v 'HOME'        "/home/${USER}"
$ sudo setfattr -n security.SMACK64EXEC -v 'NoWriteHome' "${PATH_TO_EXECUTABLE}"
$ cat <<'EOF' | sudo tee /sys/fs/smackfs/load2
> _           HOME    rwxat
> NoWriteHome _       rwxat
> NoWriteHome HOME    r-x--
> EOF

実験をしたが、/usr/bin/bash結果は予想通りだった。

$ cd
$ touch a
touch: cannot touch 'a': Permission denied

ただし、動的ライブラリを読み込んだときにプログラムが起動しませんでした。

$ (
> export QT_PLUGIN_PATH="/opt/Wolfram/WolframEngine/14.0/SystemFiles/Libraries/Linux-x86-64/Qt/plugins/"
> export LD_LIBRARY_PATH="/opt/Wolfram/WolframEngine/14.0/SystemFiles/Libraries/Linux-x86-64:/opt/Wolfram/WolframEngine/14.0/SystemFiles/Libraries/Linux-x86-64/Qt/lib"
> export PATH="/opt/Wolfram/WolframEngine/14.0/Executables:${PATH}"
> export ESPEAK_DATA="/opt/Wolfram/WolframEngine/14.0/SystemFiles/FrontEnd/SystemResources/X/espeak-data"
> /opt/Wolfram/WolframEngine/14.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/WolframPlayer -topDirectory /opt/Wolfram/WolframEngine/14.0
> )
/opt/Wolfram/WolframEngine/14.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/WolframPlayer: error while loading shared libraries: libML64i4.so: cannot open shared object file: No such file or directory

ライブラリファイルへのアクセスが拒否される理由を知っている人はいますか?私のSMACKルールに問題がありますか?

関連情報