web-dev-qa-db-ja.com

sudoを使用してディレクトリへのアクセスを制限する

/var/secret/にフォルダがあり、ユーザーにSudoコマンドへのアクセスを許可する場合、他のすべての場所へのフルアクセスを許可する方法はありますが、/var/secret/を許可してください。絶対にアクセスできませんか?

1
markzz

これはほとんど(理論的にではありませんが)不可能です。ユーザーが高度に制限されていないSudoアクセスを取得すると、rootアクセスが許可されます。たとえば、Sudo/bin/bashを実行すると、root権限を持つbashシェルが作成され、rootによって配置されたメカニズムをバイパスできるようになります。

これを行う理論的な方法は、このリソースにアクセスできるすべてのコマンドを実行する機能を除いて、ユーザーが必要なことをほぼすべて実行できるようにするSudoルールを作成することです。実際にはほぼ確実に実行できません。

SELinuxまたはApparmourを使用して、ディレクトリにアクセスする機能を制限することもできますが、rootを持っている人はこれを元に戻すことができます。

指定されたリソースを暗号化したままにして、暗号化されたボリュームをマウントすることで、指定されたリソースへのアクセスを妨げる可能性があります。これによってアクセスが妨げられることはないと思いますが、カジュアルなアクセスは妨げられます。 [Fuseを使用してユーザーとしてファイルシステムをリモートでマウントすると、ファイルシステムをマウントしたユーザーのみがアクセスできることに気付きました。もちろん、私はルートなので、そのユーザーにSUで戻ってファイルを表示できます。これを行うには、他の方法があることは間違いありません]また、ユーザーがルートアクセス権を持っているときにリソースがマウントされておらず、キーがメモリに保存されていないので、取得することもできません。

1
davidgo