SSブログ

setuid, setgid, sticky bit [Linux]

すぐに忘れてしまうので setuid, setgid, sticky bitについてメモしておく。

Linuxでは、読み取り(r)、書き込み(w)、実行(x)というアクセス権の他に、setuid、setgid、sticky bitという3つの特別なアクセス権を実行可能ファイルやディレクトリに設定することができる。

アクセス権実行可能ファイルディレクトリ
setuid 実行可能ファイルの所有者として実行される -
setgid 実行可能ファイルの所有グループとして実行される ディレクトリに作成されたファイルの所有グループは、そのディレクトリの所有グループになる
sticky bit - そのディレクトリ以下のファイルの名前変更や削除は、ファイルの所有者、ディレクトリの所有者、rootに限られる



setuid
(a)実行可能ファイル
通常、実行可能ファイルの実行は、実行したユーザのアクセス権限で実行されるが、setuidが設定されていると実行可能ファイルの所有者として実行される。
例.
/usr/bin/passwd -rwsr-xr-x root root
/bin/ping -rwsr-xr-x root root
/bin/umount -rwsr-xr-x root root

(b)ディレクトリ
Linuxでは、ディレクトリにsetuidを設定しても無視される。

setgid
(a)実行可能ファイル
実行可能ファイルにsetgidを設定すると、起動したプロセスの実効グループIDは、実行したユーザのグループではなく、ファイルの所有者グループに変更される。
具体的な使用例が浮かばない・・・

(b)ディレクトリ
ディレクトリにsetgidを設定した場合、そのディレクトリ以下に作成されるファイルやサブディレクトリの所有グループは、作成したユーザのプライマリグループではなく、ディレクトリの所有グループが設定される。
例.
ユーザfoo、ユーザbarだけがフルアクセスできる共有ディレクトリを作成する。ユーザのプライマリグループ=プライベートグループ、umask=0002とする。
(1)projectグループを作成する。
(2)ユーザfoo、barの補助グループにprojectグループを加える(usermod -G)。
(3)共有ディレクトリの所有グループを projectにする。
(4)共有ディレクトリのパーミッションを 2775 にする。パーミッションの最上位桁の"2"は、setgidの設定を意味する(setuidの設定は"4"、sticky bitの設定は"1")。

これによって、共有ディレクトリ以下に作成されたファイル、ディレクトリの所有グループはprojectになり、projectグループに属するユーザfooとbarはフルアクセスできる。


sticky bit
(a)ファイル
Linuxでは、ファイルにsticky bitを設定しても効果がない。

(b)ディレクトリ
ディレクトリにsticky bitが設定されている場合、そのディレクトリ以下のファイルの名前変更や削除は、ファイルの所有者、ディレクトリの所有者、rootに限られる。
例.
/tmpでは他のユーザのファイルを削除できない。
/tmp drwxrwxrwt root root


参考サイト



Linux教科書 LPICレベル1 第4版 (CD-ROM付)

Linux教科書 LPICレベル1 第4版 (CD-ROM付)

  • 作者: リナックスアカデミー 中島 能和
  • 出版社/メーカー: 翔泳社
  • 発売日: 2009/05/13
  • メディア: 単行本(ソフトカバー)




Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)

Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)

  • 作者: 高町 健一郎
  • 出版社/メーカー: アイ・ディ・ジー・ジャパン
  • 発売日: 2007/10/06
  • メディア: ムック


nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

この広告は180日新規投稿のないブログに表示されます