以下を実行するスクリプトが必要です。
- ecryptfsを使用して暗号化されたディレクトリをマウントする
bash
そのシェルによって開始されたシェルとそのシェルから継承されたすべてのプロセスのみがディレクトリにアクセスできるように権限を設定します。
必要に応じて、sudoでスクリプトを実行してインストールと設定を実行する権限を取得できます。
暗号化されたディレクトリに格納されているデータを処理するために使用する信頼できるプログラムがあると思います。システムの他のプログラムからデータを保護したい。
しかし、私は信頼できるプログラムが私のホームフォルダに正常にアクセスし、暗号化されたディレクトリの外に作成されたファイルをすべてのアプリケーションで使用できるようにしたいと思います。したがって、他のユーザーとしてプログラムを実行することは役に立たないようです。
これまでSELinuxとcgroupを見てきました。これらのcgroupは自動的に権限を継承するので、私が望むものに近いようです。私は「信頼できる」と「信頼できない」という2つのcgroupを設定できると思いました。ここで、「信頼できない」がすべてのタスクを含むデフォルト値になります。しかし、cgroupを使用してファイルへのアクセスを制限する方法に関する情報はほとんど見つかりませんでした。
だから、一連のプロセスへのecryptfsアクセスを制限する方法?
答え1
フォローする関連質問、このツールを見つけました共有をキャンセル以前は知りませんでしたが、私が望んでいました。
次のスクリプトは私が思いついたものです。
mount_privately.sh:
#!/bin/bash
sudo unshare -m /bin/bash -c "mount -t ecryptfs $1 $2; su $USER; umount $2"
使用例:
user@localhost:~$ ./mount_privately.sh backing_dir secure_dir
Passphrase: ...
user@localhost:~$ # secure_dir is now a
これを達成する必要はありませんが、root
私にとっては十分です。