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

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

実行可能ファイルに設定できる特別な権限が 2 つあります。ユーザー ID の設定 (setuid) とグループ ID の設定 (sgid) です。これらの権限により、実行中のファイルを所有者またはグループの権限で実行できます。同様に、ディレクトリには、スティッキー ビットと setgid ビットの 2 つの特別なアクセス許可があります。以下は、SUID、SGID、スティッキー ビットなどの特別なアクセス許可に関して Linux のインタビューでよく聞かれる質問の一部です。

設定ユーザー ID (setuid) とは?

SUID は、ファイルに割り当てられる特別なアクセス許可です。これらの権限により、実行中のファイルを所有者の権限で実行できます。たとえば、ファイルが root ユーザーによって所有され、setuid ビットが設定されている場合、誰がファイルを実行しても、常に root ユーザー権限で実行されます。

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

setuid ビットを設定するには、ファイルの所有者または root ユーザーである必要があります。次のコマンドを実行して setuid ビットを設定します:

# chmod u+s file1

ls -l コマンドを使用して権限を表示します:

# ls -l file1
-rwSrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1

大文字の S に注意してください .これは、実行権限がないことを意味します。次のコマンドを実行して、file1 ファイルに実行権限を追加します。小文字の s に注意してください。 .

# chmod u+x file1
# ls -l file1
-rwsrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1

小文字の s に注意してください。これは、実行権限があることを意味します。

または、モードの先頭に 4 を追加することにより、数値メソッドを使用して setuid ビットを設定できます。たとえば、file1 ファイルの所有者の setuid ビット、読み取り、書き込み、および実行のアクセス許可を設定するには、次のコマンドを実行します。

# chmod 4700 file1

ファイルのセット グループ ID (setgid) とは?

Set Group ID ビットが設定されている場合、実行可能ファイルはグループの権限で実行されます。たとえば、ファイルがユーザーのグループによって所有されている場合、そのファイルは誰が実行しても、常にユーザーのグループの権限で実行されます。

ファイルの SGID ビットを設定する方法

次のコマンドを実行して、file1 ファイルに setgid ビットを設定します:

# chmod g+s
注意 :setuid ビットと setgid ビットの両方が s シンボルを使用して設定されます。 setgid は、権限のグループ セクションを除いて、setuid ビットと同じように表されます。

root として次のコマンドを実行して setgid ビットを設定し、file1 ファイルの所有者の読み取り、書き込み、および実行権限を設定します。

# chmod 2700 file1

setgid は、権限のグループ セクションを除いて、setuid ビットと同じように表されます。

ls -l file1
-rwx--S--- 1 user1 user1 0 2017-10-30 21:40 file1

setuid ビットを設定するには、chmod u+s コマンドを使用します。 setgid ビットを設定するには、chmod g+s コマンドを使用します。

ディレクトリのグループ ID 権限の設定とは

ディレクトリに setgid ビットが設定されている場合、そのディレクトリ内で作成されたすべてのファイルは、そのディレクトリのグループ所有権を継承します。たとえば、folder1 フォルダーはユーザー user1 とグループ group1 によって所有されています:

# ls -ld folder1
drwxrwxr-x 2 user1 group1 4096 2017-10-30 22:25 folder1

folder1 フォルダーに作成されたファイルは、group1 グループ メンバーシップを継承します:

# touch folder1/file1
# ls -l folder1/file1
-rw-rw-r-- 1 user1 group1 0 2017-10-30 22:29 folder1/file1

ディレクトリの SGID ビットを設定する方法

ディレクトリに setgid ビットを設定するには、chmod g+s コマンドを使用します:

# chmod g+s folder1

ls -ld コマンドを使用して権限を表示し、グループ権限の s に注意してください:

# ls -ld folder1
drwxrwsr-x 2 user1 group1 4096 2017-10-30 22:32 folder1

または、ディレクトリ モードの先頭に 2 を追加します。

# chmod 2770 folder1

ディレクトリのスティッキー ビットとは

スティッキー ビットがディレクトリに設定されている場合、ルート ユーザー、ディレクトリの所有者、およびファイルの所有者のみが、そのディレクトリ内のファイルを削除できます。

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

スティッキー ビットの例は、/tmp ディレクトリです。 ls -ld /tmp コマンドを使用して権限を表示します:

# ls -ld /tmp
drwxrwxrwt  24 root root  4096 2017-10-30 22:00 tmp

t 最後に、スティッキー ビットが設定されていることを示します。 /tmp ディレクトリに作成されたファイルは、その所有者または root ユーザーのみが削除できます。たとえば、次のコマンドを実行して、folder1 フォルダーにスティッキー ビットを設定します。

# chmod a+t folder1

または、ディレクトリのモードの先頭に 1 を追加して、スティッキー ビットを設定します。

# chmod 1777 folder1

パーミッションは、スティッキー ビットが設定されているディレクトリで、所有者、グループ、およびその他すべてのユーザーに対して読み取り、書き込み、および実行する必要があります。これにより、誰でもディレクトリに cd してファイルを作成できます。

SUID/SGID が設定されているファイルを検索する方法

1. SUID が設定されているすべてのファイルを検索するには、次のコマンドを使用します:

# find / -perm +4000

2. SGID ビットが設定されたすべてのファイルを見つけるには、次のコマンドを使用します:

# find / -perm +2000

両方のコマンドを組み合わせて、SGID と SUID の両方を検索し、ファイルを設定することもできます。

# find / -type f \\( -perm -4000 -o -perm -2000 \\) -exec ls -l {} \\;
SUID、SGID、Sticky bit とは?
Linux / UNIX :SUID/SGID が設定されたファイルを検索する方法
Linux / UNIX :特定の権限セットを持つファイルを検索するための検索コマンドの例Linux の究極のインタビュー質問:交換


Linux
  1. OpenStackインタビューの質問と回答のトップ30

  2. Linuxインタビューの質問と回答のトップ25

  3. 20ポストフィックスインタビューの質問と回答

  1. Linuxインタビューの質問トップ25

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

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

  1. Linux / UNIX :SUID/SGID が設定されたファイルを見つける方法

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

  3. Linux インタビューの質問 – 基本的なファイルとディレクトリのアクセス許可