web-dev-qa-db-ja.com

特定のフォルダのユーザー権限のリスト

どのユーザーがフォルダーに対して承認されているか、どのユーザーがどのようなアクセス許可を持っているかを確認するにはどうすればよいですか?

「ls」、「namei」、「getfacl」などの最も一般的なものをすでに試しました

3
LStrike

あなたが

ls -ld */

現在のパスにあるディレクトリ(-d)のリスト(-l)を取得します。所有者、グループ、その他のアクセス権が表示される場合があります。
確認できるアクセス権の詳細については、以下を確認してください。
このリンク

lsコマンドからの出力を確認すると、ファイルまたはディレクトリの所有者が表示され、その隣にグループ所有者が表示されますファイルまたはディレクトリ。たとえば、グループが「logistics」と呼ばれる場合、次のコマンドでこのグループのメンバーを表示できます。

grep 'logistics' /etc/group
1
blametheadmin

これを完全に一般化する方法はありません。たとえば、NFSやSambaなどのネットワークファイルシステムを介してファイルをエクスポートする場合、承認されたクライアントのアカウントについて知っておく必要があります。ファイルがWebサーバーまたはFTPサーバーを介して表示される場合、全世界がそのファイルにアクセスできる可能性があります。

他のマシン(実または仮想)を使用しなくても、ファイルは別のディレクトリにハードリンクされる可能性があります。 バインドマウント が原因で、ディレクトリツリーは他の場所にアクセスできる可能性があります。一部のユーザーも直接アクセスできるディスクイメージ上にファイルを置くことができます。等々。

ファイルが1つのパスを介してのみアクセスできる通常の場合、ファイルは、ルートからそのファイルまでディレクトリツリー全体をトラバースできるプロセスにのみアクセスできます。または、現在のディレクトリからそのファイルへ(通常ではありませんが、chdirの操作後にディレクトリのアクセス許可を変更するかプロセスの特権を下げることにより、プロセスがchdirできない現在のディレクトリを持つように調整できます) —しかし、名目上のケースから脱却しつつあります。したがって、名目上のケースでは、ファイルに対する必要なアクセス許可を持つユーザーを取得し、ルートからそのファイルに至るチェーン内のディレクトリに対するxアクセス許可を持たないユーザーを削除します。たとえば、/one/two/threeに書き込むには、//one/one/twoに対するx権限と、/one/two/threeに対する書き込み権限が必要です。

誰がファイルに対してどのような権限を持っているかを判断するために、ほとんどのUnixバリアントは getfacl というコマンドを提供しています。このコマンドはLinuxで使用できますが、常にデフォルトのインストールの一部ではありません。ユーザーとグループごとに権限をリストします。ファイルに対するユーザーのアクセス許可は、ユーザーが明示的にリストされている場合はユーザーリストによって決定され、そうでない場合は、ユーザーが所属するグループによって付与されたすべてのアクセス許可を持ち、リストされているグループのいずれにも属していない場合次に、ユーザーは「その他」の権限セットを持ちます。

ユーザーのプロセスには、/etc/groupまたは同様のネットワークデータベースのエントリによって付与されるグループの正確なセットが常にあるとは限りませんが、再びEdgeのケースの領域に入ることに注意してください。 Edgeの場合ほど多くないことの1つは、SELinuxやAppArmorなどのセキュリティフレームワークがさらに制限を追加できることです。 ls -ld /path/to/fileの出力を見ると、このような制限が有効かどうかを確認できます。権限の後に句読点がある場合、権限がストーリー全体を伝えていないことを示します(+はACLエントリ、.は、ls -Zなどで表示できるSELinuxコンテキストを示します)。

私はあなたのためにこのすべての情報を収集するツールを知りません。

ディレクトリに-dオプションを指定してlsを使用します。

ls -ld yourDirectory
0