パーミッション
バージョン管理ソフトを使えというツッコミはともかくとして。
さて本題ですが特殊なパーミッションというのは何があるのか? ですが,chmodコマンドの日本語マニュアルを参照するとこういう記述があります.
特別なアクセス権
1000 プログラムコードをスワップに維持
2000 実行時にグループ ID を設定
4000 実行時にユーザー ID を設定1000は使ったことがないのでコメントかトラックバックでいい例題を教えてください(苦笑 2000と4000はそれぞれオーナーユーザーあるいはグループはディレクトリに付加すると,中でファイルやディレクトリを作成するとオーナー情報を継承するというイメージになります.
む、sticky bit って案外知られてないのか?1000 は sticky bit と呼ばれるやつで、ディレクトリに設定しておくと、配下のファイル・ディレクトリはそのファイル・ディレクトリのオーナーじゃないと削除できなくなる(本来ならディレクトリの書き込み権限があれば配下のファイルを削除できる)。みんな自由に書き込めるけど、他人のファイルは消せないようにしたい場合に設定する。典型的には /tmp がそう。
% stat /tmp File: `/tmp' Size: 2048 Blocks: 4 IO Block: 4096 directory Device: 7500h/29952d Inode: 134145 Links: 5 Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2007-02-23 16:41:18.000000000 -0500 Modify: 2007-02-23 17:54:00.000000000 -0500 Change: 2007-02-23 17:54:00.000000000 -0500
ちなみに、2000, 4000 はそれぞれ sgid bit, suid bit と呼ばれ、実行ファイルに設定しておくと、実行時の実効ユーザ(euid)、実効グループ(egid)がファイルの所有ユーザ、所有グループになる。passwd なんかは suid bit が有効になっていたりする。