|
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)ディレクトリの種類とパーミッション それぞれ詳しく見ていきましょう。 (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"というディレクトリを作成してみました。すると、上記のようなパーミッションになりました。これは、 所有者:ディレクトリの内容の一覧表示が可能 とう属性が設定されていることになります。デフォルトで設定されるパーミッションは、"umask"という値により制御されています。 "umask"については今後書きたいと思います。 1.chmod 640 test_dir これらの方法は、ファイルのアクセス権を変更すると同じなので、そちらを参照してください。 ディレクトリのアクセス権の詳細ここでは、ディレクトリ特有のパーミッションについて記載します。ファイルのアクセス権とは、まったく異なります。 想定するディレクトリとファイルの構成を以下のようにします。 test_dir┓ test_dirというディレクトリの下にtest_fileというファイルが格納されているとします。例では、他人がどうアクセス出来るかどうかを考えます (例1) 他人は、test_dirの中身を一切見ることが出来ません。cdコマンドでディレクトリ内に入ることも出来ませんし、 lsコマンドでファイルリストを表示させることも出来ません。
(例2) 他人は、test_dirの中のtest_fileへアクセスすることが出来ます。ファイルの読み込み、編集ができます。
(例3) 他人は、test_dirの中のファイルリストを見ることができます。しかし、test_fileの中身を見ることはできません。
(例4) 他人は、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"コマンドを使います。 |