Назад | Перейти на главную страницу

Как мне вывести список всех пользователей с правами root?

В Linux-системе, как мне перечислить всех пользователей с привилегиями root (и, что еще лучше, всех пользователей в целом, а также, есть ли у них root или нет)?

Не забудьте изменить пароль root. Если какой-либо пользователь имеет UID 0, кроме root, этого не должно быть. Плохая идея. Проверять:

grep 'x:0:' /etc/passwd

Опять же, вам не следует этого делать, кроме как проверить, является ли пользователь членом корневой группы:

grep root /etc/group

Чтобы узнать, может ли кто-нибудь выполнять команды от имени пользователя root, проверьте sudoers:

cat /etc/sudoers

Чтобы проверить бит SUID, который позволяет запускать программы с привилегиями root:

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

Чистый root - это идентификатор пользователя "0".

Все пользователи системы находятся в файле / etc / passwd:

less /etc/passwd

Те, кто имеют root-права, имеют идентификатор пользователя «0», это 3-й столбец. Те, у кого есть группа «0» (4-й столбец), также могут иметь некоторые привилегии root.

Затем вы захотите просмотреть группы и узнать, кто является дополнительным членом группы «root», «wheel» или «admin»:

less /etc/group

Пользователи, перечисленные в этих группах, могут иметь некоторые привилегии root, особенно с помощью команды «sudo».

Последнее, что вы захотите проверить, - это конфигурация "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 команда, за которой следует пробел. Это работает с su команда тоже.

Должен быть выполнен как пользователь с привилегиями root.

Меня раздражало, что не было однострочного ответа ... Если вы хотите перечислить все учетные записи UID 0 (root), используйте следующее:

cat /etc/passwd | cut -f1,3,4 -d":" | grep"0:0" | cut -f1 -d":" | awk '{print $1}'

Лучший,