高度なファイル権限とその正しい読み方

高度なファイル権限とその正しい読み方
alisto@ubuntu:/projects/solarproj$ \ls -al
total 32
drwxrwsr-t 3 root   solarproj 4096 Dec 8 16:02 .
drwxr-xr-x 3 root   root      4096 Dec 8 15:29 ..
-rw-rw---- 1 boband boband    802  Dec 8 15:44 bearings.jpg
-rw-rw-r-- 1 boband solarproj 101  Dec 8 15:43 controller.c
drwxrwSr-x 2 alisto solarproj 4096 Dec 8 15:40 old
-------rwx 1 alisto solarproj 19   Dec 8 14:08 power
-rw-r--r-- 1 alisto solarproj 81   Dec 8 15:44 schedule.txt
-rw----r-- 1 boband solarproj 576  Dec 8 15:58 temp
lrwxrwxrwx 1 alisto solarproj 24   Dec 8 16:02 temp.sym      ->  ../solarproj/temp

両方のユーザーはsolarprojグループに属しています

  1. ボブはファイルの内容を変更できますかschedule.txt? なぜですか?

    私がこれを正しく読んでいるなら、答えは「いいえ」です。グループは読み取り専用に設定されているためです。

  2. アリスはファイルを削除できますかcontroller.c? なぜですか?

    ファイルは読み取りと書き込みの権限を与えているが、スティッキービットがあるため削除できない/削除できるかどうかわからない

  3. どのユーザーがファイルを読み取ることができますかpower? 理由は何ですか?

    グループまたはAlistoに所属していない他のすべてのユーザー

  4. なぜアリスはディレクトリ old のコンテンツを一覧表示できるのに、ボブはできないのでしょうか?

    グループ権限のSのため、xは存在しません

  5. アリスはファイルを読むことができますかtemp.sym? なぜですか?

    いいえ、彼女は許可されていないからです。

私の答えが正しいかどうかわかりません。誰かが間違った答えを訂正して、私を少しでも助けてくれると嬉しいです。自分でテストして確かめてみたいのですが、VM が機能していないので、数日後に予定されているテストに向けて勉強して、もう一度試す必要があります。

答え1

コマンドを使用して権限を表示する場合ls、特定の構造に従います。例を見てみましょう。

-rw-rw-r--

初め文字はファイルの種類を示し、ファイル記述子次の3文字ファイルを作成したユーザーの権限を示します。次の3文字のセットユーザーのグループの権限を示し、最後の3文字他のすべてのユーザーの権限を示します。

この例では、

  • 初めファイル記述子と呼ばれる文字は、ファイルのタイプを示します。 の場合-rw-rw-r--、先頭のダッシュです。
  • 次の3文字ファイルを作成したユーザーの権限を示します。 の場合には-rw-rw-r--ですrw-
  • その後の3文字前述のユーザーのグループの権限を示します。
  • 最後の3文字他のすべてのユーザーの権限を表示します。

最初の文字、つまりファイル記述子である単一のダッシュ ( -) は、これが通常のファイルであることを示します。一方、これがディレクトリの権限である場合は、単一のダッシュになりますd。ファイル記述子の可能な値の包括的なリストではありません。

  • d- ディレクトリ
  • -- 「通常の」ファイル
  • l- シンボリックリンク
  • s- UNIXソケット
  • p- パイプライン

[read][write][exec]他の 3 つの 3 文字セットは、各括弧に 1 つの文字が含まれる構造に従います。

したがって、次の例では-rw-rw-r--

  • ファイルを作成したユーザーの権限は ですrw-。そのため、そのユーザーはファイルを読み書きできますが、実行することはできません。
  • ユーザーのグループの権限も であるためrw-、ユーザーのグループも読み取りと書き込みを行うことができます。
  • 他のすべてのユーザーの権限は ですr--。つまり、他のすべてのユーザーはファイルを読み取ることはできますが、書き込みや実行はできません。

それで、あなたの質問に対して:

Bob はファイル schedule.txt の内容を変更できますか? なぜですか?

私がこれを正しく読んでいるなら、答えは「いいえ」です。グループは読み取り専用に設定されています。

-rw-r--r-- 1 alisto solarproj 81   Dec 8 15:44 schedule.txt

正解です。はグループbobandの一部なのでsolarproj、権限は です。r--つまり、ファイルの読み取りのみ可能で、変更はできません。

Alice はファイル controller.c を削除できますか? なぜですか?

ファイルは読み取りと書き込みの許可を与えているが、スティッキービットのせいで削除できない/削除できないかどうかわからない

-rw-rw-r-- 1 boband solarproj 101  Dec 8 15:43 controller.c

はい、できます。彼女rw-は solarproj グループのメンバーなので、権限があり、ファイルを変更でき、削除もできます。

どのユーザーがファイルパワーを読み取ることができますか? 理由は何ですか?

グループまたはAlistoに所属していない他のすべてのユーザー

-------rwx 1 alisto solarproj 19   Dec 8 14:08 power

solarprojこれも正解です。1)グループに属していない、かつ 2) グループに属していないユーザーのみが、alistoそのファイルの読み取り、変更、または実行が可能です。

なぜアリスはディレクトリ old のコンテンツを一覧表示できるのにボブはできないのでしょうか?

グループ権限のSのため、xは存在しません

drwxrwSr-x 2 alisto solarproj 4096 Dec 8 15:40 old

いいえ。Sファイルを意味します実行可能そしてsetguid ビットが設定されています。

Alice は temp.sym ファイルを読み取ることができますか? なぜですか?

いいえ、彼女は許可されていないので

-rw----r-- 1 boband solarproj 576  Dec 8 15:58 temp
lrwxrwxrwx 1 alisto solarproj 24   Dec 8 16:02 temp.sym      ->  ../solarproj/temp

正解です。temp.symはファイルを指しますtempが、はを指しているためalistoから読み取ることができます。temp.symtempalisto できない読み上げられない場合は、許可が拒否されます。

関連情報