先輩の手順書 Linux FedoraCore6 編


2007年6月  

   ホーム >  Unix,Linuxが初心者 >  ファイルのパーミッション、アクセス権限について

ファイルのパーミッション、アクセス権限について

 Unix,Linuxのファイル、ディレクトリは個々にファイル権限が付けられており、その設定により誰もが、自由に読み書き削除出来ないようになっています。その仕組みをパーミッションと呼んでいます。
 実際のファイルの設定されているパーミションを見る場合は、リスト命令でオプション -l 付きで表示させます。

$ ls -l
合計 16
-rwxr-x--x 1 user1 group1 33 6月 4 12:48 test1.txt
-rw------- 1 user1 group1 33 6月 4 12:48 test2.txt

デスクトップでは、以下のように表示できます。もし、パーミションが表示されていない場合は、「ファイル管理の設定」内の表示2、一覧の項目を参照して表示設定を変更してください。

 リスト項目左側の -rwxr-x--x の部分がパーミションを示し、次の3つの順位で設定されます。

所有者 その対象物の所有者に対しての権限。上記例では user1 に該当します。
所有グループ 所有者が所属しているグループに対しての権限。上記例では group1 に該当します。
他人 上記以外の利用者に対しての権限。

各順位3文字の内訳は、

読み込み 書き込み 実行
を示し、 - の場合はその権限を許可しないを意味します。
 r w x の動作は、ディレクトリとファイルによって微妙に違います。
(読み込み) (書き込み) (実行)
ディレクトリ
の場合
そのディレクトリの一覧の参照が可能 そのディレクトリ内のファイルの削除、名前変更が可能。新規作成が可能 そのディレクトリにアクセス可能
ファイル
の場合
ファイルの読み込み可能 ファイルへの書き込みが可能 そのファイルを命令として実行可能
参考:シェルスクリプト実行許可について
ファイルの削除や名前変更はディレクトリの設定である事に注意

 ファイルの削除や名前変更の許可は、そのファイルの「書き込み」許可の有無ではありません。そのファイルが存在するディレクトリの書き込み許可により決定されます。なお、ファイルの書き込み許可が有効の場合、そのファイルを削除命令 rm で削除する場合、確認の問い合わせをするようになります。

$ rm test.txt
rm: remove write-protected 通常ファイル `test.txt'?         yキーで削除する

デスクトップ上でのファイルブラウザ等の操作の場合、一端ゴミ箱に入ることもあって削除確認はありません。

ディレクトリのX(実行)許可の動作について
ディレクトリの場合、実行許可 x の有無によっての動作の比較を次に示します。
命令例 r - x ディレクトリが読み込みと実行の場合 r - -  ディレクトリが読み込みのみの場合
ls -l <directory> -rwxr-x--x 1 user1 group1 33 6月 4 12:48 test1.txt
-rw------- 1 user1 group1 33 6月 4 12:48 test2.txt

?--------- ? ? ? ? ? test1.txt
?--------- ? ? ? ? ? test2.txt
cd <directory> 問題なく変更できる。 「bash: cd: <directory>: 許可がありません」 を表示し変更できない。

 グラフィカル画面によるパーミッションの設定

手順
  1. ファイルブラウザで目的のファイル、ディレクトリ上でマウス右ボタンをクリックし、メニューを開きます。その中のプロパティをクリックします

  2. 【アクセス権】タグをクリックします。対象がファイルの場合とディレクトリの場合で設定画面が違いますので注意してください。
    ファイルの場合のアクセス権
    ディレクトリの場合のアクセス権

直接命令によるパーミッションの設定

パーミッションを設定する直接命令 chmod の書式は、
   chmod [オプション] <設定式> <対象のパス>
です。(例4で示したエラーには注意して下さい)

設定式は、<ユーザ><操作><アクセス> の3つの部分で記述します。
<ユーザ> <操作> <アクセス>
a 全ユーザ + アクセスを追加する r 読み込み
u 所有者 - アクセスを取り除く w 書き込み
g 所有グループ = アクセスを設定する x 実行
o 他人  
設定式の記述例
o+w 他人に対して書き込み許可を追加します。
go-rw 所有グループと他人に対して読み込みと書き込み許可を取り除きます。
go=rw 所有グループと他人に対しての許可を読み込みと書き込みにします。

操作の + - と = の違いに注意してください。
+ - は現在設定値に対して、追加したり、取り除いたりします。
=   は現在値を全て消去して、新しい値として設定します。

chmod の実行例
例1:

     (実行前 -rwxr-x--x 1 user1 group1 33 6月 4 12:48 test1.txt)
$ chmod go+rw test1.txt
     (実行後 -rwxrwxrwx 1 user1 group1 33 6月 4 12:48 test1.txt)

例2:

     (実行前 -rwxrwxrwx 1 user1 group1 33 6月 4 12:48 test1.txt)
$ chmod go-r test1.txt
     (実行後 -rwx-wx-wx 1 user1 group1 33 6月 4 12:48 test1.txt)

例3:

     (実行前 -rwxrwxrwx 1 user1 group1 33 6月 4 12:48 test1.txt)
$ chmod a=rx test1.txt
     (実行後 -r-xr-xr-x 1 user1 group1 33 6月 4 12:48 test1.txt)

例4: ユーザ名 user2 でログインし、 user1 のファイルパーミッションを変更しようとした場合のエラー

     (実行前 -rwxrwxrwx 1 user1 group1 33 6月 4 12:48 test1.txt)
$ chmod o-x test1.txt
chmod: changing permissions of `test1.txt': 許可されていない操作です
     (実行後 -rwxrwxrwx 1 user1 group1 33 6月 4 12:48 test1.txt)

所有者のものでないファイルは、操作できません。ただし、スーパーユーザは例外です。


「先輩の手順書」へ 問い合わせ

このページの対象者 (「先輩の手順書」Unix Linux Fedora)

  • パッミッション、アクセス権限、アクセス許可、アクセス権とは何?
  • パッミッション、アクセス権限を表示させたい。
  • パッミッション、アクセス権限を確認したい。
  • パッミッション、アクセス権限、アクセス許可、アクセス権の変更が出来ない、設定が出来ない。