Как найти всех пользователей Sudo в Linux
Пользователи Sudo: кто они и как их найти в Linux и Unix.
Как администратор Linux, вы должны знать, как добавлять, удалять и предоставлять пользователям привилегии sudo. Иногда вы можете предоставить временный доступ 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
Дополнительные способы отображения всех пользователей в Linux можно найти в следующем руководстве.
Как составить список всех пользователей в Linux
Получение списка пользователей 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
Как вы видите в приведенном выше выводе, «sk» и «ostechnix» — это пользователи sudo в моей системе.
Вы можете получить упрощенный вывод, исключив другие параметры и указав только имена пользователей sudo, как показано ниже.
getent group sudo | cut -d: -f4
sk,ostechnix
Давайте разберем команду и посмотрим, что делает каждый параметр.
Приведенная выше команда представляет собой комбинацию двух команд Linux:
getent group sudo
: эта команда извлекает информацию о группе «sudo» из базы данных системы. Утилитаgetent
используется для запроса баз данных коммутатора службы имен (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
Эта команда поможет вам узнать, является ли пользователь пользователем sudo или нет.
Пример вывода:
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.
Итак, пользователю «sentil» не разрешено запускать sudo. Он обычный пользователь!
Мы также можем узнать, есть ли у пользователя доступ к sudo, выполнив следующую команду:
sudo -nv
Если выходные данные ничего не показывают, у пользователя есть доступ к sudo.
Если вы видите вывод, подобный приведенному ниже, значит, у пользователя нет доступа к sudo.
sudo -nv
Sorry, user senthil may not run sudo on ubuntuserver.
Часто задаваемые вопросы
Вопрос: Что такое пользователи sudo в Linux?
О: В Linux пользователи sudo — это обычные пользователи, которым предоставлены особые привилегии для выполнения административных задач. Они могут использовать команду «sudo», чтобы временно повысить свои привилегии и выполнять команды от имени суперпользователя (root) без входа в систему как пользователь root.
Вопрос: Как мне найти всех пользователей sudo в моей системе Linux?
О: Вы можете найти всех пользователей sudo в Linux, используя разные методы. Один из способов — проверить группу «sudo» в файле /etc/group
с помощью следующей команды:cat /etc/group | grep '^sudo:'
Это отобразит список пользователей, которые являются членами группы «sudo», обычно имеющих доступ к sudo.
Вопрос: Могу ли я использовать команду «sudo -l» для поиска пользователей sudo?
О: Хотя команда sudo -l
полезна для проверки привилегий sudo конкретного пользователя, она не предоставляет напрямую полный список всех пользователей sudo в системе. Он больше подходит для проверки разрешений sudo отдельного пользователя.
Вопрос: Почему важно найти пользователей sudo в системе Linux?
О: Очень важно периодически проверять наличие пользователей sudo в системе Linux, чтобы обеспечить безопасность и правильное управление привилегиями. Со временем временный доступ к sudo может быть забыт или не отозван, что потенциально может привести к угрозе безопасности. Идентифицируя всех пользователей sudo, администраторы могут просматривать и контролировать, кто имеет повышенные привилегии в системе.
Вопрос: Можно ли проверять пользователей sudo в Unix-подобных системах, отличных от Linux?
О: Да, тот же подход можно использовать для проверки пользователей sudo в Unix-подобных системах, таких как macOS, FreeBSD или других операционных системах на базе UNIX. Конфигурация файла sudoers и группы может немного отличаться, но общий метод остается схожим.
Заключение
Зная, как найти всех пользователей sudo в Linux, вы сможете лучше управлять доступом к sudo в своей системе. Это может помочь гарантировать, что только авторизованные пользователи имеют доступ к привилегиям sudo и что доступ sudo не будет злоупотреблять.
Надеюсь, это поможет.
Рекомендуется прочитать:
- Как составить список членов группы в Linux
- Как предоставить и удалить привилегии Sudo пользователям в Ubuntu
- Как изменить файл журнала Sudo по умолчанию в Linux
- Как восстановить права пользователя Sudo
- Как запустить определенные команды без пароля Sudo в Linux