Linux上のサブディレクトリへのアクセスを制限する


0

ディレクトリをその親ディレクトリだけにアクセス可能にする方法を探しています。つまり、2つのディレクトリがあるとします。 A そして Bファイル階層の同じレベルにあります。今ディレクトリがあるとします。 A' これはのサブディレクトリです。 A。それを強制したい A の内容にアクセスすることができます A' しかし B そうではありません。

私の問題は、私がライブラリを使いたいということです(ディレクトリ A 他のライブラリ(ディレクトリ)のレガシーバージョンの上に構築されます) A' )同時に、私はこのレガシーライブラリの最新バージョンを使用できるようにしたい(ディレクトリ B )私は人々がどういうわけか図書館を使っていないことを確かめたいです A 新しいライブラリに対するリンク B そのライブラリを強制することによって A ライブラリを使用する必要があります A'。

私はただリンクできた A 図書館に対して Bしかし、それから私は互換性を危険にさらしています。

linux 

3
ディレクトリにアクセスするディレクトリについて話すとき、あなたはどういう意味ですか?ユーザー(そのプロセス)は他のディレクトリではなくディレクトリにアクセスします。

私の編集は明確になりますか?

あなたは間違いを犯しています Raymond Chen氏は説明します :あなたの問題はライブラリの2つのバージョンを1台のコンピュータに保存しようとしていて、その解決策はディレクトリへのアクセスを制限することと関係があると仮定しました。本当の質問(「プログラムAにlib-1.0を使用させるには、他のすべてのものにlib-2.0を使用させるにはどうすればよいですか?」)を尋ねると、もっと良い答えが得られます。
— Stephen Jennings

これは移行されてはいけません。
— Dennis Williamson

回答:


0

グループ権限を使用する

あなたは、グループ 'foo'と別のグループ 'bar'があるとします。 それから

   /
   |
   +-A
   | |
   | +- A'
   |
   +-B
  • chgrp -R bar B サブディレクトリBのグループ権限を設定します。
  • chgrp -R foo A サブディレクトリAのグループ権限を設定します。

また、特定のユーザーをグループ 'foo'のメンバーにして、Aとその下にあるその子サブディレクトリにアクセスできるようにします。これで、グループ「bar」に属するユーザーは、Aとその関連サブディレクトリにもアクセスできなくなります。


ユーザーにアクセス制限をかけたくない。このディレクトリへのアクセス権を持つユーザーのサブセットを制限するために使用されているグループが既にあります。 A そして B。問題と目標をさらに明確にするために、回答を編集します。

0

あなたが求めていることは意味がありません。

実行中のプログラムだけがディレクトリにアクセスできます。ディレクトリは別のディレクトリに「アクセス」することはできません。

プログラムを起動すると、自分のユーザーアカウントがその実行プロセスの所有者になります ps -faあなたはあなたのすべてのプログラムであなたのUIDを見ます) 1 。

そのプロセスがファイルを読み込もうとすると、システムはプロセスの所有者とファイルのアクセス権を比較します。ユーザーに読み取り権限が許可されている場合、読み取りは成功します。そうでなければ、失敗します。

プログラムAがライブラリに対してリンクしようとした場合、ファイルシステムのパーミッションは /path/to/LibraryX ファイルAは、プログラムAのプロセス所有者と比較されます。 /path/to/ProgramA アクセス許可が設定されています。 既に実行中 プログラムAのインスタンスが読み取りを試みる /path/to/LibraryX。権限はプロセスの所有者に対してのみチェックされます。


[1] - これに対する例外は、setuidビットがオンになっているプログラムです。これらのプログラムを起動すると(たとえば、 passwd そして、プロセスの所有者が自分ではなくファイルの所有者になります。これが理由です passwd 編集することができます /etc/shadow あなたのユーザーアカウントができないとしても:それは常にrootとして実行されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.