chmodコマンド[Linux]初心者向け

linux Linux

chmodコマンド

「chmod」はアクセス権(パーミッション)を変更するコマンドです。

アクセス権(パーミッション)とは、どのユーザーに対してどういった操作を許可するのかという情報のことです。

アクセス権(パーミッション)は、所有者・所有グループに属するユーザー・その他のユーザーの3種類で設定します。

例えば下記のように「ls」コマンドを打つと、


$ ls -l
合計 4
-rwxr-xr--. 1 parallels parallels 42  2月 25 22:37 sandaibusho.txt

「-rwxr-xr–」←この部分がアクセス権(パーミッション)を表しています。
1番左の「-」は、ファイルの種別。
左から2~4番目の「rwx」は所有者の権限
左から5~7番目の「r-x」は所有グループに属するユーザーの権限
左から8~10番目の「r–」はその他のユーザーの権限

といった具合です。

また、それぞれの文字については、

「r」は読み取り可能
「w」は書き込み可能
「x」実行可能
というアクセス権(パーミッション)を表しています。

「chmod」コマンドには数値でアクセス権を指定する方法と記号を用いた方法がありますが、まずは数値を使った方法を説明します。

chmodコマンド 数値でアクセス権を指定する方法

↓このような形式でアクセス権限を指定します。


$ chmod 754 sandaibusho.txt

初めて見たときには、一体なんなんだか‥
意味がわかりませんでした‥

「rwx」に対応する数を割り当て、その和(合計)で「754」といったような数字を決めます。

まずは、

「r」→ 4
「w」→ 2
「x」→ 1

二進数を十進数変換する時の位の数のように右から1→2→4と覚えましょう。

「chmod」で指定する場合は与えたい権限(「rwx」)の足した数で指定しますので以下の表のようになります。

所有者 所有グループに属するユーザー その他のユーザー
r w x r – x r – –
421 4 1 4
7 5 4

上記のように指定するには、


$ chmod 754 sandaibusho.txt

と入力します。

こんなパターンの指定は普通しないですが、以下のように入力すると、


$ chmod 012 sandaibusho.txt
$ ls -l
合計 4
------x-w-. 1 parallels parallels 42  2月 25 22:37 sandaibusho.txt

「——x-w-」といった具合です。左から、
「-」←ファイルを表す
「—」←0
「–x」←1
「-w-」←2

「rwx」へ二進数を十進数変換する時の位の数のように、右から「x」を1、「w」を2、「r」を4と割り当て、それらを足した「0~7」の10進数を使えば全てのパターンを網羅できるんだ。と、覚えれば簡単に思い出すことができます!

コメント