GNU/Linux >> Linux の 問題 >  >> Linux

SUID、SGID、スティッキービットとは?

実行可能ファイルとディレクトリに使用できる 3 つの特別なアクセス許可があります。これらは:

<強い>1. SUID権限
2. SGID 権限
3.スティッキー ビット

ユーザー ID の設定 (SUID)

root 以外のユーザーが /etc/shadow ファイルへの書き込み権限を持っていないときに、自分のパスワードを変更する方法を考えたことはありますか。うーん…面白いですね。 /usr/bin/passwd コマンドのパーミッションのトリック チェックを理解するには:

# ls -lrt /usr/bin/passwd
-r-sr-sr-x   1 root     sys        31396 Jan 20  2014 /usr/bin/passwd

– よく確認すると、許可フィールドに 2 つの S があります。最初の s は SUID を表し、2 番目の s は SGID を表します。
– SUID ビットが設定されたコマンドまたはスクリプトが実行されると、その有効な UID は、ファイルを作成したユーザーではなく、ファイルの所有者のものになります。
– SUID のもう 1 つの良い例は、su コマンドです:

# ls -l /bin/su 
-rwsr-xr-x-x 1 root user  16384 Jan 12 2014 /bin/su

– 所有者の実行フィールドに「s」として表示される setuid パーミッション。

ファイルに SUID を設定する方法

# chmod 4555 [path_to_file]
注 :
所有者の実行フィールドに大文字の「S」が表示される場合は、setuid ビットがオンであり、ファイルの所有者の実行ビット「x」がオフまたは拒否されていることを示します。

セットグループ識別 (SGID)

実行ファイルに対する SGID 権限

– SGID パーミッションは SUID パーミッションと似ていますが、唯一の違いは – SGID をオンにしてスクリプトまたはコマンドを実行すると、ファイルがメンバーである同じグループのメンバーであるかのように実行されます。

# ls -l /usr/bin/write
-r-xr-sr-x  1   root tty 11484 Jan 15 17:55 /usr/bin/write

– setgid パーミッションは、グループの実行フィールドに「s」として表示されます。

注:
– グループの実行フィールドに小文字の「l」が表示される場合は、setgid ビットがオンであり、グループの実行ビットがオフまたは拒否されていることを示します。

ファイルに GUID を設定する方法

# chmod 2555 [path_to_file]

ディレクトリの SGID

– ディレクトリに SGID 権限が設定されている場合、そのディレクトリに作成されたファイルは、そのディレクトリがメンバーであるグループに属します。
– たとえば、ディレクトリに書き込み権限を持つユーザーがそこにファイルを作成した場合、そのファイルはユーザーのグループではなく、ディレクトリと同じグループのメンバーです。
– これは、共有ディレクトリの作成に非常に役立ちます。

ディレクトリに SGID を設定する方法

# chmod g+s [path_to_directory]

スティッキー ビット

– スティッキー ビットは、主に共有ディレクトリで使用されます。
/var/tmp などの共有ディレクトリで役立ちます。 および /tmp ユーザーはファイルを作成したり、他のユーザーが所有するファイルを読み取ったり実行したりできますが、他のユーザーが所有するファイルを削除することはできません。
– たとえば、ユーザー bob が /tmp/bob という名前のファイルを作成した場合、他のユーザー tom は/tmp ディレクトリに 777 の権限がある場合でも、このファイルを削除しないでください。スティッキー ビットが設定されていない場合、/tmp/bob ファイルは親ディレクトリの権限を継承するため、Tom は /tmp/bob を削除できます。
– root ユーザー(もちろん!) ファイルの所有者は自分のファイルを削除できます。

スティッキー ビットの例:

# ls -ld /var/tmp
drwxrwxrwt  2   sys   sys   512   Jan 26 11:02  /var/tmp
- T refers to when the execute permissions are off.
- t refers to when the execute permissions are on.

スティッキー ビット許可の設定方法

# chmod +t [path_to_directory]
or 
# chmod 1777 [path_to_directory]


Linux
  1. .so.2 ファイルとは何ですか?

  2. .so ファイルとは何ですか?

  3. <() の bash (および =() の zsh) とは正確には何ですか?

  1. LinuxでSUIDおよびSGID権限を持つファイルを検索する方法

  2. Linuxの権限:SUID、SGID、およびスティッキービット

  3. Linuxのスティッキービット、SUID、SGIDとは

  1. NFSとは何ですか?Linuxにインストールする方法

  2. UNIX / Linux:ディレクトリとファイルでスティッキー ビットを使用する方法

  3. Linux 面接の質問 – 特別なアクセス許可 (SUID、SGID、およびスティッキー ビット)