私の Linux システムには、A と B という 2 人のユーザーがいます。B が A のホーム ディレクトリにアクセスできないように、B を分離する必要があります。A 自身によってもアクセスできないようにする必要があります。この問題を解決するにはどうすればよいでしょうか。
答え1
A のホーム ディレクトリを、B の x (実行) ビットが設定されていないディレクトリに配置します。
例:/home/prison/A
を A のホーム ディレクトリとします。 の権限をprison
に 設定しr-xr-x---
、所有者:グループを に設定しますroot:prisoners
。 の権限を/home/prison/A
通常どおりに設定します (つまり、 がA
所有者になります)。
当然、A は自分のファイルを他のディレクトリにハードリンクし、このようにしてアクセスできるようにすることができます。読み取りアクセス権を持ち、データを複製しようとするユーザーからデータを保護する方法は実際には存在しません。
答え2
ティトンの答えこれを解決する良い方法です。
もう 1 つの (より重く複雑な) 修正方法は、SELinux または AppArmour を使用している場合に適切なポリシーを作成することです。これをシステム レベルで強制することができ、A はファイルシステム レベル (AppArmour を使用) で、またはファイルをコピーすることによっても (SELinux を使用)、これをバイパスできなくなります。
このようなポリシーの実装は読者の課題として残しておきます。
答え3
これはchrootの仕事のように思えますが、誰かがchrootというプロジェクトを持っています。ジェイルキットまさにその通りの効果があるようです。結果は人によって異なるかもしれません。
答え4
ユーザーのホームディレクトリ内のファイルに他の誰もアクセスする必要がない場合は、ホームディレクトリを実行可能/読み取り可能/書き込み可能にすることができます。のみそのユーザーによって。
sudo chmod 700 /home/username
他のユーザーはこのディレクトリ内を見たり、このディレクトリに cd したりすることはできません。