LinuCレベル1 101の試験範囲「1.02.1 ファイルの所有者とパーミッション」の技術的内容について解説をまとめました。
重要度 3 概要 適切なパーミッションと所有者権限を使用して、ファイルへのアクセスを制御できる。 詳細 ・通常ファイル、スペシャルファイル、およびディレクトリに対するアクセスパーミッションを管理する。
・chmod, ls
・SUID、SGID、スティッキービットなどのアクセスモードを使用して、セキュリティを維持する。
・chmod, chown, chgrp, ls
・ファイル作成マスクの変更方法を把握する。
・umask
・グループフィールドを使用して、グループメンバーがファイルにアクセスできるようにする。
・chown, chgrp

ファイルとディレクトリの概要
Linuxでは、データの管理を「ファイル」と「ディレクトリ」で管理しています。
ディレクトリは英単語で和訳すると「住所録」などといった意味があります。ファイルについてはWindowsやMacを使っていれば理解しやすいかもしれませんが、ディレクトリはLinuxで使用する概念です。ディレクトリをWindowsに例えると、「フォルダ」に該当する概念です。
ファイル・ディレクトリのパーミッション
Linuxのファイル・ディレクトリにはパーミッションが設定されています。
ls -laコマンドでファイルを確認したときに確認できる、ファイルやディレクトリの横についている「r」「w」「x」がファイル・ディレクトリのアクセス権(パーミッション)です。


LinuC公式サイトではパーミッションについて以下のように説明されています。
ファイルやディレクトリのパーミッションは、所有者(Owner)・所有グループ(Group)・その他(Other)のそれぞれのユーザに対して、
読み込み権(Readable)・書き込み権(Writable)・実行権(eXecutable)の権限を与えるかどうかで表されます。
ls -lでファイルやディレクトリを表示させると、そのファイルやディレクトリのパーミッションが確認できます。-rwxr—–. 1 linuc lpi 152 8月 11 15:53 test.txt
最初の1文字はディレクトリかファイルかの表現で、2文字目から3文字区切りで、それぞれ所有者・所有グループ・その他の権限を表します。
権限は「rwx」の表記の他に、8進数でも表現ができます。
r = 4
w = 2
x = 1
として、必要な権限の数字を足した数値が、パーミッションとなります。既存のファイルやディレクトリのパーミッションを変更したいときには、chmodコマンドで変更ができます。

ファイル・ディレクトリの所有者・所有グループ
ls -laコマンドを実行すると、ファイル・ディレクトリに設定されている所有者と所有グループを確認できます。
例えば以下の画像の例では、ほとんどのファイルが root rootになっていますが、左側のrootの記載がユーザーで、右側のrootがユーザーグループです。

SUID、SGIDの概要
Red Hat Enterprise Linuxを提供しているRed Hat社の公式ブログで以下のようにSUIDについて説明されています。
ユーザー + s (pecial)
一般的に SUID と呼ばれるユーザーアクセスレベルの特殊アクセス権は、単一の機能を有します。SUID が付与されたファイルは、コマンドを実行するユーザーに関係なく、常にそのファイルの所有者ユーザーとして実行されます。ファイル所有者に実行権限がない場合は、ここで大文字の S を使用します。
実際に理解するために、
/usr/bin/passwdコマンドを見てみましょう。このコマンドには、デフォルトで SUID 権限が設定されています。[tcarrigan@server ~]$ ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 33544 Dec 13 2019 /usr/bin/passwdユーザーに対する実行権限を示す通常の x の代わりに s が入ります。

SGIDについてもRed Hat公式ブログで説明があります。
グループ + s (pecial)
一般的に SGID と呼ばれるこの特殊アクセス権には、複数の機能があります。
- ファイルに設定すると、そのファイルを所有するグループとして実行できるようになります (SUIDと同様)。
- ディレクトリに設定すると、ディレクトリ内に作成されたすべてのファイルのグループ所有権がディレクトリ所有者のグループ所有権に設定されます。
[tcarrigan@server article_submissions]$ ls -l total 0 drwxrws---. 2 tcarrigan tcarrigan 69 Apr 7 11:31 my_articlesこのアクセス権セットは、通常はグループに対して実行権限を示す x の代わりに小文字の s で示されます。これは、グループのメンバー間の共同作業で頻繁に使用されるディレクトリにおいて特に有用です。グループのどのメンバーも新しいファイルにアクセスできるからです。これはファイルの実行にも当てはまります。SGID は適切に使用すると非常に強力です。
SUID の場合で前述したように、所有グループに実行権限がない場合は、大文字の S が使用されます。

chmod, chown, chgrp, ls, umaskコマンドの概要
chmod、chown、chgrp、ls、umaskコマンドについてそれぞれの概要を説明します。
chmodコマンドの概要
chmodはファイルやディレクトリの権限を変更するコマンドです。
chownコマンドの概要
chownはファイルやディレクトリの所有者・所有グループを変更するコマンドです。
chgrpコマンドの概要
chgrpはファイルやディレクトリの所有グループを変更するコマンドです。
ls コマンドの概要
lsコマンドはカレントディレクトリに格納されているファイル・ディレクトリを確認できるコマンドです。
umaskコマンドの概要
umaskコマンドは ファイル・ディレクトリ作成時のデフォルトの権限を設定するためのコマンドです。

