かんたん!アクセス権
8 SUIDへ - 9 SGID - 10 スティッキービットへ
 SGIDSet Group ID)とは、特殊なパーミッション(アクセス権)の一つで、実行可能ファイルおよびディレクトリに対して設定できます。

 まず、実行可能ファイルに設定する場合からみてみましょう。
 実行権限を持っているユーザーによって、SUIDの設定されたファイルが実行された場合、ファイルの所有者の権限で実行されました。
 同様に、SGIDが設定されたファイルが実行された場合は、ファイルの所有グループの権限で実行されます。
 考え方は同じなので、詳しくは「8 SUID」をご覧ください。

 次に、ディレクトリにSGIDを設定する場合をみてみましょう。
 ディレクトリに対してSGIDを設定すると、そのディレクトリ内に作成されたファイルやディレクトリの所有グループが、ディレクトリ自体の所有グループに設定されます。

 ディレクトリに設定するSGIDは複数ユーザーで共同作業をする場合に便利です。

 例えばプライマリグループが「G1」のユーザー「U1」と、プライマリグループが「G2」のユーザー「U2」がいるとします。
 この2人のユーザーが共同作業用のディレクトリに、それぞれファイルを作成した場合、お互い、相手のファイルには書き込むことができません。ユーザー「U1」が作成したファイルに書き込めるのは所有者、つまり「U1」か、所有グループ、つまり「G1」に属するユーザーだけです。ユーザー「U2」はグループ「G1」には属していませんから、書き込めないわけです。
図1

 ここで共同作業用のディレクトリにSGIDを設定してみましょう。共同作業用のディレクトリの所有グループを「G3」とします。そしてユーザー「U1」とユーザー「U2」をグループ「G3」に所属させます。
 この状態で、2人のユーザーがそれぞれファイルを作成すると、作成されたファイルの所有グループが「G3」となるので、お互い、相手のファイルに書き込むことができるようになります。
図2

 SGIDを設定するには、chmodコマンドで所有グループ「g」に対して権限「s」を追加します。
実行例1

 SGIDが設定されたファイルのパーミッションの数値表記は、3桁の数値表記に「2000」を加えたものになります。上の例の場合、/dirのパーミッションは「rwxr-xr-x」で「755」でしたが、SGIDを設定したことで「rwxr-sr-x」、数値表記は「2755」となります。


ヒント
 ・それぞれのユーザーがファイルを作成するたびに、そのファイルの所有グループを「G3」に変更してもよいですが、SGIDはその手間を省いてくれます。
 ・ファイルを作成したときに設定されるデフォルトのパーミッションはumask値によって決まるので、必ず上図のようなパーミッションになるとは限りません。上の例ではユーザー「U1」と「U2」のumask値を「002」としています。umask値については「11 デフォルトのアクセス権」を参照してください。



かんたん!アクセス権
0アクセス権の概要
1所有者・所有グループ
2所有者の変更
3所有グループの変更
4アクセス権
5アクセス権の数値表記
6アクセス権の変更
7アクセス権の数値による変更
8SUID
9SGID
10スティッキービット
11デフォルトのアクセス権
12ファイルの拡張属性変更
その他のLinux関連コンテンツ
viをマスターしよう!
シェルスクリプト講座
テキスト処理コマンド
ファイル操作コマンド
ユーザー管理コマンド
ファイル検索コマンド


Yahoo!ブックマークに登録 Googleブックマークに登録 はてなブックマークに登録 livedoorブックマークに登録 deliciousブックマークに登録 Buzzurlブックマークに登録


トップ | このサイトについて | 管理者へメール | サイトマップ
Google www una.soragoto.net  
Copyright(c) 2009 - 2012 una All Rights Reserved.