Linux посмотреть sudo пользователей

Обновлено: 07.07.2024

Как мне перечислить всех пользователей с правами администратора в Linux? Я проверил файл /etc /passwd /, но не знаю, как определить, какая учетная запись является привилегированной.

Во-первых, есть root ( UID = 0 ), который является и всегда будет единственным истинным администратором или суперпользователем.

Однако другим пользователям может быть предоставлена возможность выдавать себя за пользователя root , и таким образом они могут стать администраторами. Это можно сделать с помощью:

В системе Ubuntu учетная запись root обычно отключена, что означает, что root не имеет пароля, и вы не можете войти в эту учетную запись, поэтому su недоступен. root прежнему может выдавать себя за другого, что означает, что основной способ быть администратором - использовать команду sudo .

Чтобы узнать, кто обычно имеет права sudo, вы можете просмотреть файл sudoers , который находится в /etc/sudoers . Вы также можете посмотреть формат файла на страницах руководства. По умолчанию в Ubuntu есть группа admin , и любой в этой группе может использовать sudo . В других дистрибутивах может быть группа sudoers группа sudo или группа staff . Grawity добавляет, что большинство приложений KDE и Gnome используют polkit для управления авторизацией, которая обычно использует группу wheel для привилегий администратора. OS X также использует группу wheel для предоставления доступа администраторам к демонам и другим задачам системного уровня, а группа admin используется для предоставления доступа администратора к учетным записям пользователей.

Помимо этого, существует множество «частично-административных» вещей, которые можно настроить. Root является только "администратором", потому что он по своей сути обходит проверки безопасности. Если у пользователя есть определенные разрешения для определенной функции, то он также является "администратором" в этой области; Например, точно так же, как вы являетесь администратором в своем домашнем каталоге, вы можете назначить кого-то администратором через веб-сервер или администратором через видео / аудио выходы на компьютере (посмотрите video и audio группы, если я правильно помню Ubuntu ).

Подводя итог, не совсем простой способ получить "список администраторов". Однако, чтобы быстро получить большинство из них:


Мануал

На днях один из пользователей Linux спросил меня, как найти количество суперпользователей (пользователей, имеющих доступ к sudo), которые есть у меня на моем Linux-сервере?

Хороший вопрос, но у меня не было ответа. ЛОЛ!

Итак, я сделал быстрый поиск в Google.

К моему удивлению, это не так сложно. Это всего лишь однострочная команда.

Почему я не знал этого простого трюка?

Для тех, кто задается вопросом, как найти всех пользователей sudo или суперпользователей в вашей системе Linux, читайте дальше.

Вы можете утверждать, что хороший администратор Linux должен знать, сколько суперпользователей и обычных пользователей есть в системе, которую он управляет. Ты прав!

Тем не менее, есть вероятность, что иногда нам нужно предоставить временный доступ к суду нормальному пользователю для установки программного обеспечения или выполнения определенной административной задачи самостоятельно.

Со временем мы можем забыть отозвать доступ к sudo.

Таким образом, это хорошая практика, чтобы знать, сколько супер пользователей в вашей системе время от времени.

Если есть какой-либо забытый или нежелательный доступ к суду, вы можете просто отменить их.

Найти всех пользователей Sudo в Linux-системе

Сначала перечислим всех пользователей в системе.

Для этого запустите:

Пример вывода моей системы 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

Вы также можете использовать следующую команду для перечисления всех пользователей:

Среди всех пользователей мы найдем только пользователей sudo или super в нашей Linux-системе.

Кроме того, вы можете использовать команду «getent» вместо «grep», чтобы получить тот же результат.

Как видно из вышесказанного, «sk» и «itsecforu» являются пользователями sudo в моей системе.

В приведенных выше примерах мы перечислили всех пользователей sudo.

Возможно, вам захочется узнать, есть ли у определенного пользователя привилегии sudo или нет.

Пример вывода

Как видите, пользователь с именем «sk» может выполнять все команды.

Итак, он в группе судо.

Давайте проверим другого пользователя.

Пример вывода

Мы также можем найти, имеет ли пользователь доступ к sudo, выполнив следующую команду:

Если вы ничего не получаете в качестве вывода, пользователь все равно имеет доступ к sudo.

Если вы видите вывод, как показано ниже, пользователь не имеет доступа к sudo.

Удалить привилегии пользователя sudo

Теперь вы знаете пользователей sudo в вашей Linux-системе. Возможно, вы не захотите получить доступ к некоторым пользователям.

Если вы хотите удалить доступ к sudo для определенного пользователя, вы можете просто запустить:

Вышеупомянутая команда удалит пользователя с именем «itsecforu» из группы «sudo», но не из системы.

Другими словами, пользователь «itsecforu» теперь станет обычным пользователем.

Кроме того, вы можете использовать следующую команду для отмены доступа sudo от пользователя:

Будьте внимательны при удалении пользователей из группы sudo.

Не удаляйте действительного администратора из группы «sudo».

Убедитесь, что пользователь «itsecforu» действительно удален из группы sudo, используя команду:

Пользователь «itsecforu» не может запускать sudo на ubuntuserver.

Да, пользователь«itsecforu»» был удален из группы sudo, и он не может выполнять какие-либо административные задачи.

Если вы новый пользователь Linux, то, наверное, уже заметили, что здесь почти для всех серьёзных настроек или операций с системой нужны права суперпользователя. Пользователям Windows такой подход тоже должен быть знаком, когда вы устанавливаете программы или меняете системные настройки, операционная система просит подтвердить выполнение программы от имени администратора.

В Linux такой возможности нет, но зато есть команда sudo, которая позволяет вам запускать программы от имени других пользователей, а также от имени суперпользователя. На сайте уже есть несколько материалов про работу с ней, но нет подробной статьи про опции самой команды и её синтаксис. Эта тема и будет раскрыта сейчас. Дальше мы рассмотрим, что представляет из себя команда sudo Linux, но начнем с её синтаксиса.

Синтаксис sudo

Синтаксис команды очень прост:

$ sudo опции программа параметры

Так вы можете выполнить абсолютно любую команду Linux. Достаточно написать перед ней команду sudo. По умолчанию sudo запускает переданную ей команду от имени суперпользователя. Если вы хотите добавить какие-либо настройки или использовать другого пользователя, нужно указывать опции.

Опции sudo

  • -A или --askpass - по умолчанию sudo спрашивает пароль пользователя в терминале. Если задана эта опция, утилита попробует использовать графическую утилиту для запроса пароля.
  • -b или --background - запускает переданную программу в фоновом режиме;
  • -C или --close-from - опции нужно передать число больше трёх. Она позволяет закрыть для программы все файловые дескрипторы, кроме стандартного ввода и вывода;
  • -E или --preserve-env - позволяет передать переменные окружения текущего пользователя выполняемой программе. Также можно передать этой опции список переменных, которые нужно разрешить;
  • -e или --edit - позволяет редактировать файл вместо запуска команды. Файл копируется во временный каталог, редактируется с помощью редактора, установленного в системе по умолчанию, и если были изменения, записывается обратно с теми самыми правами;
  • -g - запустить команду с указанной группой вместо группы пользователя, от имени которого запускается программа;
  • -h - выполнить команду от имени другого хоста;
  • -H или --set-home - установить домашний каталог;
  • -i или --login - позволяет авторизоваться в консоли от имени другого пользователя. Будет выбран его домашний каталог, а также загружены все переменные окружения;
  • -k - по умолчанию, sudo сохраняет пароль и некоторое время после выполнения команды, вы можете выполнить ещё раз, без ввода пароля. Эта опция отключает такую возможность;
  • -l или --list - позволяет вывести список доступных команд для удалённых пользователей;
  • -n или --non-interactive - не интерактивный режим, если будет необходимо ввести пароль, программа выдаст ошибку;
  • -p или --prompt - использовать своё приглашение для ввода пароля;
  • -r или --role - выполнить программу с контекстом SELinux, у которого есть указанная роль;
  • -S - использовать стандартный поток ошибок для запроса пароля;
  • -s или --shell - позволяет запустить указанный командный интерпретатор;
  • -U или --User - вместе с опцией -l позволяет посмотреть привилегии для пользователя;
  • -T или --timeout - позволяет установить время выполнения команды, если время истечёт раньше, чем завершится команда, то она будет завершена принудительно;
  • -u - позволяет указать, от имени какого пользователя нужно выполнять программу;
  • -V - выводит версию утилиты;
  • -- - означает, что следующие опции обрабатывать не нужно.

Это основные опции, которые вы можете использовать. А теперь давайте перейдём к примерам использования команды.

Примеры использования sudo

1. Запуск программы

Самый частый пример использования sudo - выполнение программы от имени суперпользователя. Для этого достаточно написать sudo перед именем программы:


Если вы хотите выполнить программу не от имени root, а от имени другого пользователя, то можно использовать опцию -u, например:

sudo -u sergiy whoami

2. Переменные окружения

По умолчанию, команда sudo не передаёт запускаемой утилите переменные окружения текущего пользователя. А когда вы запускаете графическое приложение, то ему нужна переменная DISPLAY для доступа к графическому серверу. В последних версиях Ubuntu всё немного по другому, но все же эта возможность sudo актуальна. Чтобы передать переменные просто используйте опцию -E:


Без опции -E программа получает только 18 стандартных переменных, а с опцией - все доступные.


Также вы можете указать список переменных, которые нужно передать:

3. Авторизация от имени другого пользователя

С помощью sudo вы также можете авторизоваться от имени другого пользователя. Для этого используйте опцию -i:


По умолчанию вы будете авторизованы как суперпользователь. Ещё здесь можно указать пользователя, от имени которого вы хотите авторизоваться:

sudo -i -u sergiy


4. Командный интерпретатор

Если у вас в системе установлено несколько командных интерпретаторов, например, не только bash, но и zsh, то вы можете авторизоваться от имени другого пользователя и указать, какую именно оболочку вы хотите использовать. Для этого укажите опция -s:


5. Редактирование файлов

Когда вам необходимо отредактировать системный файл, вы пишите sudo vim или sudo nano. Вместо этого можно использовать опцию -e или команду sudoedit. Она открывает файл для редактирования, редактором, установленным в системе по умолчанию. Например, у меня это vim. Чтобы отредактировать /etc/group с правами суперпользователя достаточно выполнить:

sudo -e /etc/group

Утилита узнает, каким редактором нужно пользоваться из переменной окружения EDITOR.

6. Запуск в фоне

Чтобы запустить программу в фоне с помощью sudo можно использовать опцию -b. Например, запускаем OpenVPN в фоновом режиме:

sudo -b openvpn -с /путь/к/конфигурационному.файлу


7. Просмотр полномочий

Вам необязательно редактировать конфигурационный файл, чтобы понять, какие настройки для sudo разрешены, а какие нет. Для этого можно выполнить команду с опцией -l. Утилита выведет список разрешённых команд или ALL в случае, если разрешено всё:


Выводы

Теперь вы знаете, что из себя представляет команда sudo Linux. Здесь мы рассмотрели только общие примеры её использования. Если вы хотите прочитать более подробно про её настройку, смотрите статью настройка sudo в Linux.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.


Сегодня разные операционные системы имеют возможность использовать несколько пользователей, каждый со своими настройками и пользовательскими конфигурациями, чтобы облегчить совместную работу администраторов и операторов в одной системе.

Linux,очень силен в этом вопросе, поскольку позволяет нескольким пользователям одновременно работать в системе независимо. Он может даже позволить одному пользователю открывать несколько сеансов даже из разных мест для работы в системе.

Вот некоторые советы и рекомендации для как узнать всех пользователей Linux.

Список всех пользователей в Linux

Допустим, вы хотите создать пользователя sudo в Linux. Наверное, самое первое, что нужно знать, это как узнать, какие пользователи уже есть в моей системе. Есть несколько способов получить список пользователей в Linux.

1. Показать пользователей в Linux, используя cat /etc/passwd

Эта команда позволяет сисопам перечислять пользователей, которые локально хранятся в системе. Это даст список в структурированном виде, как:

Структура в приведенном выше выводе выглядит так:

Почему так много пользователей? Какие из них «настоящие»?

Список показывает намного больше пользователей, чем вы ожидали, потому что в нем также перечислены все пользователи системы.

Теперь, если вы хотите отличить обычных пользователей от системных пользователей, вы можете обратиться к номеру идентификатора пользователя (UID).

Обычно обычный пользователь имеет UID, больший или равный 1000. Это дает вам подсказку, что пользователь с UID> = 1000 является обычным пользователем, а пользователи с UID <1000 являются системными пользователями.

Вы также заметите, что у некоторых пользователей есть «nologin» в конце их строки. Это означает, что эти пользователи не могут войти в систему. Эти пользователи также называются псевдопользователями.

2. Просмотр пользователей с помощью getent passwd

Эта команда выдаст вам вывод, аналогичный «less /etc/passwd», однако на самом деле он запрашивает файл конфигурации функциональных возможностей переключателя службы имен GNU (находится в /etc/nsswitch.conf).

Это conf включает passwd, поэтому он будет отображаться очень похоже, но если вы используете LDAP для аутентификации, он также будет включать это.

3. Список пользователей Linux с compgen

Вывод будет выглядеть так:

Несколько советов о перечислении пользователей в Linux

Вы только что увидели три способа просмотра пользователей в Linux. Вот несколько советов, которые помогут вам при работе с списком пользователей.

Список только имена пользователей

У вас уже есть команда compgen для этого, но вам не нужно постоянно ее помнить.

Если мы хотим получить только список имен пользователей в системе, вы можете использовать команду awk или команду cut для фильтрации вывода двух других команд, которые мы видели ранее.

Любой из них даст нам отфильтрованный список пользователей, показывая только самый первый столбец с именем пользователя:

Проверьте, существует ли имя пользователя в системе

Это может быть полезно, если вы хотите знать, существует ли конкретное имя пользователя в системе:

Список всех подключенных пользователей

Если вы хотите знать какие пользователи в настоящее время вошли в вашу систему Linux, вам нужно использовать простую команду who и это немедленно выведет список текущих имен пользователей с активным сеансом в вашей системе.

В этом случае в списке появится не только список подключенных имен пользователей, но и то, как они подключены, с момента, когда они подключены и откуда они подключены.

В самом первом столбце будет указано, какое это имя пользователя.

Как видите, перечисление пользователей в Linux совсем не сложно. Он состоит из простых команд, которые выводят всю информацию для вас, что бы вы ни хотели сделать или получить эту информацию, это то, что вам нужно отфильтровать в зависимости от того, что вы хотите проверить в системе.

Читайте также: