次のページ 前のページ 目次へ

8. 高度な話題

この章は少し手ごわい内容にふれます。ここで述べる特徴を学べば、 「 Linux について何かを知り得た」と言えると思いますよ。

8.1 パーミッションと所有権

ファイルとディレクトリには、VMS と同じようにパーミッション(保護)と所有権が 存在します。許可されていなければ、プログラムを走らせたり、ファイルを 修正したり、あるいはディレクトリにアクセスすることもできません。ファイル があなたの権限下にないからです。つぎの例を見てみましょう。

$ ls -l /bin/ls
-rwxr-xr-x   1 root     bin         27281 Aug 15  1995 /bin/ls*

最初のフィールドは、ファイル ls のパーミッションを表示しています(オーナは root でグループは bin)。所有権には オーナ (owner) 、グループ (group) 、その他 (other) の3種類があります (VMS の owner,group,world に似てますね)。 パーミッションには 読み取り許可 (read) 、書き込み許可 (write 、削除許可も含む)、 実行許可 (execute) の3種類があります。

左から右に見ていきましょう。- はファイルの種類です( - は一般ファ イル、d はディレクトリ、l はリンク等を示します)。 rwx はファイルの所有者に対するパーミッション( read, write, execute )で す。次の r-x はファイル所有者の属するグループに対するパーミッション(read, execute) で、最後の r-x はそれ以外のユーザに対するパーミッションを(read, execute)を表しています。

ファイルのパーミッションを変更するには、

$ chmod <whoXperm> <file>

とし、who には u (user、オーナのこと)、g (group) あるいは o (other) を指定し、X には +- のどちらかを指定します。また、 perm には r (read), w (write), あるいは x (execute) を指 定します。例えば、

$ chmod u+x file

は、ファイルの所有者に実行許可を与えるもので 、chmod +x file と短縮できます。

$ chmod go-wx file

これは、ファイルの所有者以外から書き込み許可と実行許可を取り消します。

$ chmod ugo+rwx file

これは全てのユーザに読み込み許可、書き込み許可、実行許可を与えています。

パーミッションは、短縮して数字で示すことがあります。rwxr-xr-x は手っ取り早く、755 と指定できます(各文字はビットに対応します。--- は0、--x は 1、-w- は 2 などのように)。

ディレクトリに対する rx は、 cd を使ってそのディレクトリに移 動できることを意味し、w はディレクトリ内のファイルの削除(もちろん、 ファイルのパーミッションに従いますが)や、そのディレクトリ自体を削除できることを意味します。これらのことは、ほんの一部です - RMP。

ファイルの所有者を変更するには:

$ chown username file

要約すれば、次の表になります。

VMS                             Linux                   Notes
------------------------------------------------------------------------------

SET PROT=(O:RW) file.txt        $ chmod u+rw file.txt
                                $ chmod 600 file.txt
SET PROT=(O:RWED,W) file        $ chmod u+rwx file
                                $ chmod 700 file
SET PROT=(O:RWED,W:RE) file     $ chmod 755 file
SET PROT=(O:RW,G:RW,W) file     $ chmod 660 file
SET FILE/OWNER_UIC=JOE file     $ chown joe file
SET DIR/OWNER_UIC=JOE [.dir]    $ chown joe dir/

8.2 マルチタスク:プロセスとジョブ

プログラムの実行についてさらに説明しましょう。これまで使ってきた「バッチキュー」は Linux には存在せず、違った方法で扱われます。再び、典型的なコマンドラインを示します。

$ command -s1 -s2 ... -sn par1 par2 ... parn < input > output &

-s1, ..., -sn はプログラムスイッチで、par1, ..., parn はプログラムに渡される引数です。

マルチタスク処理がどのように働くか見ていきましょう。フォアグランドやバッ クグランドで動くプログラムを「プロセス」と呼びます。

付け加えると、シェルはプロセスの終了や一時停止、また、プロセスをバックグ ランドへ移したり、フォアグランドへ戻したりすることができます。このような 環境下で、プロセスを「ジョブ」と呼びます。

8.3 再度、ファイルについて

ファイルについてのさらに詳しい情報です。

8.4 プリンターキュー

VMS でもそうだったように、印刷要求はキューイングされます。プリントコマン ドを発行する場合、プリンタ名を指定しても構いません。例:

$ lpr file.txt          # this goes to the standard printer
$ lpr -Plaser file.ps   # this goes to the printer named 'laser'

プリンタキューを扱うために、次のようなコマンドがあります。


VMS                                     Linux
------------------------------------------------------------------------------

$ PRINT file.ps                         $ lpr file.ps
$ PRINT/QUEUE=laser file.ps             $ lpr -Plaser file.ps
$ SHOW QUEUE                            $ lpq
$ SHOW QUEUE/QUEUE=laser                $ lpq -Plaser
$ STOP/QUEUE                            $ lprm <item>


次のページ 前のページ 目次へ