ディレクトリの操作 First Edition 2003.5.28 UNIX系OSの基本、ファイルの操作と同様に、ディレクトリの操作方法を記載します。 ファイルのパーミッションは、感覚的に理解しやすいものですが、ディレクトリのパーミッションはファイルの 概念とはまったく異なりますので注意が必要です。
ディレクトリの書式ディレクトリの書式はターミナルで、$ llもしくは $ ls -lと打つと、以下のように出力されます。 drwx-----x 2 lucky lucky 4096 Apr 4 22:03 public_html (1) (2) (3) (4) (5) (6) (7)(1)ディレクトリの種類とパーミッション (2)ハードリンク数 (3)所有者 (4)グループ (5)サイズ (6)作成、更新、変更した日付 (7)名称 それぞれ詳しく見ていきましょう。 ■(1)ディレクトリのパーミッション d rw- --- r--1文字目の"d"はディレクトリであることを示しています。ディレクトリの種類は以下のようなものがあります。
シンボリックリンクとは、Windowsで言うところのショートカットです。ファイルとディレクトリのリンクには「ハードリンク」と 「シンボリックリンク」の2つがあります。 2文字目以降はパーミッションを示しています。ディレクトリのパーミッションは、ファイルのパーミッションと考え方が まったく異なるので注意が必要です。 ディレクトリのパーミッション
■(2)ハードリンク数 ■(3)所有者 ■(4)グループ ファイルの書式を参照してください ■(5)ディレクトリサイズ 良く分かりません。どなたか教えてください(^^) ■(6)作成、更新、変更された日付 ディレクトリに対して作成、更新、変更などを行ったときの日と時間です。 ■(7)ディレクトリ名 ディレクトリ名、シンボリックリンク名などです。 ディレクトリのアクセス権を変更するディレクトリの書式でお話ししたとおり、ディレクトリには、「所有者」、「グループ」、「他人」の3つの グループがあることが分かりました。では、それらの設定できる属性を変更してみます。適当にディレクトリを作成してみます。 drw-r--r-- 2 lucky lucky 6 Mar 23 23:12 test_dir"test_dir"というディレクトリを作成してみました。すると、上記のようなパーミッションになりました。これは、 所有者:ディレクトリの内容の一覧表示が可能 グループ:ディレクトリ内のファイルの作成、削除が可能 他人:ディレクトリ内のファイルの読み込み、書き込みが可能。cdコマンドで中に入ることも可能 とう属性が設定されていることになります。デフォルトで設定されるパーミッションは、"umask"という値により制御されています。 "umask"については今後書きたいと思います。 パーミッションを変更するには、2つの方法があります。パーミッションは所有者もしくはrootしか変更できません。 1.chmod 640 test_dir 2.chmod o-x text_dir これらの方法は、ファイルのアクセス権を変更する と同じなので、そちらを参照してください。 ディレクトリのアクセス権の詳細ここでは、ディレクトリ特有のパーミッションについて記載します。ファイルのアクセス権とは、まったく異なります。想定するディレクトリとファイルの構成を以下のようにします。 test_dir┓ ┗test_file test_dirというディレクトリの下にtest_fileというファイルが格納されているとします。例では、他人がどうアクセス 出来るかどうかを考えます (例1) test_dir(700)、test_file(777) 他人は、test_dirの中身を一切見ることが出来ません。cdコマンドでディレクトリ内に入ることも出来ませんし、 lsコマンドでファイルリストを表示させることも出来ません。
(例2) test_dir(701)、test_file(777) 他人は、test_dirの中のtest_fileへアクセスすることが出来ます。ファイルの読み込み、編集ができます。 ただし、test_dir内のファイルの追加、ファイルの削除、一覧を見ることはできません。 このアクセス権によって、リード、ライトが可能になったので、実質的にはまる見えになってしまいます。
(例3) test_dir(704)、test_file(777) 他人は、test_dirの中のファイルリストを見ることができます。しかし、test_fileの中身を見ることはできません。 しかし、ファイルリストを公開してしまうことになります。
(例4) test_dir(702)、test_file(777) 他人は、test_dirの中のファイルにアクセスすることはできません。実質700と同じです。しかし、703となっていると、ファイルを勝手に読み込み、編集、作成、削除されてしまうことになります。
以上のように、ディレクトリのパーミッションはファイルのパーミッションと概念がまったく異なりますので、注意が必要です。 ディレクトリの所有者を変更するディレクトリの所有者を変更するには、ルートでないと変更できません。以下のようにして変更します。# ll drw-r--r-- 2 lucky lucky 5 Oct 1 21:37 test_dir # chown hogehoge test.txt # ll drw-r--r-- 2 hogehoge lucky 5 Oct 1 21:37 test_dirファイルと同様に"chown"コマンドを使います。 ディレクトリのグループを変更するディレクトリのグループを変更するには、ルートもしくは所有者しか変更できません。所有者の場合は、変更後のグループに所有者が所属している必要が あります。$ ll drw-r--r-- 2 hogehoge lucky 5 Oct 1 21:37 test_dir $ chgrp hogehoge test.txt $ ll drw-r--r-- 2 hogehoge hogehoge 5 Oct 1 21:37 test_dirファイルと同様に"chgrp"コマンドを使います。 [HOME] since 2001.4.22 |