起動するたびに、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ルールに問題がありますか?