アクセス権限 / Permission
初心者向けのまとめサイトをさらに噛み砕いてまとめた。メモ用。
SUID
SUIDとは
SUID(Set User ID)は、実行権のあるファイルに設定される特殊なアクセス権。
通常実行ファイルを実行すると、そのファイルを実行したユーザーの権限で実行されるが、SUIDが設定されたファイルでは、その実行ファイルの所有者のアカウント権限で実行される。
もともとLinuxに入っているコマンド類にもSUIDが設定されているコマンドがあり、例えばpasswd
コマンドがこれにあたる。
注意すべきは。コマンドに対してSUIDを付加するという点。少しわかりにくい、、、
確認方法
所有者の部分がrws
となっており、実行権の部分が通常のx
ではなくs
になっている。
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 9214 3月 12 2013 /usr/bin/passwd
passwdコマンドは、/etc/passwd
や、/etc/shadow
の様な一般ユーザーでは通常変更できないファイルを更新する。一般ユーザーがこのコマンドを実行し、/etc/passwd
や/etc/shadow
を更新できるのは、passwdコマンドにSUIDが設定されていて、root権限で実行されているから。
設定方法
-
シンボルモード
chmod
コマンドでchmod u+s file
-
数字モード
数字モードで設定するには、アクセス権を表す数字に4000
を足す。chmod 4755 dir
SGID
SGIDとは
SGID(Set Group ID)は実行権のあるファイルに設定される特殊なアクセス権で、SUIDと異なり、ディレクトリにも設定される。
実行ファイルにSGIDが設定されていれば、実行ファイルの所有グループの権限でファイルが実行される。
ディレクトリにSGIDが設定されている場合は、そのディレクトリ配下に作成されたファイル・ディレクトリの所有グループが、SGIDを設定されたディレクトリの所有グループと同じものになる。SUIDのグループ版だが少し違う。
確認方法
Permissionのグループの部分が、「r-s」となっている。実行権の部分は、通常x
だがここがs
になっているとSGIDが設定されている事を意味する。
# ls -l file
-rwxr-sr-x 7 root group1 4096 7月 30 14:32 /tmp/
設定方法
-
シンボルモード
chmod
コマンドでchmod g+s file
-
数字モード
アクセス権を表す数字に2000
を足す。chmod 2755 file
Sticky Bit
Sticky Bitとは
ディレクトリに設定される特殊なアクセス権のこと。
Sticky Bitが設定されたディレクトリでは、すべてのユーザーがファイル・ディレクトリに書き込めるが、所有者だけ(rootは除く)しか削除できなくなる。/tmp ディレクトリは、Sticky Bitが設定されている。
確認方法
その他のアカウントに対しての実行権限にt
が付加されている。
# ls -ld /tmp/
drwxrwxrwt 7 root root 4096 7月 29 04:02 /tmp/
Sticky Bitの設定方法
-
シンボルモード
シンボルモードSticky Bitを設定するには、chmod
コマンドで、「その他」の権限に対しt
を+する。chmod o+t dir
-
数字モード
アクセス権を表す数字に1000
を足す。chmod 1777 dir