ちょっと難易度高め.
ls コマンドに -l のオプションを付けて使う.
$ ls -l
誰にどういう種類のパーミッションがおりているのか確認する. ファイルは誰の持ち物になっているか確認する.
ファイルモードの変更は chmod コマンドを使う. 自分(user)はファイルを見ることができないようにしてみる.
$ chmod u-r sushi.txt
ls -l を使ってモードが変更されたことを確認する.
$ ls -l sushi.txt
cat コマンドを使ってファイルの中身を見ようとしてみる.
$ cat sushi.txt
正しくパーミッションが変更(userはファイルの中身を見ることができないに設定)されていれば,Permission denied といって叱られてファイルの中身が表示されない.
ユーザだけが中身を見ることができるようにする.
$ chmod u+r sushi.txt $ chmod go-r sushi.txt
誰でも書き換えることができるようにする.
$ chmod ugo+w sushi.txt
ls -l コマンドで正しく設定されたかどうかを確認.
$ ls -l sushi.txt
自分以外の誰かのファイルをコピーしてみる.例えば,/home/george/ipesc/sample にあるファイルをコピーしてみる.
$ ls -l /home/george/ipesc/sample
上のコマンドを打って /home/george/ipesc/sample のディレクトリにあるファイルの一覧を表示すると,所有者以外にも読み取り許可の出ている yes.txt と,所有者以外には読み取り許可が出ていない no.txt の2つのファイルが見つかるはずである.
読み取り許可の出ているファイルをコピーしてみる.
$ cp /home/george/ipesc/sample/yes.txt .
ここではコピー先のファイル名を . と書いているが,このように書くとカレントディレクトリにコピー元と同じ名前のファイルが作られる.すなわちこのコマンドが正しく実行されれば,カレントディレクトリに yes.txt という名前のファイルが生成しているはずである(Permission denied と言われてカレントディレクトリに yes.txt が生成されなかった場合には,カレントディレクトリのパーミッションを確認してみる.カレントディレクトリの書き込み許可がなければファイルを生成することはできない).
正しくファイルのコピーが生成したかどうか調べてみる.
$ cat /home/george/ipesc/sample/yes.txt $ cat yes.txt
あるいは,
$ diff /home/george/ipesc/sample/yes.txt yes.txt
diff はファイルの中身を比較するコマンドで,指定された2つのファイルの中身で異なる部分があるとそれを出力する(異なる部分がなければ何も出力しない).
もうひとつ,読み取り許可の出ていないファイル no.txt のコピーも試してみる.
$ cp /home/george/ipesc/sample/no.txt .
Permission denied と言われて,コピーを生成することはできない.