SFC CNS GUIDE 2004

4.11 保護モード -- (chmod)

CNS には6000人以上のユーザがいます. 制限なく他人のファイルの内容を見たり, 変更できたりすると, いろいろな問題が起きる可能性があります. そこで個々のユーザはファイルやディレクトリごとに, 他のユーザからのアクセスを許可するか, 禁止するかなどを設定する必要が出てきます. すべてのファイルやディレクトリは ``保護モード'' を設定することで, 操作できるユーザを制限できます. ユーザは所有するファイルやディレクトリについて, 保護モードを設定することで他のユーザからの参照や書き込み, 実行を禁止できます. 保護モードは,``アクセス権'' や ``パーミッション'' ともいいます. 次に保護モードの概要と, その設定方法を説明します.

4.11.1 保護モードの設定

ファイルの保護モードには, それぞれのファイルやディレクトリごとに, 操作権限を持つユーザと操作権限が設定されています.

4.11.1.1 アクセスの対象ユーザ

保護モードは対象となるユーザによって次の3種類が設定されています. ただし,CNS の学生ユーザはすべて同じグループ(student)に所属しています.

それぞれの対象によって保護モードを区別して設定できます.

4.11.1.2 操作権限

操作権限には 読み出し, 書き込み, 実行 の3つがあります. 設定の効果は対象がファイルである場合と ディレクトリである場合によって異なります.

4.11.2 保護モードの調べ方 -- (ls -l)

ファイルやディレクトリの保護モードを調べるには, lsコマンドに-lオプションを指定して実行します.

% ls -l <ENTER>
total 5
drwx------ 32 t00000tf  student  1024  11 24 10:55 Mail
-rw-rw-rw-  1 t00000tf  student  4515  11 18 10:42 READHELP
drwxrwxr-x  4 t00000tf  student   512  11 18 11:12 Wnn
lrwxrwxrwx  1 t00000tf  student    23  10  4 21:38 media -> /home/archives/t00000tf
-rw-r--r--  1 t00000tf  student   177  11 24 14:43 memo
drwxr-xr-x  2 t00000tf  student   512   7 20 09:57 public_html
% _

保護モードの状態を表すのは,もっとも左側の列です. 最初の文字は,ファイルの種類を表し, `-' は通常のファイル, `d' はディレクトリ, `l' はリンク を示しています. 残りの部分は,3文字ずつの3つのフィールドで構成されています. 最初の3文字はファイルの所有者の操作権限を示し, 次の3文字は同じグループに所属するユーザの操作権限, 最後の3文字はその他のユーザの操作権限を表しています. 操作を許可されていれば,許可されている操作の頭文字 (`r',`w',`x') が表示され, 許可されていなければ `-' が表示されます.

メールが格納されている `Mail' ディレクトリは, ユーザ本人以外はすべてのアクセス権が許可されていません (`rwx------'). 個人のホームページのファイルが格納されている `public_html' ディレクトリは, 他のユーザへの読み出し (`r') だけでなく, 実行 (`x') も許可されています (`rwxr-xr-x').

4.11.3 保護モードの変更 -- (chmod)

ファイルやディレクトリの保護モードを変更するには, chmodコマンド(CHange MODe)を利用します.

% ls -l <ENTER>
-rw-r--r--  9 t00000tf  student  1024  1 31 14:48 report.txt
% chmod go-r <ENTER>
% ls -l <ENTER>
-rw-------  9 t00000tf  student  1024  1 31 14:48 report.txt
% chmod a+r <ENTER>
% ls -l <ENTER>
-rw-r--r--  9 t00000tf  student  1024  1 31 14:48 report.txt
% _

4.11.3.1 数字によるモード変更

`a+r', `g-r' などといった表記方法以外にも, モード設定の方法があります. 読み出し (`r') と書き込み (`w'), 実行 (`x') の順番でそれぞれ許可する場合を1, 許可しない場合を0の2進数で表して,それらをあわせて3桁の2進数ととらえ, 8進数の表現に直します. ユーザ,グループ,その他の3つの8進数の表現を合わせたものを 保護モードとして表現できます.

例えば,保護モード `rw-r--r--' を数字によって表現するとします. ユーザの保護モードが `rw-' であるので, 許可を1,拒否を0とした2進数で表現すると `110' となります. 8進数では6になります. グループの保護モード `r--' は `100'という2進数で表現され,8進数では4, その他の保護モードの8進数表現は4となります. 8進数で表現された6,4,4を合わせた数字`644'が `rw-r--r--' の数字による表現です (表4.3).

表 4.3: 保護モードの数字表現
  ユーザ グループ その他
保護モード rw- r-- r--
2進数表現 110 100 100
8進数表現 6 4 4

次にいくつか例をあげます.

% ls -lF <ENTER>
drwxr-xr-x  4 t00000tf  student  1024  1 31 14:51 Report/
% chmod 700 Report <ENTER>
% ls -lF <ENTER>
drwx------  4 t00000tf  student  1024  1 31 14:51 Report/
% chmod 755 Report <ENTER>
% ls -lF <ENTER>
drwxr-xr-x  4 t00000tf  student  1024  1 31 14:51 Report/
% _
Valid CSS! Valid HTML 4.01!