Как найти всех пользователей Sudo в Linux?
Иногда вы можете предоставлять временный sudo доступ обычным пользователям для выполнения определенных задач, таких как установка программного обеспечения или административная работа. Со временем вы можете забыть отозвать привилегии sudo. Для обеспечения безопасности рекомендуется периодически проверять наличие суперпользователей с доступом sudo в системе Linux. Если вы обнаружите забытые или ненужные права sudo, вы можете просто отозвать их. В этом кратком руководстве описано, как найти всех пользователей sudo в Linux и Unix-подобных операционных системах.
Отображение всех пользователей
Сначала выведем список всех пользователей в системе. Для этого выполните:
awk -F':' '{ print $1}' /etc/passwd
Пример вывода из моей системы Ubuntu:
root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-timesync systemd-network systemd-resolve systemd-bus-proxy syslog _apt lxd messagebus uuidd dnsmasq sshd sk senthil kumar ostechnix
Другой способ вывести список всех пользователей в системе Linux:
compgen -u
Список будет тот же.
Список пользователей Sudo в Linux
В большинстве дистрибутивов Linux члены группы «sudo» или «wheel» наделены привилегиями sudo. Для просмотра членов группы «sudo» можно использовать команду getent
или просто перечислить содержимое файла /etc/group
:
Чтобы найти всех sudo или суперпользователей в Linux, используйте команду getent
, как показано ниже:
getent group sudo sudo:x:27:sk,ostechnix
Пояснение вывода:
sudo
: Это имя группы. В данном случае это группа sudo, которая обычно предоставляет ее членам привилегии sudo (суперпользователя).x
: Это поле представляет собой групповой пароль, который обычно не используется в современных Linux-системах. Поэтому обычно устанавливается значение «x» или заполнитель.27
: Это идентификатор группы (GID), присвоенный группе sudo.- *
sk
,ostechnix
: Это члены группы sudo.
В общем, вывод показывает информацию о группе sudo, ее идентификаторе группы и пользователях «sk» и «ostechnix», имеющих привилегии sudo в системе. Этот пользователь может выполнять административные задачи с помощью команды sudo.
Альтернативно можно определить всех пользователей sudo, перечислив содержимое файла /etc/group
:
cat /etc/group | grep '^sudo:' sudo:x:27:sk,ostechnix
Вы можете получить упрощенный вывод, исключив другие параметры и перечислив только имена пользователей sudo, как показано ниже.
getent group sudo | cut -d: -f4 sk,ostechnix
Давайте разберем команду и посмотрим, что делает каждый параметр.
Приведенная выше команда представляет собой комбинацию двух команд Linux:
getent group sudo
: Эта команда извлекает информацию о группе sudo из базы данных системы. Утилитаgetent
используется для запроса баз данных Name Service Switch (NSS), и в данном случае она извлекает информацию о группе sudo.cut -d: -f4
: Выходные данные предыдущей команды передаются (символ|
) в командуcut
, которая используется для извлечения определенных полей из входных данных. В данном случае каждая строка разделяется символом «:» в качестве разделителя (-d:
) и выбирается четвертое поле (-f4
).
Таким образом, целью данной команды является получение и отображение списка идентификаторов пользователей (UID), входящих в группу «sudo».
Каждая строка в выходных данных представляет собой идентификатор пользователя, входящего в группу «sudo». Идентификаторы пользователей, перечисленные в выводе, обычно используются для сопоставления пользователей с их именами в файле /etc/passwd
.
Вы также можете использовать команду «grep « для фильтрации имен пользователей sudo из файла /etc/group
и получить тот же результат, что и предыдущая команда.
grep '^sudo:.*$' /etc/group | cut -d: -f4 sk,ostechnix
Как упоминалось ранее, принадлежность к группе sudo позволяет пользователю выполнять команды с повышенными привилегиями с помощью команды sudo.
Поиск пользователя с привилегиями Sudo
Теперь мы знаем, как найти всех пользователей sudo в нашей системе Linux. Как узнать, имеет ли определенный пользователь привилегии sudo или нет? Проверить sudo доступ отдельного пользователя очень просто.
Если вы хотите проверить sudo доступ для конкретного пользователя, вы можете использовать команду sudo -l
:
sudo -l -U sk Matching Defaults entries for sk on ubuntuserver: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User sk may run the following commands on ubuntuserver: (ALL : ALL) ALL
Как вы видите, пользователь с именем «sk» может выполнять все команды. Значит, он входит в группу sudo.
Давайте проверим другого пользователя.
sudo -l -U senthil User senthil is not allowed to run sudo on ubuntuserver.
Ну, пользователь «senthil» не имеет права запускать sudo. Он является обычным пользователем! Мы также можем узнать, имеет ли пользователь доступ sudo, выполнив следующую команду:
sudo -nv
Если результат ничего не показывает, то пользователь имеет доступ sudo.
Если вы видите результат, как показано ниже, то пользователь не имеет доступа sudo.
sudo -nv Sorry, user senthil may not run sudo on ubuntuserver.
Заключение
Зная, как найти всех пользователей sudo в Linux, вы сможете лучше управлять доступом sudo в своей системе. Это поможет убедиться в том, что только авторизованные пользователи имеют доступ к привилегиям sudo, и что доступом sudo не злоупотребляют.
Часто задаваемые вопросы
Что такое пользователи sudo в Linux?
В Linux пользователи sudo – это обычные пользователи, которым предоставлены специальные привилегии для выполнения административных задач. Они могут использовать команду «sudo» для временного повышения своих привилегий и выполнения команд от имени суперпользователя (root) без входа в систему в качестве пользователя root.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен ostechnix.com
Комментарии (0)