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"はディレクトリであることを示しています。ディレクトリの種類は以下のようなものがあります。

dディレクトリ
lシンボリックリンク

シンボリックリンクとは、Windowsで言うところのショートカットです。ファイルとディレクトリのリンクには「ハードリンク」と「シンボリックリンク」の2つがあります。

2文字目以降はパーミッションを示しています。ディレクトリのパーミッションは、ファイルのパーミッションと考え方がまったく異なるので注意が必要です。

ディレクトリのパーミッション

rディレクトリの内容の一覧表示が可能
wディレクトリ内のファイルの作成、削除が可能
xディレクトリ内のファイルの読み込み、書き込みが可能。cdコマンドで中に入ることも可能

(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コマンドでファイルリストを表示させることも出来ません。

ファイルのリスト表示ファイルの読みだしファイルの編集ファイルの追加ファイルの削除ディレクトリの中にはいる(cdコマンド)
所有者
グループ不可不可不可不可不可不可
他人不可不可不可不可不可不可

(例2)
test_dir(701)、test_file(777)

他人は、test_dirの中のtest_fileへアクセスすることが出来ます。ファイルの読み込み、編集ができます。
ただし、test_dir内のファイルの追加、ファイルの削除、一覧を見ることはできません。
このアクセス権によって、リード、ライトが可能になったので、実質的にはまる見えになってしまいます。

ファイルのリスト表示ファイルの読みだしファイルの編集ファイルの追加ファイルの削除ディレクトリの中にはいる(cdコマンド)
所有者
グループ不可不可不可不可不可不可
他人不可不可不可不可

(例3)
test_dir(704)、test_file(777)

他人は、test_dirの中のファイルリストを見ることができます。しかし、test_fileの中身を見ることはできません。
しかし、ファイルリストを公開してしまうことになります。

ファイルのリスト表示ファイルの読みだしファイルの編集ファイルの追加ファイルの削除ディレクトリの中にはいる(cdコマンド)
所有者
グループ不可不可不可不可不可不可
他人不可不可不可不可

(例4)
test_dir(702)、test_file(777)

他人は、test_dirの中のファイルにアクセスすることはできません。実質700と同じです。しかし、703となっていると、ファイルを勝手に読み込み、編集、作成、削除されてしまうことになります。

ファイルのリスト表示ファイルの読みだしファイルの編集ファイルの追加ファイルの削除ディレクトリの中にはいる(cdコマンド)
所有者
グループ不可不可不可不可不可不可
他人不可不可不可不可不可不可

以上のように、ディレクトリのパーミッションはファイルのパーミッションと概念がまったく異なりますので、注意が必要です。

ディレクトリの所有者を変更する

ディレクトリの所有者を変更するには、ルートでないと変更できません。以下のようにして変更します。

# 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"コマンドを使います。


トップ   リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-05-14 (日) 16:35:30 (934d)