3.5 ファイルのアクセス権

CNS には,学部生,大学院生,卒業生,教職員など7,300人以上のユーザがいます.共同作業をする時はお互いが持っているファイルの内容が参照できると便利なのですが,もし全く自由に他人のファイルの内容を見たり,変更できたりすると,いろいろな問題が起きる可能性があります.そこで,個々のユーザーはファイルやディレクトリごとに,他のユーザからのアクセスを許可したり,禁止したりするアクセス権(access right)を適切に管理する必要があります.アクセス権の管理は,ファイルやディレクトリに対して保護モード(アクセス権モード)を設定する事で行います.

保護モード(アクセス権モード)とは「誰が」,「何を」,「どうする」という組み合わせに対して, 許可か禁止かを決めたものです.「誰が」は,次の3通りがあります.

グループは CNS の管理者によって決められていて,勝手に変更できません.学生はすべて同じグループのメンバになっています.「どうする」にも3通りがあります.

実行とは,通常ファイルの場合はコマンドとして使う,ディレクトリの場合は cd コマンドでそこへ移動する,ということです.「誰が」と「どうする」の組合わせは3×3=9通りあります.「何を」に相当するファイルとディレクトリごとに,この9通りのそれぞれを許可するか,禁止するかが決まっています.現在の保護モードの状態を調べるには,ls コマンドに -l オプションを付けます.

% ls -l
total 10615
drwx------  40 t02000tf  student       512 May  1 01:01 Mail
drwx------   2 t02000tf  student       512 Apr  1 18:53 WAppNMC
drwx------   2 t02000tf  student       512 Apr  1 18:53 WDataNMC
drwxrwxrwx   3 t02000tf  student       512 Apr 19 17:00 Wnn6
-rw-r--r--   1 t02000tf  student       153 Apr 20 15:30 test
-rw-r--r--   1 t02000tf  student       150 Apr 20 15:39 test2
%

ファイルに関するいろいろな情報が表示されますが,一番左側にあるのが,種別と保護モードです.最初の文字は種別で,普通のファイルは「-」,ディレクトリは「d」です.次の9文字は3文字ずつ組になっていて,それぞれ u, g, o の r, w, x が許可されているかを示します.「r」,「w」,「x」は許可,「-」は禁止を示します.

標準設定では,新しく作ったファイルは rw-r--r--,ディレクトリは rwxr-xr-x になりますので,他のユーザは変更はできませんが,内容を見ることはできます.Mail (メールを保存するディレクトリ)は,プライバシーの問題がありますので,rwx------ になっています.

保護モードの変更

ファイルの保護モードを変更するには chmod というコマンドを使います.chmod コマンドの最初の引数で,どのように変更するかを指定します.「誰が」(u,g,o)と「どうする」(r,w,x)を「+」または「-」でつなぎます.「+」は許可する,「-」は禁止するということです.2番目の引数で変更したいファイル名またディレクトリ名を指定します.

例えば test というファイルを自分以外の人が読むことができないようにしたいときは, chmod go-r test と入力します.

% ls -l
total 10615
drwx------  40 t02000tf  student       512 May  1 01:01 Mail
drwx------   2 t02000tf  student       512 Apr  1 18:53 WAppNMC
drwx------   2 t02000tf  student       512 Apr  1 18:53 WDataNMC
drwxrwxrwx   3 t02000tf  student       512 Apr 19 17:00 Wnn6
-rw-r--r--   1 t02000tf  student       153 Apr 20 15:30 test
-rw-r--r--   1 t02000tf  student       150 Apr 20 15:39 test2
% chmod go-r test
% ls -l
total 10615
drwx------  40 t02000tf  student       512 May  1 01:01 Mail
drwx------   2 t02000tf  student       512 Apr  1 18:53 WAppNMC
drwx------   2 t02000tf  student       512 Apr  1 18:53 WDataNMC
drwxrwxrwx   3 t02000tf  student       512 Apr 19 17:00 Wnn6
-rw-------   1 t02000tf  student       153 Apr 20 15:30 test
-rw-r--r--   1 t02000tf  student       150 Apr 20 15:39 test2
%

chmod コマンドを使った保護モードの変更のやりかたはもう一通りあります.最初の引数である保護モードの指定を3桁の数字の組み合わせで表わすことができます.


● 練習問題

隣の人と組みになり以下のことをやってみましょう.
  1. 自分の作ったファイルの中から一つ(たとえば test)を選んで,その保護モードを自分以外の人が内容を見られない(rw-------)ようにしなさい.
  2. 隣の人の rw------- のテキストファイルの内容を more コマンドで見てみなさい.
  3. 隣の人の rw-r--r-- のテキストファイルの内容を emacs で編集してみなさい.
  4. 隣の人の rwx------ のディレクトリの内容を ls コマンドで表示してみなさい.

● 宿題

今週の宿題の内容は,以下のファイルの中に書かれています.各自今日学習したコマンドを駆使してこのファイルにアクセスして宿題を解いてください.

/pub/sfc/ipl/cvs/info-2002-4/03/homework