他のユーザーに属するホームフォルダには、いくつかのプロジェクトを含むLinux開発サーバーがあります。サーバーの性質により、一部のユーザーはsudo -sを実行して特定の管理タスクを実行できます。ユーザーが他のホームフォルダ(または特定のフォルダ)をスヌーピングするのを防ぐ方法はありますか?
答え1
ユーザーがコマンドを実行している場合はsudo
rootなので、rootとして実行します。したがって、sudoを使用できるユーザーがディレクトリに変更するのを防ぐことはできません。
ユーザーがディレクトリ内のファイルにアクセスできないようにするには、そのコンピュータにrootアクセスを許可することはできません。
答え2
誰かがrootで任意のコマンドを実行できる場合は、任意のユーザーアカウントに切り替えることができ、ユーザーができることをすべて実行できます。
実際には3つのオプションがあります。
- 権限を持つユーザーは、非常に特定の操作を実行するだけです。次に、sudoだけを使用していくつかの特定のコマンドを実行させます。これは、これらのコマンドが「シェルエスケープ」を許可しない場合にのみ安全です。つまり、他のプログラムの実行には使用できません。たとえば、パッケージ管理(allow
sudo apt-get install …
)では、パッケージ内にコマンドを挿入してシェルエスケープを許可することがよくあります(既知のソースでパッケージ署名を正しく確認した場合は問題ありません)。 - 特権ユーザーには管理権限が必要ですが、「実際の」コンピュータでそれを使用する必要はありません。一部コンピュータ(ネットワーク設定を使用)次に、特権ユーザー用の仮想環境(たとえば、仮想マシン、lxcコンテナ、または一時Linuxネームスペース)を作成し、仮想環境で他のユーザーのデータを提供しないでください。
- 技術的制御ではなく、社会的制御を使用します。ユーザーに広範な権限を付与しますが、プライバシー侵害がある場合は厳しく処理されることをお知らせください。ユーザーが従業員の場合、通常は大丈夫ですが、データの機密性によって異なります。
答え3
実行する必要があるタスクに応じて、sudoersファイルに次の行を入力して、特定のコマンドにのみsudoアクセス権を付与できます。
%devgroup ALL=(ALL): /bin/commandname
これにより、devgroupグループのメンバーはrootとしてのみ/bin/commandnameを実行できます(もちろん、この特定の例では、そのメンバーをホイールグループから削除しようとしています)。