6.2. ファイルを管理する設定値

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で作成されるファイルやディレクトリにはアクセス権(パーミッション)が設定される。 これでユーザごとにファイルへのアクセスの許可または禁止を設定できる。

アクセス権表記説明
読み取りrread。ファイルの読み取りが可能 ( 内容表示など )
書き込みwwrite。ファイルへの書き込みが可能 ( 編集や上書きコピーなど )
実行xexecute。ファイルの実行が可能 ( プログラムやシェルスクリプトの実行 )

SUID

ユーザはUIDと呼ばれるID番号で管理されている。 SUID(Set User ID)は一時的に別のUIDのユーザに変更できる機能のこと

chmodコマンドでSUIDを設定する場合は4000をパーミッション設定時に加算、またはu+sを追加する。

chmod 4755 testdata.txt
chmod u+s testdata.txt

SGID

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実行権限
sSUID または SGID
tスティッキービット

umaskコマンド

umask値の確認とumask値の設定を行うコマンドでデフォルトのアクセス権を変更できる。

umask <マスク値>

passwdコマンド

パスワードを変更できるコマンド。 /etc/passwdに変更情報が保存される。

6.2.3. ファイルの所有者の管理

chownコマンド

所有者の変更を行うコマンド。実行にはroot権限が必要。 -Rで再帰的実行が可能。

chown root piyo

chgrpコマンド

グループの変更の変更を行うコマンド。一般ユーザーでも使用が可能。 -Rで再帰的実行が可能。

chgrp wand fuga

6.2.4. ハードリンクとシンボリックリンク

ファイルの実体とファイル名をつなぐ事をリンクと呼ばれ、リンクにはシンボリックリンクとハードリンクの以下の2種類がある。

ハードリンク

ハードリンクは1つのファイルの実体を複数のファイル名で表せるリンク。同じファイルの実体を共有する方式。 特徴は以下の通り。

  • iノード番号(ファイルやディレクトリと1対1で紐づく情報の番号)が同じ
  • リンク元のファイルが移動、削除されても、ファイルの実体にはアクセスできる
  • 異なるファイルシステム上のファイルやディレクトリにリンクできない

シンボリックリンク

シンボリックリンクはリンク元ファイルが配置されている場所にリンクする方式。 プログラミング言語におけるポインタの概念に近い。

特徴は以下の通り。

  • 新しいiノード番号が付与される
  • リンク元のファイルが移動、削除されると、リンク元のファイルの実体にアクセスできない
  • 異なるファイルシステム上のファイルやディレクトリにリンクできる