次のアクセス許可では、2番目の「ルート」が何を表しているのかわかりません。
1つ目はパーミッションrws
(sは何を表していますか)を持つ所有者で、2つ目はrootという名前のグループです。 rootユーザーのみがメンバーになっている特別なグループですか?
$ ls -l /usr/bin/Sudo
-rwsr-xr-x 1 root root 157760 Jan 11 2016 /usr/bin/Sudo
私が間違っている場合、上記のアクセス許可の意味は何ですか?
s
のrws
は、setuid
を表しますset user IDを意味します。これは特別な許可ビットであり、ユーザーが実行するときに、プログラムを所有者(この場合はroot)のeffectiveUIDで実行できます。したがって、通常のユーザーとしてSudo
実行可能ファイルを実行するときは、rootとして効果的に実行します。この許可ビットはセキュリティリスクであり、絶対に必要な場合にのみ適用する必要があります。
The Linux Command Lineby William E. Shotts Jr :からのsetuid
ビットの説明==:
実行可能ファイルに適用されると、実際のユーザー(実際にプログラムを実行しているユーザー)の実効ユーザーIDをプログラムの所有者の実効ユーザーIDに設定します。ほとんどの場合、これはスーパーユーザーが所有するいくつかのプログラムに与えられます。一般ユーザーが「setuid root」であるプログラムを実行すると、そのプログラムはスーパーユーザーの有効な特権で実行されます。これにより、プログラムは、通常のユーザーが通常アクセスすることを禁止されているファイルやディレクトリにアクセスできます。明らかに、これはセキュリティ上の懸念を引き起こすため、setuidプログラムの数は絶対最小限に抑える必要があります。
リストの2番目のroot
は、ファイルを所有するgroupであり、はい、ユーザールートのみがグループルートにあります。
$ getent group root
root:x:0:
ユーザーとグループの所有権が異なるファイルの例を次に示します。
-rw-r----- 1 root shadow 1456 Nov 22 20:08 /etc/shadow
これは、ファイルの読み取りと書き込みはrootのみが行えることを意味しますが、グループshadowのメンバーもファイルを読み取ることができます。