AFSファイルシステムで、rxアクセス許可があるディレクトリにアクセスできず、アクセス許可がないディレクトリにアクセスできるのはなぜですか?

rhymes_with_dorange

Linuxを使用してAFSマウントのディレクトリにアクセスしようとしたときに予期しない動作が発生しました(具体的には、bash 4.3.11(1)-Ubuntu 14.04.1のリリース)。いくつかのケースでは、私は、私がアクセスできる必要があることをアクセスディレクトリにできないんだ、と他の人に私は思います、私はまったく権限を持っていないいくつかのディレクトリにアクセスすることができます。例えば:

$ ls -l
total 24
drwxr-xr-x 9   70296     root     6144  Jan 12 14:44 look_inside
drwx------ 278 someadmin operator 10240 Jan 17 17:54 private
<output truncated>
$ cd look_inside
-bash: cd: look_inside: Permission denied
$ ls look_inside
ls: cannot open directory look_inside: Permission denied

私は所有者ではなく、グループrootにも属していないため、look_insideに全員の権限を適用する必要があります。誰もがそのすべての親ディレクトリr-xに対するアクセス許可を持っlook_insideていますが、cd look_insideまたはを使用することはできませんls look_inside一方、権限がなくてもアクセスできますprivate

$ getfacl private
# file: private
# owner: cbl
# group: operator
user::rwx
group::---
other::---
$ ls -l private
total 560
<output truncated>

私もの所有者ではありませんprivate私はグループoperatorに属していますが、グループにはに対する権限がないため、それは問題ではありませんprivateそれでも、私はプライベートにアクセスすることができます。とはいえ、r-x権限があるかどうかに関係なく、その中のどのディレクトリにもアクセスできません(以下を参照)。もちろん、それは理にかなっています。なぜなら、私には彼らの親に対するxの許可がないからです。に通常のファイルがないためprivate(または、少なくとも、実行時にディレクトリのみが表示されますls)、通常のファイルがどのように影響を受けるかわかりません。

$ cd private
$ ls -l
total 560
drwx------ 3 someadmin  operator 2048 Jan 16 14:11 someuser
drwxr-xr-x 3 otheradmin operator 2048 Jan 16 14:11 otheruser
<output truncated>
$ ls -l someuser
ls: cannot open directory someuser: Permission denied
$ ls -l otheruser
ls: cannot open directory otheruser: Permission denied

この動作の原因は何ですか?アクセスする方法はありますlook_insideか?私(またはシステムの管理者)は、アクセスできることを心配する必要がありますprivateか?

adeason

AFSは、従来のUnixパーミッション(それらを記憶していますが)もPOSIX ACL(で表示されるもの)も使用しませんgetfaclUnixパーミッションにはいくつかの例外があります(読み取りまたは書き込みのすべてのアクセスを削除するchmod、すべての人の関連するアクセスが削除されると思います)が、一般的に言えば、AFSは独自のACLシステムを使用します。

OpenAFSを使用していると仮定して、ファイルまたはディレクトリのアクセス許可を確認するには、を実行しfs listacl <path>ます。アクセス許可を設定するには、アクセス権がある場合は、を実行しfs setacl <path> <user> <perms>ます。AFS ACLによって付与されるchmodアクセス許可は、Unixスタイルのアクセス許可、POSIX ACL、および私が知っている他のアクセスシステムの両方とは異なります。これらについてはここで詳しく説明しますが、簡単に説明します。7つの権限があり、通常は1文字で表されます。それらは、 'r'ead、' l'ist、 'w'rite、' i'nsert、 'd'elete、loc'k'、および 'a'dminです。

したがって、たとえば、ファイルを表示および読み取ることができるディレクトリは次のようになります。

$ fs listacl somedir
Access list for somedir is
Normal rights:
   system:anyuser rl
   system:administrators rlidwka

つまり、「system:anyuser」(世界中の誰でも)は、ディレクトリの内容を「l」、そのディレクトリ内のファイルの内容を「r」することしかできません。一方、「system:administrators」(管理者ユーザーに使用されるグループ)は何でもできます。

アクセスできないディレクトリは次のようになります。

$ fs listacl privdir
Access list for privdir is
Normal rights:
   system:administrators rlidwka
   foouser rlidwka

つまり、管理者と「foouser」だけがそのディレクトリに対して何でもできるということです。ただし、ディレクトリにまったくアクセスできない場合は、アクセスできないと思いますfs listaclので、代わりにエラーメッセージが表示されます。

OpenAFSを使用しておらず、代わりにアップストリームLinuxソースツリー( "kAFS")でAFS実装を使用している場合、fsコマンドはありませんその実装でAFSACLを表示することは不可能だと思いますが、それについては間違っている可能性があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ