List admins on Linux
How do I list all users with admin rights on Linux? I checked file /etc/passwd/, but I don’t know how can I figure out which account is privileged.
There is only one privileged account — root. There may be people listed in the /etc/sudoers file who can GAIN root privileges, but root is the highlander — there can only be one.
@scai: true, but that’s not a supported use. all the «who does this uid belong to» functions only return a single user, the first one found in /etc/passwd.
5 Answers 5
First, there is root ( UID = 0 ), which is and always be the only true admin, or superuser.
However, other users may be given the ability to impersonate root , and in that way effectively become admins. This can be done with:
- su : This command impersonates a user and opens a shell, but you need to know the target user’s password. This allows anyone who knows root’s password to become an administrator.
- sudo : This command impersonates a user and executes a command, but you need to know the invoking user’s password, and the invoking user must have sudo privileges. This allows anyone with sudo privileges to become an administrator.
On an Ubuntu system, the root account is generally disabled, which means root doesn’t have a password and you can’t log into that account, so su is not available. root can still be impersonated, however, which means the primary method of being an admin is through the sudo command.
To find out who generally has sudo privileges, you can view the sudoers file, which is located at /etc/sudoers . You might also want to look up the file format in the man pages. By default, Ubuntu has an admin group, and anyone in that group can use sudo . Other distributions might have a sudoers group or a sudo group or a staff group. grawity adds that most KDE and Gnome applications use polkit to manage authorization, which usually uses the wheel group for administrator privileges. OS X also uses the wheel group to give admin access to daemons and other system-level tasks, while the admin group is used to give administrator access to user accounts.
Beyond this, there are a myriad of «partial-admin» things that can be set up. Root is only an «admin» because it inherently bypasses security checks. If a user has specific permissions for a certain function, then they too are an «admin» over that area; For example, just as you are an admin over your home directory, you can make someone an admin over the webserver, or an admin over the video/audio outputs on the computer (Look up the video and audio groups, if I remember Ubuntu correctly).
To summarize, there’s not exactly an easy way to get a «list of administrators». However, to quickly get most of them:
- root , just because.
- Anyone with sudo privileges, or in a group with sudo privileges. Usually anyone in the admin , wheel , staff , sudo , or sudoers groups, if they exist.
- Of course, anyone that knows the password to the aforementioned accounts.
Как узнать, являюсь ли я администратором моего Ubuntu?
Есть ли способ узнать, являюсь ли я администратором моего Ubuntu 14.04? Если нет, как я могу стать администратором?
3 ответа
В графическом интерфейсе по умолчанию откройте Системные настройки и перейдите к инструменту «Учетные записи пользователей». Здесь отображается ваш «Тип учетной записи»: «Стандартный» или «Администратор».
В командной строке выполните команду id или же groups и посмотрите, находитесь ли вы в sudo группа. На Ubuntu, как правило, администраторы находятся в sudo группа.
У вас может быть административный доступ, если вы были непосредственно добавлены в список sudoers — это более вероятно, если администратор знаком с Linux или Unix в целом и не использовал метод Ubuntu по умолчанию. Попробуйте запустить sudo echo ok и введите свой пароль; если это печатает ok Вы администратор.
Просто наберите id в терминале. Он выводит идентификатор пользователя, идентификатор группы и членство в группах вашей учетной записи. В моем случае:
UID=1000(jacob) GID=1000(jacob) groepen=1000(jacob),4(adm),24(cdrom),27(sudo),30
«27 (sudo)» означает, что я являюсь членом группы «sudo», и у меня есть возможность запускать команды с sudo другими словами: я администратор.
Для сравнения, вывод «нормального» пользователя:
UID=1001(testpersoon) GID=1001(testpersoon) groepen=1001(testpersoon),1000(jacob)
Чтобы превратить «обычного» пользователя в администратора, добавьте его в группу sudo :
sudo adduser sudo (from an administrator's user account)
По умолчанию учетная запись root отключена в Ubuntu, учетная запись root имеет UID = 0, попробуйте:
id и посмотрите, что выводится, если он отличный от нуля, вы не корень.
Но вы можете проверить, можете ли вы использовать права root с помощью sudo:
Если вы не можете это будет заявить:
Sorry, user [username] may not run sudo on [hostname].
Еще советы при открытии терминала:
If $ at the end of the prompt that means standard user . If # that means root user
Это означает, что я обычный пользователь.
Список администраторов в Linux
Как мне перечислить всех пользователей с правами администратора в Linux? Я проверил файл /etc /passwd /, но не знаю, как определить, какая учетная запись является привилегированной.
5 ответов 5
- su : эта команда олицетворяет пользователя и открывает оболочку, но вам необходимо знать пароль целевого пользователя. Это позволяет любому, кто знает пароль root, стать администратором.
- sudo : эта команда олицетворяет пользователя и выполняет команду, но вам необходимо знать пароль вызывающего пользователя, и вызывающий пользователь должен иметь права sudo. Это позволяет любому пользователю с привилегиями sudo стать администратором.
В системе 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 ).
Подводя итог, не совсем простой способ получить «список администраторов». Однако, чтобы быстро получить большинство из них:
- root , просто потому что.
- Любой с привилегиями sudo или в группе с привилегиями sudo. Обычно кто-либо из групп admin , wheel , staff , sudo или sudoers , если они существуют.
- Конечно, любой, кто знает пароль к вышеупомянутым аккаунтам.
Как получить список пользователей, которым разрешено sudo?
Есть сервер с большим числом системных пользователей, имеющих доступ к нему по SSH. В рамках задачи по инвентаризации доступов необходимо получить список всех пользователей, которым на этом сервере разрешено становиться рутом через sudo . Понятно, что про единичного пользователя можно посмотреть вывод id username на предмет группы wheel (которая из коробки даёт в CentOS возможность становиться рутом через sudo ), но как бы получить список всех таких пользователей? Понятно, что можно написать цикл, в котором перебрать вывод id для всех пользователей системы, но можно ли сделать как-нибудь поизящнее?
2 ответа 2
универсальный способ получения списка пользователей указанной группы — с помощью программы getent, вызванной для базы данных group (баз данных много, смотрите в документации: $ man getent ):
$ getent group название-группы
название-группы:x:1000:пользователь1,пользователь2,пользователь3
чаще всего это просто строка из файла /etc/group , которую можно было получить и командой
$ grep '^название-группы:' /etc/group
но далеко не всегда — ведь существуют разные механизмы аутентификации, хранящие данные совсем по-другому.
а по поводу глобального вопроса — получения списка пользователей, которым разрешено выполнение программы sudo, короткого, универсального и простого решения, насколько мне известно, нет. надо либо производить синтаксический разбора файлов /etc/sudoers* , либо, получив полный список пользователей от всех аутентификационных подсистем (с помощью $ getent passwd ), анализировать для каждого пользователя вывод команды (не будет работать на старых версиях программы sudo):
User пользователь is not allowed to run sudo on .