私が継承したシステムの一部のユーザーのグループは、/ etc/passwdで0に設定されています。どういう意味ですか?彼らは本質的に完全なルート権限を取得しますか?
システムはCentOS 5を実行しており、ユーザーは主にシステム関連のものであるように見えますが、元の管理者もそのグループに属しています。
$ grep :0: /etc/passwd root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt operator:x:11:0:operator:/root:/sbin/nologin jsmith:x:500:0:Joe Smith:/home/jsmith:/bin/bash $
ユーザー0(rootユーザー)とは異なり、グループ0にはカーネルレベルでの特別な権限はありません。
伝統的に、グループ0は多くのUNIXバリアントに対して特別な特権を持っていました— su
を使用してrootになる(rootパスワードを入力した後)権利、またはパスワードを入力せずにrootになる権利。基本的に、グループ0のユーザーはシステム管理者でした。グループ0に特別な権限がある場合、wheel
と呼ばれます
Linuxでは、グループ0は、Sudo
やsu
などの特権昇格ユーティリティにとって特別な意味を持ちません。参照 Debianがデフォルトで 'wheel'グループを作成しないのはなぜですか?
CentOSでは、私の知る限り、グループ0に特別な意味はありません。デフォルトのsudoers
ファイルでは参照されません。そのシステムの管理者は、UNIXの伝統をエミュレートし、グループ0のメンバーにいくつかの特別な権限を与えることを決定した可能性があります。 PAM構成を確認してください(/etc/pam.conf
、/etc/pam.d/*
)とsudoersファイル(/etc/sudoers
)(これらは、グループ0が特別な特権を与えられた可能性がある唯一の場所ではありませんが、最も可能性が高いです)。
ユーザーID 0とは異なり、カーネルはグループ0に特別な権限を与えません。ただし、0は通常root
ユーザーのデフォルトグループであるため、これらのユーザーは所有されているファイルにアクセスしたり変更したりできることがよくありますrootによる(これらのファイルはグループ0も所有していることが多いため)。
さらに、一部のプログラムは、グループ0を特別に処理する場合があります。たとえば、一部のBSDシステムではsu
パスワードなしのrootアクセスをグループ0のメンバーに許可します 。
そのため、これはスーパーユーザークラスではありませんが、誰がメンバーであるかに注意します。
これは単に、プライマリグループが他のものではなくroot
であることを意味します。したがって、たとえば、グループ設定がroot
であるファイルにアクセスするときは、グループ設定を使用します。
ほとんどの標準システムファイルはroot.root
ですが、グループのアクセス許可は通常、ワールドのアクセス許可と同じであるため、システムが標準ファイルのグループのアクセス許可を変更していない限り、これだけではメリットはありません。
完全なroot権限は付与されません。
私はパーティーに少し遅れましたが、今日も同じ質問をして、次の結論に達しました。
これは 最小特権の原則 に反するため、避ける必要があります。
より具体的には、これにより、ユーザー(読み取り、書き込み、または実行)に、多くの通常のファイルとディレクトリだけでなく、システムカーネルとやり取りする 特別なもの へのアクセス許可も付与されます。
ただし、これはシステムによって異なる可能性があるため、これを実行してすべてを検索および検査する必要があります(最初は読み取り、2番目は書き込み、eXecuteはリーダーの演習として残されています)。
find / -group 0 -perm -g+r ! -perm -o+r -ls | less
find / -group 0 -perm -g+w ! -perm -o+w -ls | less
これらの一部は通常のファイルおよびディレクトリ(ホームディレクトリ/ rootなど)である場合がありますが、その他はカーネルへのインターフェースである疑似ファイル(/ procや/ sysなど)である場合があります。
例えば。:
find /sys -type f -group 0 -perm -g+w ! -perm -o+w -name 'remove'
/sys/devices/pci0000:00/0000:00:17.0/0000:13:00.0/remove
/sys/devices/pci0000:00/0000:00:17.0/remove
/sys/devices/pci0000:00/0000:00:16.6/remove
...
etc.
使用する lspci -v |less
これらのデバイスが何であるかを調べるには(例:ストレージコントローラー、USBコントローラー、ネットワークカード、ビデオカードなど)