13.4.13.3 パーミッションの使用例

ファイルを削除したくない,変更したくないとき (書き込み許可)

大事なファイルを間違って消してしまう,変更してしまうのを防ぐために,書き込みに対するパーミッションを変更しておく,という使い方ができます.

promptls -l memo.txt return2 -rw------- 1 g999999 student 235 1 15 09:52 memo.txt promptchmod -w memo.txt return2 promptls -l memo.txt return2 -r-------- 1 g999999 student 235 1 15 09:52 memo.txt

このようにしておくと,rmコマンドに対して,削除するかの問い合わせがあります.

promptrm memo.txt return2 override r-------- g999999/student for memo.txt? n return2

ここで,y,あるいは,Y を入力してenterを押すと,削除されます. それ以外の場合,たとえば,nを入力してenterを押せば,削除されません.

また,エディタで編集しようとしても,読み取り専用となり,変更できなくなります.

review_s13.4.9 ファイルの複製,移動,削除

異なるユーザー間でのファイルの閲覧 (閲覧許可)

パーミッションを使うと自分のファイルを他人に見せるようにしたり,見せられないようにしたりできます.

g999999というユーザーが,次のようなパーミッションで,test.txtというファイルをもっているとします.

promptls -ld ~ return2 drwx------ 10 g999999 student 8192 1 15 09:52 /home07/g999999/ promptls -l ~/test.txt return2 -rw------- 1 g999999 student 235 1 15 09:52 test.txt promptcat ~/test.txt return2 My account is g999999.

~はホームディレクトリです. ホームディレクトリのパーミッションは,初期設定では,userのみ許可されています.

別の人がそのファイルを見ようとしても見ることができません. 例えば,g111111が,見ようとすると,以下のようになります.

ユーザーg111111のターミナル

promptcat /home07/g999999/test.txt return2 cat: /home07/g999999/test.txt: Permission denied

このファイルをstudentグループに属するg111111から見えるようにするには,g999999のアカウントで,次のような操作をします.

ユーザーg999999のターミナル

promptchmod g+x ~ return2 promptchmod g+r ~/test.txt return2

パーミッションは次のようになります.

promptls -ld ~ return2 drwx--x--- 10 g999999 student 8192 1 15 09:52 /home07/g999999/ promptls -l ~/test.txt return2 -rw-r----- 1 g999999 student 235 1 15 09:52 test.txt

そうすると,g111111から,g999999のファイルを見ることができます.

ユーザーg111111のターミナル

promptcat /home07/g999999/test.txt return2 My account is g999999.

プログラムの利用 (実行許可)

プログラムをつくって,実行するときには,実行に対する許可が必要になります.

たとえば,ファイルの中にコマンドを並べて書いておくと,それを順番に実行していくシェルスクリプトと呼ばれるプログラムになります.

promptcat > addr.sh return2 echo 3-8-1 Komaba Meguroku Tokyo return2 echo Todai Taro return2 control d promptcat addr.sh return2 echo 3-8-1 Komaba Meguroku Tokyo echo Todai Taro

echoコマンドが2行書かれているファイル,addr.shを作りました.echoコマンドは,それにつづく文字列を出力してくれるコマンドです.これを実行してみます.

prompt./addr.sh return2 -bash: ./addr.sh: Permission denied

実行に対する許可がないと,Permission denied となり,ファイルに書かれているechoコマンドが実行できません.

パーミッションを変更すれば,実行できるようになります.

promptchmod u+x addr.sh return2 prompt./addr.sh return2 3-8-1 Komaba Meguroku Tokyo Todai Taro

review_s13.4.8 ファイルの作成