Linuxは複数のユーザーが同時に利用できる,マルチユーザー対応OSです。このようなOSは,ユーザーごとにファイルのアクセス権を管理することが不可欠です。Linuxでも当然,アクセス権を利用できます。

 アクセス権はファイルやディレクトリごとに設定されます。「所有者」「グループ」「その他」という3種類のユーザーについて「読み込み」「書き出し」「実行」という権限を制御できます。権限(パーミッション)の確認には「ls -l」コマンドを利用します。

パーミッションを変更するchmod

 パーミッションの変更には,chmodコマンドを利用します。

chmod モード 変更するファイルやディレクトリ

のように指定して実行します。

 モードはアクセス権をどのように変更するかを記述します。モードの指定は「アルファベットで指定する」方法と「数値で指定する」方法の2つを利用できます。

アルファベットで指定する

 アルファベットでの指定は,

変更対象 変更方法 変更内容

の順に記述します。各項目には表1の文字や記号が使えます。

表1●アルファベットでのモード指定
表1●アルファベットでのモード指定

 変更方法で「+」を利用すると,前に記述した変更対象について,後に記述した権限が付与されます。例えば,所有者に書き出し権限を付与したい場合は,

chmod u+w target_file

と実行します。

 逆に「-」を利用すると,権限を取り除けます。例えば,グループとその他のユーザーから実行権限を取り除きたい場合は,

chmod go-x target_file

と実行します。

 「=」は,続けて記述した権限と同じに設定します。例えば,すべてのユーザーに対して読み込み権限と書き出し権限のみを設定したい場合は,次のように実行します。

$ chmod a=rw target_file

「=」の後に何も記述しないと,権限をすべて取り除きます。

数値で指定する

 権限は「rwxr-xr--」のように9桁(けた)の記号で表されます。このアルファベットの部分を「1」に,「-」の部分を「0」にすると,2進数で表せます。chmodではこの数字を8進数にしたものをモードとして利用することができます。

 権限から8進数にするには3桁ごとに分け,表2に当てはめて考えると簡単に変換できます。

表2●数字でのモード指定
表2●数字でのモード指定

例えば,「rwxr-xr--」のような権限であれば,「111101100」となり,8進数では「754」のように表せます。この8進数の権限を,chmodのモードに記述して権限を変更できます。

$ chmod 754 target_file
各コマンドの詳しい使い方などについては,「Linuxコマンド集」を参照ください。また,「Linuxコマンド逆引き大全」で,行いたい処理内容からコマンドの使い方を調べられます。