4.3 アクセス権とセキュリティ

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

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

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

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

% ls -l
total 10615
drwx------  40 t01000tf      512 May  1 01:01 Mail
drwx------   2 t01000tf      512 Apr  1 18:53 WAppNMC
drwx------   2 t01000tf      512 Apr  1 18:53 WDataNMC
drwxrwxrwx   3 t01000tf      512 Apr 19 17:00 Wnn6
-rw-r--r--   1 t01000tf      153 Apr 20 15:30 test
-rw-r--r--   1 t01000tf      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 t01000tf      512 May  1 01:01 Mail
drwx------   2 t01000tf      512 Apr  1 18:53 WAppNMC
drwx------   2 t01000tf      512 Apr  1 18:53 WDataNMC
drwxrwxrwx   3 t01000tf      512 Apr 19 17:00 Wnn6
-rw-r--r--   1 t01000tf      153 Apr 20 15:30 test
-rw-r--r--   1 t01000tf      150 Apr 20 15:39 test2
% chmod go-r test
% ls -l
total 10615
drwx------  40 t01000tf      512 May  1 01:01 Mail
drwx------   2 t01000tf      512 Apr  1 18:53 WAppNMC
drwx------   2 t01000tf      512 Apr  1 18:53 WDataNMC
drwxrwxrwx   3 t01000tf      512 Apr 19 17:00 Wnn6
-rw-------   1 t01000tf      153 Apr 20 15:30 test
-rw-r--r--   1 t01000tf      150 Apr 20 15:39 test2
%

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

CNSGuide8進法によるモード設定

● 練習問題

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

● 宿題

今回の宿題の内容は先生のディレクトリの下のテキストファイルに記述されています.そのファイルのパス名を教えてもらい,自分でそのファイルにアクセスし,宿題を解いてください.