![高度なファイル権限とその正しい読み方](https://rvso.com/image/178500/%E9%AB%98%E5%BA%A6%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%A8%A9%E9%99%90%E3%81%A8%E3%81%9D%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E8%AA%AD%E3%81%BF%E6%96%B9.png)
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グループに属しています
ボブはファイルの内容を変更できますか
schedule.txt
? なぜですか?私がこれを正しく読んでいるなら、答えは「いいえ」です。グループは読み取り専用に設定されているためです。
アリスはファイルを削除できますか
controller.c
? なぜですか?ファイルは読み取りと書き込みの権限を与えているが、スティッキービットがあるため削除できない/削除できるかどうかわからない
どのユーザーがファイルを読み取ることができますか
power
? 理由は何ですか?グループまたはAlistoに所属していない他のすべてのユーザー
なぜアリスはディレクトリ old のコンテンツを一覧表示できるのに、ボブはできないのでしょうか?
グループ権限のSのため、xは存在しません
アリスはファイルを読むことができますか
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.sym
temp
alisto
できない読み上げられない場合は、許可が拒否されます。