目次索引著者紹介

第2章

 インターネット3種の神器の基本操作――4の3

端末ソフトウェア―Unix入門

藤田信之

 MacintoshやWindowsが普及した今日でも,ネットワークの世界がUnix計算機を中心として動いている状況には変わりがない.普段NetscapeやEudoraだけを使っている人は,裏で動いているUnix計算機を意識することは少ないが,それでも一歩踏み込んだ使い方をしようと思えば,多少ともUnixについての知識が必要となる.そこで,そのような人を対象として,Unixのごく初歩を解説することにする.なおここでは,telnetを使ってすでに環境の整備されたUnix計算機にアクセスすることを前提として話を進める.不幸にしてUnix計算機の管理を任された人は,より専門的な書籍を参照していただきたい.

1.されどUnix

 一般のユーザがUnix計算機を利用するケースとしては,次のような場合が考えられる.

(1)電子メールの読み書き
 最近では学会会場などでもネットワーク端末が置かれていることがあるし,出張の際など,先方の端末を借りて自分のメールアカウントにアクセスするケースも考えられる.中にはフロッピーディスクにEudoraの環境をインストールして持ち歩いている人もいるが,一般的には,telnetを使って自分のメールサーバにアクセスすることになる.これならば,端末の種類(Macintosh,Windows,ワークステーション,X端末)によらず同じ要領でメールの読み書きができるという利点もある.普段はEudoraを使っている人でも,Unixのmailコマンドを使ったメールの読み書きを覚えておいて損はないだろう.

(2)一般的なUnixコマンドの利用
 MacintoshやWindowsのGUI環境も便利なものではあるが,ことテキストファイルの扱いに関して言えば,Unixに優るものはない.テキストを加工するためのさまざまなコマンド(grep,sortなど)が標準で準備されているのがUnixの最大の特徴と言っても過言ではないだろう.また多少なりともプログラミングの素養がある人ならば,シェルスクリプトやperlを使ってより能率的に作業を進めることができる.

(3)Unix上の解析プログラムなどの利用
 例えば,ホモロジー検索,配列データベースの検索,マルチプルアラインメント,立体構造解析など,大きなデータベースを対象にしたり,膨大な計算量を必要とする解析には,Unix計算機が威力を発揮する.これらも最近ではネットワークを介したもの(メールサーバやWWWのフォームを利用したもの)が主流になりつつあるが,直接Unix上のコマンドを操作する方が効率的な場合もある.GCGに代表されるようにメニュー形式で利用できるものが増えているため,ことさらUnixの知識を必要としない場合もあるが,データの管理や出力の二次加工まで含めて考えると,やはり最低限のUnixの知識は必要である.

(4)ホームページの開設
 MacintoshでWWWサーバを運用することも可能だが,システムの安定稼動,処理スピード,CGIスクリプトの利用などを考えると,Unix上にホームページを持つ方が何かと都合がよい.民間のプロバイダを利用する場合など,ftpでHTMLファイルを転送するだけでも最低限の用は果たせるが,Unixのシェルアカウントを取得すれば,CGIなどを駆使したより高度な利用が可能になる.

2.ログインとログアウト

 Unix計算機を使うためには,その計算機にユーザ登録をしておく必要がある.登録が完了すると,ユーザIDとパスワードが与えられるので,それを使ってUnix計算機に接続する.接続するための手順をログインと言う.接続を終了するための手続きはログアウトと言う.下に示すのは,国立遺伝学研究所のantigenという計算機にnfujitaというユーザがログインするところを示している.なお,以下の説明で,アンダーラインはユーザがキーボードから入力する部分を示し,[CR]は「return」キーを押すことを意味する.MacintoshやWindowsとは異なり,ほとんどのキー入力は最後に「return」キーを押すことによって初めて有効になるという点に注意が必要だ.
 __________________________________________________________________________
  SunOS UNIX (antigen)
  
  login: nfujita[CR]                     ←  ユーザIDを入力する
  Password:XXXXXXX[CR]                   ←  パスワードを入力する
  Last login: Mon May 13 17:50:16 from labmolg-17
  SunOS Release 4.1.3-JLE1.1.3 (GENERIC) #1: Tue Aug 4 19:16:17 JST 1992
  You have new mail.
  
  TERM = (vt100)[CR]                     ←  端末形式を入力する
  
  % mail[CR]                             ←  必要な作業を行う
 __________________________________________________________________________
 この例のように,ユーザID,パスワードを順に入力する.パスワードを入力する際には,入力した文字は画面には表示されない.ホスト側の設定や接続経路によっては,パスワードの後に端末形式を聞いてくることがある.NCSA−Telnetなどの主な端末ソフトウェアにはVT100という端末をエミュレートするモードが備わっているので,あらかじめこのモードに設定しておく.一方のホストの方は標準でVT100形式の端末を仮定しているところがほとんどなので,端末形式の問い合わせに対しては単に「return」キーだけを入力すればよい.
 ログインの手続きが完了すると,通常「%」という記号が現れる.これをプロンプトと言い,Unixがコマンドを受け付けるモードにあることを示している.プロンプトに続けて必要なコマンド(mailなど)を入力する.必要な作業が終了したら,最後に,
 % logout[CR]
と入力してUnixとの接続を切る.

3.Unixのファイルシステム

 Macintoshでは,ハードディスクのアイコンを開くとシステムフォルダやアプリケーションフォルダがあり,さらにシステムフォルダの中にはフォントフォルダや機能拡張フォルダがあり,という具合にいろいろなファイルを階層化して管理するようになっている.同じことはUnixでも行われている(図1).ただし,Macintoshのフォルダに相当するものをUnixやWindowsではディレクトリと呼んでいる.

 図1 Unixのファイルシステムの一例

 Unix計算機の多くは多人数で利用することを前提としているため,それぞれのユーザが自由に利用できるディレクトリは限られている.これをホームディレクトリと言い,ログインした時には自動的にそのディレクトリに入るようになっている.ホームディレクトリの下にさらにディレクトリ(サブディレクトリ)を作ることはユーザの自由である.自分なりにサブディレクトリを作ってデータを管理するとよいだろう.ただしメールの読み書きに使う程度であれば,ホームディレクトリ以外は特に意識する必要はない.
 一番もとになるディレクトリはルート(root)と呼ばれ,「/」という1文字で表現される.Windowsではルート(「\」で表現される)の前に装置名を表すA:やC:が付くが,Unixではディスク装置やその他の入出力装置も含めてすべてが単一のルートのもとに置かれる点が異なる.あるファイルやディレクトリへの道すじ(パス)を表すには,ルートからそこに至るまでのディレクトリ名とファイル名を順に「/」で区切って表現する.これを絶対パス指定という.例えば,図1の中のportrait.gifというファイルを絶対パスで表現すると</home/watashi/images/portrait.gif>となる.一方,現在いる場所(カレントディレクトリ)を基準として,他のディレクトリやファイルを指定することもできる.これを相対パス指定という.その際,1つ上位のディレクトリを表すために「..」という表現を使う.例えば,図1でindex.htmlの中からportrait.gifを参照するには<../images/portrait.gif>という相対パスを用いることができる.
 ディレクトリの内容を表示するにはlsというコマンドを用いる.次のような要領で使用する.ディレクトリ名を省略した場合はカレントディレクトリが対象となる.

 % ls[CR]	    カレントディレクトリのファイル一覧を表示
 % ls -l[CR	    上と同じだが,日付やサイズなどの情報も一緒に表示
 % ls *.html[CR]	名前が「.html」で終わるものだけを表示
 % ls sub[CR]	    相対パスによるディレクトリの指定
 % ls /dir1/dir2[CR]	絶対パスによるディレクトリの指定

4.コマンド入出力の制御

 UnixにもGUIを駆使した大がかりなアプリケーションはあるが,telnetを通して利用する際は,シェルと呼ばれる文字ベースのインターフェースを用いることになる.シェルの上では,小さな(単機能の)コマンドをいかに組み合わせて目的を達成するか,がポイントになる.Unixにおいてコマンドの柔軟な組み合わせを可能にしているしくみについて見てみよう.
 Unixにはテキストデータを扱うためのコマンドがたくさんあるが,その多くは, という働きをする.この種のコマンドをフィルタと呼ぶ.標準入力,標準出力とも普通は端末(つまりキーボードとスクリーン)に結び付けられているが,仮想的なものであるため,必要に応じて柔軟に切り換えることができる.
 入出力を標準以外(例えばディスクファイル)に切り換えることをリダイレクションと言い,次の3種類の記号を使って表現される.
 >   この記号に続くファイル(または装置)に出力を切り換える
 >>  上と同じだが,ディスクファイルに対しては追加モードで出力される
 <   この記号に続くファイル(または装置)に入力を切り換える
 例えば,catというコマンドは普通,
 % cat file_name[CR]
のようにテキストファイルの内容を画面に表示するために用いられるが,ファイル名を省略すると標準入力が仮定される.つまり,
 % cat[CR]
とすると,それ以降端末のキーボード(標準入力)から入力した文字がそのまま画面(標準出力)に表示される(終了するにはファイルの終わりの印であるcontrol-Dを入力する).その際,出力のリダイレクションを使って,
 % cat > file_name[CR]
としておくと,キーボードからの入力がそのまま「file_name」というファイルに記録されるようになる.この使い方は,実際に数行程度のファイルを作成するときに役に立つ.また,入力と出力をともにファイルにリダイレクトして,
 % cat < file_name_1 > file_name_2[CR]
とすると(最初の「<」は省略してもよい),「file_name_1」の内容がそのまま「file_name_2」にコピーされる.このように,cat自身は非常に単純なコマンドだが,入出力を柔軟に切り換えることによって,多彩な使い方が可能になる.
 コマンドの出力をファイルにリダイレクトする代わりに,そのまま他のコマンドの標準入力に結び付けることができる.これをパイプと言い,「|」という記号で表現する.例えば,
 % command1 < input_file > temp_file_1[CR]
 % command2 < temp_file_1 > temp_file_2[CR]
 % command3 < temp_file_2 > output_file[CR]
という3行のコマンドは,パイプを使うと,
 % command1 < input_file | command2 | command3 > output_file[CR]
の1行で表現することができる.表現が単純化されるだけでなく,無駄な中間ファイルを作らずに済む,3つのコマンドが同時に実行されるため速い,などのメリットもある.

5.たかがUnix

 普段MacintoshやWindowsのGUI環境に慣れている人には,telnetを通して見たUnixは,全く異次元の世界に映るかもしれない.呪文のようなコマンドに尻込みをする人がいるかもしれないが,すでに出てきた2つのコマンド(lsとcat)だけを覚えておけば,とりあえず不自由はしない.まずはできるところから始めることである.それ以外の主なコマンドと代表的な使い方を以下に示す.必要に応じて参照していただきたい.
[cp:ファイルのコピー]
 % cp file_1 file_2[CR]	file_1を同じディレクトリ内にfile_2という名前でコピー
 % cp file directory[CR]	fileをdirectoryという名前のディレクトリにコピー

[rm:ファイルの削除]
 % rm file_1 file_2[CR]	指定したファイルを削除
 % rm -r directory[CR]	指定したディレクトリ以下をすべて削除

[mv:ファイルの移動,ファイル名の変更]
 % mv file_1 file_2[CR]	file_1をfile_2という名前に変更
 % mv file directory[CR]	fileをdirectoryという名前のディレクトリに移動

[mkdir:ディレクトリの作成]
 % mkdir directory[CR]	directoryという名前のサブディレクトリを作成

[rmdir:ディレクトリの削除]
 % rmdir directory[CR]	directoryという名前のディレクトリを削除
	ただしディレクトリは空である必要がある

[cd:ディレクトリ間の移動]
 % cd directory[CR]	directoryという名前のサブディレクトリに移動
 % cd /dir1/dir2/dir3[CR]	絶対パスによる移動先の指定
 % cd ..[CR]	1つ上のディレクトリに移動
 % cd[CR]	ホームディレクトリに戻る

[pwd:カレントディレクトリの表示]
 % pwd[CR]	カレントディレクトリを絶対パスで表示

[more:ページ制御付きの画面出力(同様のコマンドにpg,lessなどがある)]
 % ls -l | more[CR]	lsコマンドの結果をページ制御付きで出力

6.Unix上でのファイル編集

 HTMLファイルの書式を変更する際など,Unix上でちょっとしたファイルの編集ができると便利である.Unixにある程度慣れてきたら,Unix上でのファイル編集にも挑戦してみよう.ここではviというエディタを取り上げる.viはすべてのUnixに標準で含まれているので,これさえ覚えておけばどのUnix計算機に入っても困らない.
 viには編集モードと入力モードの2つのモードがある.困ったことに,今どちらのモードにいるかは画面上のどこにも表示されない.初心者が一番つまずきやすい点だ.
 % vi file_name[CR]
としてviを起動すると,まず編集モードになる.file_nameがすでにあるファイルならその先頭部分が画面に表示される.この状態で使用できる基本的なコマンドとしては次のものがある.
 j	            1行下へカーソルを移動
 k	            1行上へカーソルを移動
 h	            1文字左へカーソルを移動
 l	            1文字右へカーソルを移動
 /文字列[CR]	  文字列を検索してその位置にカーソルを移動
 i	            入力モードへ移行(カーソルの位置から入力を開始)
 a	            入力モードへ移行(カーソルの右隣の位置から入力を開始)
 x	            カーソルのある1文字を消去
 10x	          カーソルのある文字以降10文字を消去
 dd	          カーソルのある1行を消去
 10dd	          カーソルのある行以降10行を消去
 :wq[CR]	   編集したファイルを書き込んで終了
 :q![CR]	  編集したファイルを放棄して終了
 小文字の「i」または「a」のキーを押すと入力モードになる.このモードではキーボードから打ち込んだ文字がそのまま画面に表示される.間違って入力した文字は「delete」キーで消去できる.また「return」キーを押せば画面上でも改行が行われる.ただし,入力モードではカーソルを移動させるということができない.カーソルを移動させたければ,一旦編集モードに戻る必要がある.入力モードから編集モードに戻るには「esc」キーを押す.もう一度繰り返そう.viには2つのモードがあり,モード間の移動は,
 aまたはi	(編集モードから入力モードへ)
 esc (入力モードから編集モードへ)
で行うことができる.もし,自分がどちらのモードにいるのかわからなくなったら(実際わからなくなることがよくある),ためらわずに「esc」キーを押そう.もし入力モードにいたのなら編集モードに戻るし,もし編集モードにいたのならビープ音で知らせてくれる.いずれにせよ,「esc」キーを押した直後は必ず編集モードにいることになる.

7.電子メールの読み書き

 電子メールの送受信にEudoraが使えない場合は,Unix計算機にログインして,Unixのmailコマンドを使う.簡単に説明しよう.

(1)メールを送る
 メールを送るには,次のようにパラメータとして相手アドレスを指定してmailコマンドを起動する.

 % mail nfujita@lab.nig.ac.jp[CR]
 複数のアドレスをスペースで区切って並べることもできる.例えば,
 % mail address_1 address_2 address_3[CR]
とすれば,これから入力するメールが3つのアドレスに同時に配送される.
 次に,「Subject:」と表示されるので,それに続けてメールの標題を入力する.省略して「return」キーだけを入力しても構わないが,なるべくメールの内容を簡潔に表す語句を書いておくようにしよう.
 次にメールの本文を入力するわけだが,それにはいくつかの方法がある.すなわち,  (a)については説明の必要はないだろう.そのままでは「delete」キーを使うくらいしか編集の手だてがないが,新しい行の先頭で,
 ~v[CR]
とすれば,一時的にviエディタを呼び出すことができる.すでに入力された行があれば自動的にエディタに読み込まれる.編集後エディタを終了すると呼び出す前の状態に戻る.(b)はアプリケーション間のコピー&ペーストまたは端末ソフトの「テキスト送信」の機能を使って,あらかじめ準備しておいた文章をカーソル位置に流し込めばよい.(c)は新しい行の先頭で,
 ~r file_name[CR]
と入力することにより,Unix上のファイル「file_name」がカーソルの位置に挿入される.以上3つの方法を組み合わせることもできる.メールの入力にいずれの方法を用いるにせよ,最後にメール文の終わりをmailコマンドに教えてやる必要がある.新しい行の先頭で「control-D」を入力するか,または,
 .[CR]  と入力する.これでメールの発送は完了する.
(2)メールを読む
 自分宛のメールが届いていると,ログインした時に「You have new mail.」というメッセージが表示される.メールを読むには,mailコマンドをパラメータなしで起動する.すると,メールの番号,差出人,配達時刻,サイズ,標題などの一覧が表示される.
 >N 1 Sanzo Miyazawa	Mon May 20 20:39  74/3133  Re: SINET kokusai-link pa
 >N 2 INET Ugawa 00251	Mon May 20 23:24  62/2347  [INET] 1-4-3 Q Stream * 2
 >N 3 LSD 02334 Take	Mon May 20 23:25  47/2371  [LSD] H.8 Database budget
 >N 4 Eric Muehling	Tue May 21 04:03  89/3590  [MacPerl] Path divide
 >N 5 uncover@csi.carl.org	Tue May 21 06:19 255/8124  UnCover Reveal - Molecula
 >?
最後に?マークが表示されるが,これはmailコマンドのプロンプトで,これに続けていろいろなサブコマンドを入力する.メールを読むには,?に続けて読みたいメールの番号を入力し「return」キーを押せばよい.メール文が1ページに納まらない場合は1ページごとに表示が停止するので,再び?が現れるまで,スペースキー(システムによっては「return」キー)を押してページを進める.さらに別のメールを読むには,?に続けて別の番号を入力する.番号以外に指定できるサブコマンドの主なものをあげると,
 ? n[CR]	    次のメールを読む
 ? s 1 file_name[CR]	1番目のメールを"file_name"というファイルに保存する
 ? d 1[CR]	    1番目のメールを削除する
 ? q[CR]	    すでに読んだメールを保存してmailコマンドを終了する
 ? x[CR]	    メールをそのままにしてmailコマンドを終了する
終了するためのコマンドには「q」と「x」がある.「q」を使えば,一度読んだメールは各自のホームディレクトリのmboxというファイルに保存した上でリストからは削除されるので,同じメールを何度も読まずに済む.過去の記録をさかのぼりたければ,
 % mail -f mbox[CR]
としてmailコマンドを起動すれば,mboxに保存されているメールを閲覧することができる.

(3)メールの自動転送
 Unixでは,あるアドレスに届けられたメールを自動的に他のアドレスに転送することができるので,この機能を使って複数のアドレスを一元的に管理することができる.また長期の出張の際など,出先のアドレスに自動転送するように設定しておいてもよいだろう.
 メールを自動的に転送させるには,自分のホームディレクトリに「.forward」という名前のファイルを作り,その中に転送先のアドレスを書いておくだけでよい.「.」で始まるファイルは通常lsコマンドでは表示されないが,-aオプションを付ければ,その存在を確認することができる.システムによっては,vacationというUnixコマンドを使って,メールの発信者に「不在通知」などのメッセージを返すことができる.ただし,間違ってメーリングリストからのメールに対して自動応答すると,無限ループに陥ってしまう危険性がある.メーリングリストに加入している人は使用すべきではない.

8.文字コードの変換

 MacintoshやWindowsでは日本語を表示するためにshift−JISというコード体系が使われているが,UnixではEUCを内部コードとするのが一般的である.一方,ネットワーク上で日本語を含む文書をやり取りするためには,透過性の点からJIS(7ビットJIS)コードを使うことが以前から推奨されている.同じ理由でHTMLファイルもJISコードで書かれていることが多い.shift−JIS(またはEUC)とJISとの間の変換はメールシステムやWWWブラウザが自動的に行ってくれることが多いので,一般のユーザが直接JIS コードに触れることは少ない.しかし,パソコンで作成した文書をUnixに転送したり,逆にUnix上の文書をftpで取ってきた場合などに,shift−JISとEUCの間で文字コードを変換する必要がしばしば生じる.
 Unix上で文字コードの変換を行うために,たいていのシステムではnkfというコマンドが準備されている.nkfは入力データの文字コードを自動的に判別してくれるので,コマンドオプションとして出力コードを指定するだけでよい.
 % nkf -e input_file > output_file[CR]	EUCコードへの変換
 % nkf -s input_file > output_file[CR]	shift-JISコードへの変換
 % nkf -j input_file > output_file[CR]	JISコードへの変換
 また,パイプの下段に置いて次のように使うこともできる.端末ソフトがEUCコードをサポートしていない場合(つまり端末側でEUCからshift−JISへの自動変換ができない場合)などに便利だろう.
 % mail | nkf -s[CR]	mailコマンドの出力を逐次shift−JISに変換
 文字コードの変換はパソコン上で行うこともできる.フリーウェアの変換ツールがいくつかあるのでそれを利用するとよいだろう.筆者はMacintosh上ではドラッグ&ドロップで使用できるJCONV−DD(Nat Sakimura氏作のdonation−ware)を愛用している.
 文字コードに関して,もう1つやっかいなことがある.テキストの改行を行うためのコードが,Macintosh(CR),Windows(CR+LF),Unix(LF)でそれぞれ異なっている点だ.文書をエディタなどで開いた時に,まったく改行されずに続けて表示されたり,行の先頭におかしな文字(俗にトーフと呼ぶ)が表示されたりするのがそれだ.Fetchなどのftpツールを使ってテキストモードで転送を行う場合や,Netscapeの「Save as..」コマンドでテキストを取得する場合などは,転送時に改行コードの違いを吸収してくれるので,改行コードの違いが問題になることは少ない.しかし,圧縮ファイルの中にテキストが含まれている場合や,MacintoshとWindowsとの間でフロッピーディスクでデータを交換する場合などに,自分で改行コードを変換する必要が生じる.前述のJCONV−DDは改行コードを変換する機能も持っている.また,ワープロやエディタの中には改行コードを自動的に変換してくれるものがあるので,それを利用してもよいだろう.特に(株)まつもとがMacintosh用に開発しフリーウェアとして配布しているJeditは,改行コードのみならず日本語コードも自動的に変換することができる.また,保存時に日本語コード,改行コードを指定することもできるので,MacintoshとUnixの環境を頻繁に行き来する人には便利だろう(第4章p221参照)
 見落とされがちであるが,NCSA−Telnetなどの端末ソフト自身が,改行コードや日本語コードを自動的に変換する機能を持っている.NCSA−Telnetを使って,日本語ファイルの編集やメールの読み書きが問題なくできるのはこのおかげである.これを利用すれば,もっと簡単に,改行コードや日本語コードの違いに煩わされることなくテキストの転送を行うことができる.Unix上のファイルをパソコンに取り込むには,Unix上で
 % cat file_name[CR]
としてファイルの内容を画面に表示させ,後で必要な部分だけをコピー&ペーストでエディタなどに取り込めばよい.NCSA−Telnetであれば,「Session」メニューの中のCapture Session to Fileをチェックしておけば,画面表示されたものがすべてファイルに残るので,後でそのファイルを編集してもよい.
 逆に,パソコンからUnixにファイルを転送するには,Unix上でまず,
 % cat > file_name[CR]
を実行する.それ以降に端末から送られたデータはそのまま「file_name」という名前のファイルに取り込まれるので,コピー&ペーストなどの手段を使って必要なファイルを流し込めばよい.最後に「control-D」を入力すれば,catコマンドが終了し,再びプロンプトが現れる.

9.ファイルの保護

 多人数で使用するUnixでは,データの保護についても気を配る必要がある.パスワードの管理を徹底するのは勿論だが,自分のホームディレクトリ以下に置かれたデータについても,不用意な取扱いをすると,他のユーザからのアクセスを許してしまうことになる.データを覗き見されるだけならまだしも,勝手に消去されたり改竄される可能性もゼロではないことを肝に銘じておくべきである.幸いUnixでは,個々のファイルあるいはディレクトリについて,アクセス権を細かく設定することができる.
 下はlsコマンドを-lオプション付きで実行した結果である.
 -rw-------  1 nfujita  183315 Jul  7 09:00 mbox
 -rw-r--r--  1 nfujita     228 Jul  7 09:12 temporal
 drwxr-xr-x  8 nfujita     512 Jun 18 17:45 project-a/
 drwx--x--x 10 nfujita     512 Jul  2 12:41 project-b/
 このうち左端に表示されている10個の文字は,ファイルもしくはディレクトリの属性を表している.10個の文字はそれぞれ以下の意味を持っている.
 drwxrwxrwx
 ^	←  ディレクトリかどうか
  ^^^	←  user(ユーザ自身)の権限
     ^^^	←  group(同じグループの人)の権限
        ^^^	←  others(その他のユーザ)の権限
最初の文字がdの場合は,それがファイルではなくディレクトリであることを表している.それに続く3つの文字はユーザ自身の権限を表しており,左から順に読み取りの許可(r)または禁止(-),書き込み・変更の許可(w)または禁止(-),実行(ディレクトリの場合は移動)の許可(x)または禁止(-)の意味である.さらに,同一グループのユーザおよびその他のユーザの権限が同じ要領で記載されている.
 属性を変更するにはchmodコマンドを使う.パラメータの指定には,上の10個の文字を2進数に見立てて数字で指定する方法と,user(u),group(g),others(o)それぞれに対する許可(+)または禁止(-)を個別に文字式で指定する方法がある.直感的に理解しやすい後者の例をいくつかあげておく.
 % chmod g+w file_name[CR]	同じグループの人に対して書き込みを許可する
 % chmod u+x file_name[CR]	ユーザ自身に対して実行(移動)を許可する
 % chmod go-rw file_name[CR]	同じグループおよびその他の人(すなわちユーザ以外の全員)に対して読み書きを禁止する