大事なファイルを間違って消してしまう,変更してしまうのを防ぐために,書き込みに対するパーミッションを変更しておく,という使い方ができます.
ls -l memo.txt
-rw------- 1 g999999 student 235 1 15 09:52 memo.txt
chmod -w memo.txt
ls -l memo.txt
-r-------- 1 g999999 student 235 1 15 09:52 memo.txt
このようにしておくと,rmコマンドに対して,削除するかの問い合わせがあります.
rm memo.txt
override r-------- g999999/student for memo.txt? n
ここで,y,あるいは,Y を入力してを押すと,削除されます.
それ以外の場合,たとえば,nを入力して
を押せば,削除されません.
また,エディタで編集しようとしても,読み取り専用となり,変更できなくなります.
パーミッションを使うと自分のファイルを他人に見せるようにしたり,見せられないようにしたりできます.
g999999というユーザーが,次のようなパーミッションで,test.txtというファイルをもっているとします.
ls -ld ~
drwx------ 10 g999999 student 8192 1 15 09:52 /home07/g999999/
ls -l ~/test.txt
-rw------- 1 g999999 student 235 1 15 09:52 test.txt
cat ~/test.txt
My account is g999999.
~はホームディレクトリです. ホームディレクトリのパーミッションは,初期設定では,userのみ許可されています.
別の人がそのファイルを見ようとしても見ることができません. 例えば,g111111が,見ようとすると,以下のようになります.
ユーザーg111111のターミナル
cat /home07/g999999/test.txt
cat: /home07/g999999/test.txt: Permission denied
このファイルをstudentグループに属するg111111から見えるようにするには,g999999のアカウントで,次のような操作をします.
ユーザーg999999のターミナル
chmod g+x ~
chmod g+r ~/test.txt
パーミッションは次のようになります.
ls -ld ~
drwx--x--- 10 g999999 student 8192 1 15 09:52 /home07/g999999/
ls -l ~/test.txt
-rw-r----- 1 g999999 student 235 1 15 09:52 test.txt
そうすると,g111111から,g999999のファイルを見ることができます.
ユーザーg111111のターミナル
cat /home07/g999999/test.txt
My account is g999999.
プログラムをつくって,実行するときには,実行に対する許可が必要になります.
たとえば,ファイルの中にコマンドを並べて書いておくと,それを順番に実行していくシェルスクリプトと呼ばれるプログラムになります.
cat > addr.sh
echo 3-8-1 Komaba Meguroku Tokyo
echo Todai Taro
d
cat addr.sh
echo 3-8-1 Komaba Meguroku Tokyo
echo Todai Taro
echoコマンドが2行書かれているファイル,addr.shを作りました.echoコマンドは,それにつづく文字列を出力してくれるコマンドです.これを実行してみます.
./addr.sh
-bash: ./addr.sh: Permission denied
実行に対する許可がないと,Permission denied となり,ファイルに書かれているechoコマンドが実行できません.
パーミッションを変更すれば,実行できるようになります.
chmod u+x addr.sh
./addr.sh
3-8-1 Komaba Meguroku Tokyo
Todai Taro
13.4.13.2 パーミッションを変える |
![]() |
13.4.13.3 パーミッションの使用例 |
![]() |
![]() |
発展項目をスキップ |
![]() |
13.5 いろいろなファイル | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Fri, 29 Jul 2005 17:38:17 JST (1463d) |