前置き
1月にLinux技術者認定資格(LinuCの101)を受験するにあたり個人的に躓いたところを書き出しておく。
受験する方はこちらを確認することで、勉強期間や受験時の勉強方法の参考にしてもらいたい。
※受験が来月の為、躓いたことリストは増える可能性があります。
Linuxで使用するファイルの権限の操作について
Linuxのファイルを管理するにあたり、ファイル所有者と所有権を設定・
変更するコマンドが3種類あるがそれぞれの違いがはじめ解らなかったためここで記載します。
1.前提知識
Linuxではログインするためにアカウントが必要です。
これをユーザーアカウントというのですが、アカウントは任意に複数作成が可能です。
また、アカウントを作成するとユーザ名と同様の名前のグループが作られ、
ユーザはそのユーザグループに所属しているとシステムに登録されます。
グループは複数のユーザに紐づけさせることが可能で、紐づけさせることで複数のユーザに対して同じ処理を実行することや、権限を付与することが可能となります。
2.ファイル所有者と所有権を設定・変更するコマンド
(1)chown
前提知識で説明したユーザーアカウントはLinux内でのユーザ IDとして管理されます。
ファイルの管理者(所有者)としてユーザーアカウントが登録されている場合、
ユーザーアカウントを変更することが出来るのがこのコマンドです。
(2)chgrp
前提知識で説明したユーザグループはLinux内でのグループ IDとして管理されます。
ファイルの管理者(所有グループ)としてユーザグループが登録されている場合、
ユーザグループを変更することが出来るのがこのコマンドです。
(3)chmod
ファイルに権限を付与できるコマンドです。
ファイルの所有者、所有グループに設定されたアカウントはそれ以外のアカウントに対して
読み、書き、実行の3つの権限を設定できます。
またこの権限の付与は所有ユーザ、所有グループで所有者以外のユーザ、所有グループ以外のユーザごとに付与が可能です。
3.ファイル所有グループの確認
ls -l ファイル名,フォルダ名をコマンドにて入力することで下記のようにファイル内の属性を確認することが出来ます。
$ ls -l .bashrc
-rw-r--r-- 1 penguin linux 124 2 月 6 02:44 .bashrc
(所有者が読み書き, 所有グループが読み, その他が読み)
$ ls -l /usr
合計 272
drwxr-xr-x 3 root root 4096 2 月 6 01:45 X11R6
drwxr-xr-x 2 root root 4096 2 月 8 13:07 arc
drwxr-xr-x 2 root root 69632 2 月 9 04:02 bin
drwxr-xr-x 2 root root 4096 3 月 30 2007 etc
drwxr-xr-x 2 root root 4096 3 月 30 2007 games
drwxr-xr-x 84 root root 12288 2 月 6 02:04 include
drwxr-xr-x 6 root root 4096 11 月 11 11:39 kerberos
drwxr-xr-x 108 root root 69632 2 月 7 11:41 lib
drwxr-xr-x 13 root root 4096 2 月 9 04:02 libexec
drwxr-xr-x 11 root root 4096 2 月 6 01:43 local
drwxr-xr-x 2 root root 16384 2 月 7 11:41 sbin
drwxr-xr-x 226 root root 12288 2 月 6 02:05 share
drwxr-xr-x 5 root root 4096 2 月 6 08:52 src
lrwxrwxrwx 1 root root 10 2 月 6 01:43 tmp -> ../var/tmp
それぞれの見方をファイル[.bashrc]を元に説明します。
[1]-rw-r--r-- [2]1 [3]penguin linux [4]124 [5]2 月 6 02:44 [6].bashrc
[1]ファイルの種類と許可属性です。
最初の1文字:
ファイルの種類」を示しており、ディレクトリなら「d」、シンボリックリンク(実体は別の所にあるファイル)ならば「l」、通常のファイルならば「-」などと表示されます。
2~4文字:
所有ユーザに付与されている権限、読み込みなら「r」、書き込みなら「w」、実行またはディレクトリの移動ならば「x」が表示される。
5~7文字:
所有グループで所有者以外のユーザに付与されている権限。
8~10文字:
所有グループ以外のユーザごとに付与されている権限。
[2]ハードリンク数です。
ディレクトリの場合、自身の名前(例:user,hoge etc)以外に自分自身を示す「.」というハードリンクが自動で作成されます。ハードリンクは全てのフォルダに付与されるため、階層が深いところにあるファイル程この数が多くなります。
[3]所有者と所有グループです。
[4]ファイルサイズです。
[5]タイムスタンプです。ファイルが操作された最終日時が表示されます。
[6]ファイル名です。
参考文献
Linux標準教科書
https://linuc.org/textbooks/linux/