6.2. ファイルを管理する設定値
6.2.1. ファイルの情報を表すパラメータ
ファイルの情報は以下のようにls -l fugafugaを行うと表示される。
drwxr-xr-x 3 wand docker 4096  2月 26 22:54 .これは以下の情報を含む
- d … ファイルのタイプ
- wxr-xr-x … アクセス権(所有者, 所有グループ, その他のユーザ)
- 3 … リンク数
- wand docker … 所有者,所有グループ
- 4096 … ファイルサイズ
アクセス権
Linuxで作成されるファイルやディレクトリにはアクセス権(パーミッション)が設定される。 これでユーザごとにファイルへのアクセスの許可または禁止を設定できる。
| アクセス権 | 表記 | 説明 | 
|---|---|---|
| 読み取り | r | read。ファイルの読み取りが可能 ( 内容表示など ) | 
| 書き込み | w | write。ファイルへの書き込みが可能 ( 編集や上書きコピーなど ) | 
| 実行 | x | execute。ファイルの実行が可能 ( プログラムやシェルスクリプトの実行 ) | 
SUID
ユーザはUIDと呼ばれるID番号で管理されている。 SUID(Set User ID)は一時的に別のUIDのユーザに変更できる機能のこと。
chmodコマンドでSUIDを設定する場合は4000をパーミッション設定時に加算、またはu+sを追加する。
chmod 4755 testdata.txt
chmod u+s testdata.txtSGID
SGIDはSUIDは所有者の権限で動作するのに対して、グループの権限で動作する。
chmodコマンドでSGIDを設定する場合は2000をパーミッション設定時に加算、またはg+sを追加する。
chmod 2755 testdata.txt
chmod g+s testdata.txtスティッキービット
スティッキービットは所有者とrootユーザのみが名前の変更と削除を行えるようにする仕組み。 全ユーザーがファイルを作成できるが作成したファイルを他人がファイル名の変更や削除をできないようにしたい場合に使用する。
chmodコマンドでスティッキービットを設定する場合は1000をパーミッション設定時に加算、またはo+tを追加する。
6.2.2. パーミッションの設定変更
chmodコマンド
アクセス権を変更するコマンド。
-Rオプションで指定したディレクトリ以下の全てのファイルのアクセス権の変更が可能。
chmod 644 text.txt
chmod go+w testdata.txt| カテゴリー | 説明 | 
|---|---|
| u | 所有者 | 
| g | グループ | 
| o | その他のユーザ | 
| a | 全てのユーザ | 
| 定義 | 説明 | 
|---|---|
| + | アクセス権の追加 | 
| - | アクセス権の削除 | 
| - | アクセス権の指定 | 
| 権限 | 説明 | 
|---|---|
| r | 読み取り権限 | 
| w | 書き込み権限 | 
| x | 実行権限 | 
| s | SUID または SGID | 
| t | スティッキービット | 
umaskコマンド
umask値の確認とumask値の設定を行うコマンドでデフォルトのアクセス権を変更できる。
umask <マスク値>passwdコマンド
パスワードを変更できるコマンド。
/etc/passwdに変更情報が保存される。
6.2.3. ファイルの所有者の管理
chownコマンド
所有者の変更を行うコマンド。実行にはroot権限が必要。
-Rで再帰的実行が可能。
chown root piyochgrpコマンド
グループの変更の変更を行うコマンド。一般ユーザーでも使用が可能。
-Rで再帰的実行が可能。
chgrp wand fuga6.2.4. ハードリンクとシンボリックリンク
ファイルの実体とファイル名をつなぐ事をリンクと呼ばれ、リンクにはシンボリックリンクとハードリンクの以下の2種類がある。
ハードリンク
ハードリンクは1つのファイルの実体を複数のファイル名で表せるリンク。同じファイルの実体を共有する方式。 特徴は以下の通り。
- iノード番号(ファイルやディレクトリと1対1で紐づく情報の番号)が同じ
- リンク元のファイルが移動、削除されても、ファイルの実体にはアクセスできる
- 異なるファイルシステム上のファイルやディレクトリにリンクできない
シンボリックリンク
シンボリックリンクはリンク元ファイルが配置されている場所にリンクする方式。 プログラミング言語におけるポインタの概念に近い。
特徴は以下の通り。
- 新しいiノード番号が付与される
- リンク元のファイルが移動、削除されると、リンク元のファイルの実体にアクセスできない
- 異なるファイルシステム上のファイルやディレクトリにリンクできる