Linuxでは、ファイルやディレクトリのアクセス権限(パーミッション)を設定することで、誰がそのファイルに対して読み取り、書き込み、実行ができるかを制御します。
chmod
コマンドを使って、パーミッションを変更することが可能です。
この記事では、Linuxターミナルでパーミッションを変更する方法について詳しく解説します。
方法
ここからは、パーミンションについてのおさらいや確認方法、パーミションの変更方法を見ていきます。
1. ファイルやディレクトリのパーミッションとは?
Linuxのパーミッションは、以下の3つのカテゴリに分かれています:
- 所有者(user): ファイルやディレクトリの作成者
- グループ(group): 所有者が所属するグループ
- その他(other): 上記2つのグループに該当しない他のユーザー
これらの各カテゴリに対して、以下の3つの権限が設定されます:
- r (read): 読み取り権限
- w (write): 書き込み権限
- x (execute): 実行権限(ディレクトリの場合、アクセス権を表す)
2. 現在のパーミッションを確認する
ファイルやディレクトリの現在のパーミッションは、ls -l
コマンドで確認できます。
ls -l
出力例:
drwxr-xr--
最初の1文字を除き、各パーミッションは9文字で構成され、最初の3文字が所有者(user)、次の3文字がグループ(group)、最後の3文字がその他(other)に対する権限を示しています。
上記の例では、所有者はすべての権限(読み取り、書き込み、実行)を持ち、グループは読み取りと実行ができ、その他は読み取りのみが許可されています。
3. chmodコマンドでパーミッションを変更する
ファイルやディレクトリのパーミッションを変更するには、chmod
コマンドを使用します。
パーミッションは、数字(8進数)または記号(r, w, x)で指定します。
数字を使ったパーミッションの指定
パーミッションは以下のように数値に対応しています:
- r (読み取り) = 4
- w (書き込み) = 2
- x (実行) = 1
これらを組み合わせて、各カテゴリに対するパーミッションを指定します。
例として、所有者にすべての権限(読み取り、書き込み、実行)を与え、グループとその他には読み取りと実行の権限を与える場合は、次のようにします。
例: パーミッションを 755 に設定する
chmod 755 ファイル名
- 7: 所有者は「4 (r) + 2 (w) + 1 (x) = 7」つまりすべての権限。
- 5: グループは「4 (r) + 1 (x) = 5」つまり読み取りと実行のみ。
- 5: その他も「4 (r) + 1 (x) = 5」。
ディレクトリ内のすべてのファイルに再帰的に適用
chmod -R 755 ディレクトリ名
-R
オプションを使うと、ディレクトリ内のすべてのファイルとサブディレクトリに対してパーミッションを再帰的に変更します。
4. 記号を使ったパーミッションの指定
数字ではなく、文字(r, w, x)や記号(+、-、=)を使って権限を変更することもできます。
u
(user/所有者)g
(group/グループ)o
(other/その他)a
(all/全員)
例: 所有者に実行権限を追加
chmod u+x ファイル名
例: グループから書き込み権限を削除
chmod g-w ファイル名
例: すべてのユーザーに読み取り権限を付与
chmod a+r ファイル名
5. ファイルの所有者やグループの変更
chown
コマンドを使用して、ファイルやディレクトリの所有者やグループを変更できます。
例: 所有者を username
に変更
sudo chown username ファイル名
例: 所有者とグループを同時に変更
sudo chown username:groupname ファイル名
再帰的に所有者を変更(ディレクトリ内すべてのファイル)
sudo chown -R username:groupname ディレクトリ名
6. パーミッションの設定例
以下に、パーミッションの設定例を紹介します。
ファイルのパーミッションを 644
に設定する
- 所有者: 読み取り・書き込み(
rw-
) - グループ: 読み取りのみ(
r--
) - その他: 読み取りのみ(
r--
)
chmod 644 ファイル名
ディレクトリのパーミッションを 755
に設定する
- 所有者: 読み取り・書き込み・実行(
rwx
) - グループ: 読み取り・実行(
r-x
) - その他: 読み取り・実行(
r-x
)
chmod 755 ディレクトリ名
7. 注意点
- システムファイルや重要なファイルのパーミッションを変更する際は注意が必要です。不適切なパーミッション設定により、ファイルが正しく動作しない、あるいはセキュリティリスクが発生する可能性があります。
- 管理者権限が必要な場合は、コマンドの前に
sudo
を付けて実行します。
まとめ
Linuxのターミナルを使って、ファイルやディレクトリのパーミッションを変更するには、chmod
コマンドを使用します。
数字や記号を使って細かくアクセス権限を設定できます。
また chown
コマンドで所有者やグループを変更できます。
システムのセキュリティと操作性を保つため、適切なパーミッション設定を行いましょう。
コメント