Linuxボックスで、root権限を持つすべてのユーザーを一覧表示するにはどうすればよいですか(さらに良いことに、一般的に、すべてのユーザーが、rootを持っているかどうかにかかわらず)。
Rootパスワードを変更することを忘れないでください。 root以外のユーザーがUID 0を持っている場合、それらは許可されません。悪いアイデア。チェックする:
grep 'x:0:' /etc/passwd
繰り返しますが、これを行うべきではありませんが、ユーザーがルートグループのメンバーであるかどうかを確認するには、次のようにします。
grep root /etc/group
誰かがrootとしてコマンドを実行できるかどうかを確認するには、sudoersを確認します。
cat /etc/sudoers
Root権限でプログラムを実行できるようにするSUIDビットを確認するには:
find / -perm -04000
UID 0のユーザーを確認するには:
getent passwd 0
グループroot
、wheel
adm
、admin
のメンバーを確認するには:
getent group root wheel adm admin
すべてのユーザーとそれらがメンバーとなっているグループをリストするには、次のようにします。
getent passwd | cut -d : -f 1 | xargs groups
純粋なルートはユーザーID「0」です。
システム内のすべてのユーザーは/ etc/passwdファイルにあります。
less /etc/passwd
Rootのユーザーは、3番目の列であるユーザーIDとして「0」を持っています。グループ(4列目)が「0」のユーザーにも、いくつかのroot権限がある場合があります。
次に、グループを見て、「root」、「wheel」、または「admin」グループの追加のメンバーが誰であるかを確認します。
less /etc/group
これらのグループにリストされているユーザーは、特に「Sudo」コマンドを介して、いくつかのroot特権を持つことができます。
チェックする最後のことは、「Sudo」構成であり、このコマンドを実行する権限を持つユーザーがリストされているかどうかを確認します。このファイル自体は十分に文書化されているので、ここでは再現しません。
less /etc/sudoers
これは、誰がrootアクセスを持つことができるかという主な領域をカバーしています。
すべてのユーザーを印刷するには
Perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
他の人が言ったように、UID 0を持つユーザーのみを印刷するには、暗黙のroot特権を持つユーザー:
Perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
すべてのユーザーの簡単なリストを表示するには、passwd
コマンドに続けてスペースを入力した後、タブを2回(オートコンプリート)押してみてください。これはsu
コマンドでも機能します。
Root特権ユーザーとして実行する必要があります。
答えが1行でなかったのは私を困らせていました...すべてのUID 0(root)アカウントを一覧表示したい場合は、以下を使用します。
cat /etc/passwd | cut -f1,3,4 -d":" | grep"0:0" | cut -f1 -d":" | awk '{print $1}'
ベスト、