
サーバー: Debian
user1
私のディレクトリは次のとおりです。ホームディレクトリ内の他のエントリへのアクセスを許可せず、共有ディレクトリを設定せずに、場所にあるファイルに対する読み取り権限を/home/user1/website/logs
新しいユーザーに付与しようとしています。user2
/home/user1/website/logs
user2
user1
可能であればどのようにこれを達成できますか、それとも不可能ですか?
編集:また、/home/user1/website/logsに含まれるすべてのファイルに対する権限を制限して、世界中にそのファイルに対する権限を持たないようにする必要があります。サーバーのユーザーだけがアクセスできる必要があります。
答え1
あなたにはrootアクセス権があり、user2にはそうではないと仮定すると、次のようにクラシックUNIX権限を使用して設定できます。このアクセスプランのグループを作成します(アクセス制御にはuser2のみが必要ですが、user1とuser2の両方を含めることができます)。下から名前で参照しますrdlog
。グループが設定されたら、次のコマンドを使用して必要なものを設定する必要があります。
chgrp rdlog /home/user1 /home/user1/website /home/user1/website/logs
chmod g=x /home/user1 /home/user1/website
chmod -R g=r /home/user1/website/logs
x
ディレクトリ権限のビットのみを設定すると、そのディレクトリ内の正確な参照のみを使用できます。これは、誰でもrdlog
ログディレクトリを一覧表示したりCDに移動したりできることを意味します。ディレクトリとその中のファイルに対する読み取り専用権限があります。これには多くの制限があります。
まず、セキュリティの一部はあいまいさによるセキュリティです。ディレクトリ一覧の権限を付与していなくて/home/user1
もはい名前を推測しても、その中のファイルを参照し続けることができます(ただし、ファイルの権限はそれから適用されます)。たとえば、cat /home/user1/.bashrc
受信したエラー(該当するファイルが存在しないことと権限が拒否されました)を入力し、ファイルが実際に存在することを確認できます。
2番目の制限は、次の操作しか実行できないことです。一度。他のユーザーにホームディレクトリの下にある他のコンテンツへのアクセスを許可する必要がある場合、グループは1つだけ設定できるため、同じことはできません。
ACLを使用して実行できる操作もあります。正しく実行すると、これらの制限を回避できます。ただし、問題のディレクトリを実際に権限を正しく適用できる他の場所に移動すると、実際に必要なものが得られます(つまり、この質問をした実際の質問)。参照してもそれを確認する必要がある場合は、~/website/logs
その場所から新しい場所へのソフトリンクを配置できます。