第6章 基本コンセプト

目次

6.1. ユーザについてのコンセプト
6.2. Linux のファイルシステム
6.3. ファイルのパーミッション

概要

あなたにとってこれが Linux システムとの初めての出会いでしたら、おそらく、 使い始める前に Linux の基本コンセプトについて押さえておきたいと思っている のではないでしょうか。 Linux、 Mac OS* そして Windows* のグラフィカルユーザインター フェイスを見比べてみれば、それぞれのデスクトップ構成要素は似通っていることに 気付くと思います。ですから、あるグラフィカル環境から別の環境へ乗り換えるのは さほど難しいことではないと言えるでしょう。とはいえ、その根底にあるシステムを ちょっと見てみれば、すぐにいくつか違いがあることに気付かれるでしょう。

以下のセクションは、あなたが Linux システムに最初の一歩を踏み出すための手引き、 そして Linux 初心者が新しいオペレーティングシステムに慣れる 助けとなるように書かれています。読み進めていけば、Linux におけるユーザという コンセプト、Linux ファイルシステムの構造 (ディレクトリツリーの中で何がどこに あるか)、どのようにファイルとディレクトリのアクセス許可を取り扱っているか といった、Linux の基礎的な特徴を学んでいくことができるでしょう。

Mac OS を使ったことのあるユーザでしたら、以下のセクションで説明されている コンセプトは、既に Mac OS を通じて慣れ親しんでいるものとかなり似通っている ことにお気付きになるかもしれません。Windows のユーザでしたら、押さえておくべき 決定的な違いがいくつかあることに気付かれるでしょう。

6.1. ユーザについてのコンセプト

元々 Linux はマルチユーザシステムとしてデザインされていて、何人ものユーザが 同時に1台のマシンで作業できるようになっています。ユーザは、それぞれの端末や ネットワーク接続を通じてシステムに入ることができます。通常、ユーザは セッションを開始する前にシステムにログインする必要があります。個人の情報や それぞれのデスクトップ設定はユーザごとに個別に保存されます。

6.1.1. 特別なユーザの役割

1台のマシン上で作業するユーザが複数いる中で、Linux はユーザの種類に応じて役割を 区別します。あなたは Linux マシンに一般ユーザとしてログインする ことも、Linux では伝統的に root と呼ばれているスーパーユーザ (管理者) としてログインすることもできます。スーパーユーザには、システム全体にアクセスし、 管理者としてのタスクを実行できる権限が割り当てられていて、システムに対して いかなる変更を加えることも、すべてのファイルに制限なくアクセスすることもできる ようになっています。あなたが一般ユーザとしてログインしている場合は、こういった 権限は割り当てられません。もちろん、同じ人間が場合に応じて一般ユーザになったり root になったりすることもできますが、それぞれの場合で役割は異なります。

root ユーザアカウントは、Linux システムでは常に作成されます。 ですから、インストール中に root のパスワードを決めるよう 求められることになります。システムにログインできる他のユーザアカウントに ついては、インストール中にどのような認証方法を選択するかによって異なってきます (1.11項 「新規ユーザの作成」 参照)。

日常的な作業をする場合、普通は一般ユーザとしてシステムにログインします。 管理作業を行う場合や YaST のようなプログラムを実行する際には root 権限が必要となります。一般ユーザアカウントから root になったり、 管理作業が済んだ後一般ユーザへ戻ったりするのは簡単です。シェルの中で アカウントを切り替える方法については 7.4項 「root への移行」 内で 説明されています。もしグラフィカルユーザインターフェイスで作業を行っている ようでしたら、通常、必要な時には root のパスワードを入力するよう求められます。 root 権限が必要なアプリケーションを閉じれば、 root 権限から離れる ことになります - つまり、自動的に一般ユーザアカウントに戻るということです。

最初のうちはこのコンセプトにどんな意味があるのか分かりにくいと 思いますが、これによってセキュリティが強化されているのです。 root 権限の ないユーザであれば、システム全体にダメージを与えることはありません。ダメージを 与えるとしても、影響範囲はそのユーザのアカウントとデータだけに止まります。 root 権限で何か操作をすると、システム全体に問題を起こしてしまう可能性を はらんでしまいます。稼働中の Linux システムに何か害をなそうとする者がいるとしたら、 その者はまず root 権限を手に入れなければなりません。Linux システムを 対象とするウイルスを作成するのがとても難しいのはこのためです。作るためには、 まず root という壁を乗り越えなければならないからです。

6.1.2. グループ

Linux システムの各ユーザは、少なくとも 1 つのグループに所属しています。グループとは この場合、何らかの集団権限を持つ一連のユーザ群と定義することができます。 グループというのは通常、機能上の役割や、そのグループのメンバーがアクセスする必要の あるデータやリソースに応じて定義されています。システムに新しいユーザアカウントを 追加すると、そのユーザは通常既定の基本グループに所属することになります。システム 管理者は必要に応じてこの基本グループを変更したり、そのユーザを他のグループに追加で 所属させたりすることもできます。

図6.1 YaST でのユーザのグループ登録

YaST でのユーザのグループ登録

6.2. Linux のファイルシステム

スーパーユーザを含む全てのユーザには、文書やブックマーク、電子メールなど 全ての個人データを保存しておくためのホームディレクトリがあります。 システム全体の設定ファイルや実行ファイルを含む場所はシステムディレクトリ と呼ばれ、スーパーユーザにしか変更が許されていません。パーミッションと それらの変更方法については、 7.5項 「ファイルのパーミッション修正」 を お読みください。

Linux ではファイルやディレクトリの管理をファイルマネージャで行なうか、 それともコマンドライン (従来の方法) で行なうかを選択することができます。 後者の手順のほうが多くは素早い処理を行なうことができますが、ファイルの 一覧や作成、削除や編集、属性設定について、より深い知識が必要です。 ファイルを操作するためのコマンドについては、 7.3項 「ファイルとディレクトリを利用する作業」 をお読みください。ファイルマネージャ での操作は視覚に訴える (グラフィカルな) 表示を行なうことができるほか、 これらの作業をより直感的に行なうことができるようになっています。 GNOME や KDE のファイルマネージャについて、詳しくは 項 「Nautilus を利用したファイルとフォルダの管理」 (第2章 デスクトップでの作業, ↑GNOME ユーザガイド) と 項 「Dolphin ファイルマネージャの使用」 (第2章 デスクトップでの作業, ↑KDE ユーザガイド) をそれぞれお読みください。下記の章では、ファイルシステムに関する基本的な 知識と、 Linux における既定のディレクトリ構造について説明しています。

6.2.1. 主な機能

Linux では、全てのファイルやディレクトリはツリー構造 (木のように幹から 枝に枝分かれする構造) になっています。ファイルシステムにおける最上位の ディレクトリは ルート と呼ばれたり、単に / と書かれたりします (ユーザ名としての root とは別のものですのでご注意ください) 。 / を Windows システムに当てはめると、 C:\ になります。 Linux ではその他の全てのディレクトリはルートディレクトリからアクセスする ことができるほか、階層構造で並べられています。

Linux ファイルシステムにおける主な機能と、各項目における Linux と Windows/DOS ファイルシステムとの違いを下記に示します:

パスの指定

Windows とは異なり、 Linux ではバックスラッシュや円マークを利用して パス名を区切ることはありません。代わりにスラッシュ記号を利用します。 たとえば Windows において個人データは C:\My Documents\Letters のようなディレクトリに 配置したりしますが、 Linux では /home/ユーザ名/Letters のようなディレクトリに配置します。

パーティション, ドライブ, デバイス, ディレクトリ

Linux では Windows のようなドライブ文字 (ドライブレター) は使用しません。 Linux ではパス名の表記にパーティションやドライブ、デバイスや ネットワークデバイスを表わすことはなく、全て 通常の ディレクトリとして表記します。

マウントとマウント解除

もう一つの Windows/DOS と Linux の違いは、パーティションやドライブ、 ディレクトリなどの マウントマウント解除 という考え方です。 Windows は起動処理の最中にパーティションとドライブを検出し、それぞれに ドライブ文字 (ドライブレター) を割り当てますが、 Linux ではパーティション やデバイスは通常、 マウント という作業を行なわない 限り、ディレクトリ構造の中に現われることはありません。つまり マウント とは、ディレクトリ構造の中のどこかの 場所にドライブやパーティションを 据え付ける という意味です。通常のユーザからは、マウントされない限り、 パーティションやデバイスのデータにアクセスすることができません。 しかし心配することはありません。多くの場合、わざわざ手作業でマウント を行なう必要はありません。システムをインストールする際にパーティション を設定したかと思いますが、それらはシステムの起動時に自動でマウントする ように設定してあります。リムーバブル (取り外し可能な) デバイスの場合は、 それが検出されれば自動的にマウントされます。 KDE や GNOME のデスクトップ 環境では、新しいデバイスの出現を通知する機能を備えています。

図6.2 KDE での USB メモリの自動検出

KDE での USB メモリの自動検出

マウントやマウント解除という考え方は若干難しいもので、最初のうちは 理解しづらいものであるとは思います。ですがこの考え方には大きな 柔軟性を備えています。たとえばネットワークを経由して、他のマシンから お使いのコンピュータのディレクトリをマウントすれば、まるでお使いの コンピュータにいるのと変わらない状態を作り出すことができたりします。

大文字と小文字の区別

Linux のファイルシステムでは、大文字と小文字を区別します。たとえば test.txt, TeST.txt, Test.txt の 3 つは、 Linux 環境ではそれぞれ 別々のファイルとして扱われます。これはディレクトリの場合でも同じです: たとえば Letters というディレクトリにアクセス する場合、 letters という指定ではアクセスできません。

ファイルの拡張子

Windows とは異なり、 Linux 内でのファイルには .txt のような拡張子を持つものもありますが、それは必須ではなく、 必ずしも拡張子を持つ必要はありません 。 シェルでの作業を行ないはじめると、ディレクトリ内の一覧を表示したときに、 初心者の方にとってファイルとディレクトリの区別が付かないという意味で、 理解が難しくなってしまうでしよう。基本的なシェルコマンドについて、 詳しくは 第7章 シェルの基礎 をお読みください。グラフィカル なファイルマネージャを GNOME や KDE でお使いの場合 (それぞれ 項 「Nautilus を利用したファイルとフォルダの管理」 (第2章 デスクトップでの作業, ↑GNOME ユーザガイド) や 項 「Dolphin ファイルマネージャの使用」 (第2章 デスクトップでの作業, ↑KDE ユーザガイド) をお読みください) は、ファイルと ディレクトリはそれぞれ異なるアイコンで表示されますので、それほど混乱は ないものと思います。

図6.3 KDE ファイルマネージャ内でのファイルとディレクトリ

KDE ファイルマネージャ内でのファイルとディレクトリ

隠しファイル

Windows と同様に、 Linux でも 通常の ファイルと 隠しファイル が存在します。隠しファイルは主に 設定ファイルなどに使用し、一般のユーザからはアクセスする必要のない ものに対して設定します。 Linux では隠しファイルはドットで始まる ファイル (たとえば .hiddenfile) のことを指します。 このような隠しファイルにアクセスするには、 項 「Dolphin ファイルマネージャの使用」 (第2章 デスクトップでの作業, ↑KDE ユーザガイド) に書かれている手順でファイルマネージャのビューを切り替えるか、 もしくは 7.2.2項 「オプション指定を行なうコマンド実行」 に書かれている 手順で特定のコマンドをご利用ください。

ファイルシステムのパーミッション

Linux はマルチユーザ (複数のユーザで共有可能な) システムであるため、 linux ファイルシステムでの各ファイルは、それぞれユーザやグループに属して います。ファイルやディレクトリの所有者 (または root) だけが 他のユーザにアクセスを許可するなどの設定を行なうことができます。 Linux では、基本的に書き込み, 読み込み, 実行の 3 種類のパーミッションを 設定することができます。ファイルやディレクトリにアクセスするには、 少なくとも読み込みの権限が必要です。また、ファイルやディレクトリの パーミッションを変更するには、いくつかの方法があります。シェルから 従来の方法で変更することもできますし、お使いのデスクトップにある ファイルマネージャの機能を利用してもかまいません。 なお、 root の権限があれば、ファイルやディレクトリの所有者や 所属グループの変更を行なうこともできます。シェルからこれらの作業を 行なうには、 7.5項 「ファイルのパーミッション修正」 をお読みください。

また、ファイルシステムのパーミッションについて、詳しくは 6.3項 「ファイルのパーミッション」 をお読みください。以前より 存在しているファイルなどに対するパーミッションに加え、より柔軟な 許可設定を行なうこともできます。詳しくは 第 1 章 Access Control Lists in Linux (↑セキュリティガイド) をお読みください。

6.2.2. ディレクトリ構造

下記の表には、 Linux システムにある最上位のディレクトリのうち、 最も重要なものについて簡単な説明を示しています。また、ディレクトリに関する さらに詳しい情報と、重要なサブディレクトリについては、続く表で説明しています。

表6.1 標準的なディレクトリ構造の概要

ディレクトリ

内容

/

ルートディレクトリと呼ばれるディレクトリです。 ディレクトリのツリー (木) 構造の開始点です。

/bin

システム管理者と一般のユーザの両方が利用する、重要な バイナリファイル (コマンド) 群が含まれるディレクトリです。 通常は bash などのシェルもこの中に含まれます。

/boot

ブートローダで利用するファイルなどが含まれるディレクトリです。

/dev

そのマシン固有のデバイス情報にアクセスするためのディレクトリです。

/etc

そのマシン固有のシステム設定ファイルが含まれるディレクトリです。

/home

このシステムでアカウントを持つ全てのユーザに対して設定する、 ホームディレクトリの開始点です。 root のホームディレクトリ については例外的に /home ではなく /root にホームディレクトリが設定されています。

/lib

重要な共有ライブラリとカーネルモジュールが含まれるディレクトリです。

/media

リムーバブル (取り外し可能な) メディアのマウントポイントです。

/mnt

一時的にファイルシステムにマウントする際に利用するディレクトリです。

/opt

追加のソフトウエアパッケージをインストールするディレクトリです。

/root

スーパーユーザ root のホームディレクトリです。

/sbin

重要なシステムバイナリファイルが含まれるディレクトリです。

/srv

システムが提供する各種サービスのデータを保管するディレクトリです。

/tmp

一時 (テンポラリ) ファイル向けのディレクトリです。

/usr

読み込みのみのデータが含まれる、階層の開始点です。

/var

ログファイルなどの可変データが含まれるディレクトリです。

/windows

システムに Microsoft Windows* と Linux の両方がインストール されている場合にのみ利用できます。 Windows 側のデータに アクセスできるディレクトリです。


また、下記の一覧にはより詳しい情報のほか、それらのディレクトリ内に 存在するファイルやサブディレクトリの例を挙げています:

/bin

root や他のユーザが利用する、基本的なシェルコマンドが含まれています。 このディレクトリに存在するコマンドとしては、 ls, mkdir, cp, mv, rm, rmdir などがあります。 また、 /bin には openSUSE の既定のシェルである bash も含まれています。

/boot

ブートローダやカーネルなどの起動に必要なデータのほか、カーネルが通常の プログラムを起動する前に使用する各種のデータが含まれています。

/dev

ハードウエア部品を表わす、デバイスファイルが含まれています。

/etc

X ウインドウシステムなどのプログラムを操作するのに必要な、各コンピュータ 固有の設定ファイルが含まれています。たとえば /etc/init.d には、起動処理中に実行する各種スクリプト が含まれています。

/home/username

そのシステムにアカウントを持つそれぞれのユーザに対して、各ユーザの個人 データを保持するディレクトリです。このディレクトリ以下にあるファイルは、 そのファイルの所有者かシステム管理者だけが変更することができます。 既定では、電子メールや個人のデスクトップ設定などが隠しファイルや ディレクトリの形で保存されます。 KDE ユーザの場合、デスクトップの 個人設定は .kde4 のディレクトリに、 GNOME ユーザの 場合は .gconf 内にそれぞれ保存されます。 隠しファイルについて、詳しくは 6.2.1項 「主な機能」 をお読みください。

[Note]ネットワーク環境でのホームディレクトリ

ネットワーク環境で作業を行なっている場合、お使いのホームディレクトリは /home 以外のディレクトリに割り当てられている 場合もあります。

/lib

システムを起動したり、ルートファイルシステム内でコマンドを実行したり する際に必要となる、重要な共有ライブラリが含まれています。 共有ライブラリとは、 Windows で言うところの DLL ファイルのことです。

/media

CD-ROM や USB メモリ、デジタルカメラ (USB 接続の場合) など、 リムーバブルメディアに対するマウントポイントです。 /media は、お使いのシステムに内蔵されているハードディスクを除く、全ての ドライブをマウントするための場所です。リムーバブルメディアを挿入したり 接続したりするとマウントされますので、ここからアクセスすることができます。

/mnt

一時的にファイルシステムをマウントしたい場合に利用するマウントポイントです。 このディレクトリに root がマウントを行なう場合もあります。

/opt

サードパーティ製のソフトウエアをインストールするための予約されている領域です。 オプションのソフトウエアや、巨大なアドオンプログラムパッケージが それぞれ配置されます。

/root

root ユーザのホームディレクトリです。 root の個人的な データがここに配置されます。

/sbin

s が示しているとおり、このディレクトリにはスーパーユーザ 向けの各種ユーティリティが含まれています。 /sbin には、 /bin に追加する形で、システムの起動や復元、修復などの 各種バイナリ (実行形式) ファイルが含まれています。

/srv

システムが提供する各種サービス、たとえば FTP や HTTP などに使用する データが含まれています。

/tmp

このディレクトリは任意のプログラムから使用されるディレクトリで、 一時的にファイルを作成する場所として使用しています。

[Important]起動時における /tmp のクリーンアップ

/tmp 内に保存されたデータは、システム再起動が 行なわれると削除される可能性があります。これは /etc/sysconfig/cron などの設定に依存して決まります。

/usr

/usrユーザ の略ではなく、 UNIX system resources (UNIX システムリソース) の略です。 /usr 内にあるデータは Filesystem Hierarchy Standard (FHS) 仕様を満たす様々なコンピュータで共有できるもので、静的な 読み込みだけを行なう目的のファイルが配置されます。 このディレクトリには全てのアプリケーションプログラムが配置され、 ファイルシステム内での第 2 の場所として機能しています。 KDE4 と GNOME についてもこちらに配置されます。 /usr には複数のサブディレクトリが含まれます。それぞれ /usr/bin, /usr/sbin, /usr/local, /usr/share/doc などがあります。

/usr/bin

一般ユーザから利用できるプログラムが含まれます、

/usr/sbin

システム用のデーモンやシステム管理者向けのプログラムなど、 システムの起動について必ずしも必要ではないファイルが含まれます。

/usr/local

システム管理者が、ディストリビューションに依存しない拡張を インストールするためのディレクトリです。

/usr/share/doc

お使いのシステムに対する様々な文書ファイルやリリースノートを 配置するディレクトリです。 manual サブディレクトリ には、このマニュアルのオンライン版が含まれています。また、お使いの システムに複数の言語をインストールしている環境では、このディレクトリに 異なる言語向けの各種マニュアルが含まれています。

また、 packages サブディレクトリには、お使いの システムにインストールされている各種ソフトウエアパッケージの文書が 含まれています。パッケージごとに、下記のようなサブディレクトリが 作成されています: /usr/share/doc/packages/パッケージ名 これらのディレクトリには、パッケージの README ファイルやいくつかのサンプル、 設定ファイルや追加のスクリプトなどが含まれています。

なお、 HOWTO をお使いのシステムにインストールしている場合は、 /usr/share/doc ディレクトリには howto サブディレクトリが存在し、 Linux ソフトウエアでの設定方法や操作方法に 関連した追加の文書が含まれています。

/var

/usr には静的で読み込み専用のデータが保存されている のに比べ、 /var にはシステムが動作している際に 随時書き込まれるファイルが含まれています。たとえばログファイルや スプール (一時保管) データなどが該当します。 /var/log/ ディレクトリにある最も重要なログファイルについて、詳しくは 表9.1「ログファイル」 をお読みください。

/windows

お使いのシステムに Microsoft Windows と Linux の両方がインストール されている場合にのみ利用可能なディレクトリです。お使いのシステム内の Windows パーティション上にある全てのデータが含まれます。この ディレクトリ内に対して書き込みができるかどうかは、 Windows 側で使用している ファイルシステムの種類に依存します。 FAT32 をお使いの場合は、この ディレクトリ内のファイルは自由に読み書きすることができます。 NTFS の場合でも openSUSE には書き込みサポートが付属しているため、 読み込み/書き込みを行なうことができますが、使用しているドライバ NTFS-3g ファイルシステムの仕様により、いくつかの制限があります。 詳しくは 項 「同一のコンピュータにおける異なる OS 上のファイルへのアクセス」 (第34章 ファイルのコピーと共有, ↑リファレンス) をお読みください。.

6.3. ファイルのパーミッション

Linux では一般に、ファイルやディレクトリ、プロセスなどのオブジェクトは、 作成したり起動したりしたユーザに属します。ただしこれにはいくつかの例外 があります。例外について、詳しくは 第 1 章 Access Control Lists in Linux (↑セキュリティガイド) をお読みください。また、ファイルやディレクトリに設定されるグループは、 オブジェクトを作成したときに設定されていた、ユーザのプライマリグループの 値が反映されます。

新しいファイルやディレクトリを作成すると、事前に設定された方針に沿って それらに対する初期状態のパーミッションが設定されます。ファイルや ディレクトリの所有者であれば、これらに対するパーミッションを変更する ことができます。たとえば機密データに対して他のユーザからの読み込みを 禁止したり、グループ内のメンバーに対してアクセスを許したり、他のユーザ に対しても書き込みや読み込み、実行までも許可したりすることができます。 なお、 root からはファイルやディレクトリの所有者を変更することが できます。

6.3.1. ユーザ、グループ、その他のユーザに対するパーミッション

Linux システムでは、各ファイルに対して 3 種類のパーミッションを設定する ことができます。それぞれ所有者、グループ、その他のユーザに対する パーミッションで、その中にはそれぞれ読み込み、書き込み、実行の各許可を 設定することができます。ファイルやディレクトリに対するパーミッションは、 お使いのデスクトップのファイルマネージャから閲覧したり変更したりすること ができるほか、シェルからも同じことを行なえます (7.5項 「ファイルのパーミッション修正」 をお読みください) 。

図6.4 KDE ファイルマネージャにおけるファイルのパーミッション

KDE ファイルマネージャにおけるファイルのパーミッション

下記はシェルから ls -l コマンドを 実行した場合の例です。このコマンドはディレクトリ内にあるファイルや サブディレクトリの一覧を表示するためのコマンドで、各ファイルや ディレクトリの詳細な情報を出力します。

例6.1 ファイルやディレクトリに対するパーミッション

-rw-r----- 1 tux users      0 2006-06-23 16:08 checklist.txt
-rw-r--r-- 1 tux users  53279 2006-06-21 13:16 gnome_quick.xml
-rw-rw---- 1 tux users      0 2006-06-23 16:08 index.htm
-rw-r--r-- 1 tux users  70733 2006-06-21 09:35 kde-start.xml
-rw-r--r-- 1 tux users  47896 2006-06-21 09:46 kde_quick.xml
drwxr-xr-x 2 tux users     48 2006-06-23 16:09 local
-r-xr-xr-x 1 tux users 624398 2006-06-23 15:43 tux.jpg

左から 3 つめの列には、それぞれのファイルやディレクトリが tux ユーザに属しているもの であることが示されています。これらは tux ユーザのプライマリグループである users のグループ に割り当てられています。また、一番左の列にはパーミッションの情報が表示 されています。たとえば kde-start.xml の場合、 下記のような意味になっています:

種類

所有者自身に対するパーミッション

グループに対するパーミッション

その他のユーザに対するパーミッション

-

rw-

r--

r--

一番左の列には、 1 文字目にファイルの種類が書かれていて、残りの 9 文字は それぞれ 3 文字ずつのブロックになっています。この場合、ファイルの種類には ハイフン () が表示されていて、通常のファイルで あることがわかります。ここに d が書かれていれば、それは ディレクトリであることを示しています。たとえば、 例6.1「ファイルやディレクトリに対するパーミッション」 の例では local がそれに該当します。

次に続く 3 つのブロックは、それぞれ所有者、グループ、その他のユーザに 対するパーミッション設定を表わします (左から右に読みます) 。それぞれの ブロックは同じパターンになっていて、 1 文字目が読み込み許可 (r), 2 文字目が書き込み許可 (w), 最後が実行許可 (x) になっています。許可が与えられていない ものについては - が表示されます。この例では、 kde-start.xml の所有者はそのファイルを読み込んで 書き込むことができるが、実行することはできません。 users グループに属しているユーザからは読み込むことだけができて、書き込みや 実行はできません。その他のユーザについても読み込みだけができるような 設定になっています。

6.3.2. ファイルとディレクトリ

パーミッションは、その適用先 (ファイルやディレクトリ) によって、若干意味の 違いがあります。下記にはそれぞれの違いを示しています:

表6.2 ファイルとディレクトリに対するパーミッション

パーミッション

ファイルの場合

ディレクトリの場合

読み込み (r)

対象のユーザはファイルを開いて読み込むことができます。

対象のユーザはそのディレクトリの内容を閲覧することができます。 この許可がないと、ユーザは ls -l コマンドなどでディレクトリ内の一覧を見ることができなくなります。 しかしながら、そのディレクトリに対して実行許可だけが存在した 場合は、ファイル名を直接指定して (もちろんそのユーザがファイルの 存在を知っていれば) アクセスすることはできます。

書き込み (w)

対象のユーザはファイルを変更することができます。データを書き加えたり 一部を取り除いたりすることができるほか、中身の削除を行なうことも できます。しかしながら、この書き込み権限はファイルそのものの削除には 対応していません。そのファイルが存在するディレクトリに対して書き込み 権限を持っていないと、そのディレクトリからのファイル削除を行なう ことができません。

対象のユーザは、そのディレクトリ内にファイルを作成したり、ファイル名 を変更したり、削除したりすることができます。

実行 (x)

対象のユーザは該当のファイルを実行することができます。この許可は プログラムやシェルスクリプトに対して設定するもので、テキストファイル などに設定しても意味はありません。オペレーティングシステムから、 そのファイルを直接実行できるような種類のものであれば、そのファイルを 実行するのに読み込み権限は不要です。しかしながら、シェルスクリプトや Perl のプログラムのように、ファイルの中身を読んで解釈する必要のある ファイルの場合は、読み込み権限が必要です。

対象のユーザはそのディレクトリに移動し、そこでファイルを実行すること ができます。そのディレクトリに対して読み込み権限がない場合は、ファイル の一覧を表示することはできませんが、ファイルの存在を知っていれば それらに直接アクセスすることができます。


なお、特定のファイルに対するアクセスは、ファイル自身に対する適切なパーミッション に 加え 、そのファイルが存在するディレクトリに対しても 適切なパーミッションを設定しておく必要があります。