Вопрос: Команда для перечисления всех пользователей? И как добавлять, удалять, изменять пользователей?


Мне нужна команда для перечисления всех пользователей в терминале. И как добавлять, удалять, изменять пользователей из терминала.

Это может облегчить администрирование ваших учетных записей с помощью терминала.


678
2018-01-24 20:23


Источник


ответ sed sed 's/:.*//' /etc/passwd - Avinash Raj
список пользователей: awk -F: '{ print $1 }' /etc/passwd - saviour123


Ответы:


Чтобы перечислить все местный пользователей, которых вы можете использовать:

cut -d: -f1 /etc/passwd

Чтобы просмотреть список всех пользователей, которые могут аутентифицироваться (в некотором роде), включая нелокальные, см. Ответ: https://askubuntu.com/a/414561/571941

Некоторые более полезные команды управления пользователями (также ограниченные местный пользователей):

Чтобы добавить нового пользователя, вы можете использовать:

sudo adduser новое имя пользователя

или:

sudo useradd новое имя пользователя

Смотрите также: В чем разница между adduser и useradd?

Чтобы удалить / удалить пользователя, сначала вы можете использовать:

sudo userdel имя пользователя

Затем вы можете удалить домашний каталог для удаленной учетной записи пользователя:

sudo rm -r / главная /имя пользователя

(Пожалуйста, используйте с осторожностью вышеуказанную команду!)

Чтобы изменить имя пользователя пользователя:

usermod -l новое имя пользователя старое имя пользователя

Чтобы изменить пароль для пользователя:

sudo passwd имя пользователя

Чтобы изменить оболочку для пользователя:

sudo chsh имя пользователя

Чтобы изменить информацию для пользователя (например, настоящее имя):

sudo chfn имя пользователя

И, конечно же, см. Также: man adduser, man useradd, man userdel... и так далее.


913
2018-01-24 19:28



Раду забыл упомянуть sudo chfn <username> который изменяет детали пользователя (например, настоящее имя). Я попытался добавить это как комментарий, но у меня появилась ошибка, говорящая мне, что я должен иметь репутацию +50. - Mikaela
Я считаю, что следует подчеркнуть, что правильный ответ на связанный вопрос askubuntu.com/a/381646/16395 --- в противном случае вы должны вручную учесть политики GID / UID Ubuntu. Принятый ответ не так ясен. - Rmano
sudo userdel DOMAIN \\ johndoe дает мне ошибку: «userdel: не удается удалить запись« DOMAIN \ johndoe »из / etc / passwd - я просмотрел / etc / passwd, и они даже не там, вероятно, потому что это" домен "? - 00fruX
@ 00fruX Да ... Если вы используете централизованную базу данных пользователей, вам придется иметь дело с ней напрямую. - Oli♦
+1 для В чем разница между adduser и useradd? - sonlexqt


Просто нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующие команды:

cat /etc/passwd

ИЛИ

less /etc/passwd
more /etc/passwd

Вы также можете использовать awk:AWK

awk -F':' '{ print $1}' /etc/passwd

71
2018-01-24 19:38



как добавить пользователей по команде? - nux
Вы можете использовать useradd команда. - Mitch♦
@nux Немного поздно, но из командной строки adduser вместо, useradd должен быть ограничен сценариями, где автор действительно действительно знает, что он делает. - flindeberg


Самый простой способ получить такую ​​информацию - getent - видеть manpage для getent команда Manpage icon, Хотя эта команда дает тот же результат, что и cat /etc/passwd это полезно запомнить, потому что он предоставит вам списки из нескольких элементов в ОС.

Чтобы получить список всех пользователей, которые вы вводите (поскольку пользователи указаны в /etc/passwd)

getent passwd

Чтобы добавить пользователя новый пользователь к системе, которую вы набрали бы

sudo adduser newuser

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

Бонус: Чтобы добавить любого пользователя (например ANYUSER) группе (например, CDROM) тип

sudo adduser anyuser cdrom

Вы удаляете пользователя (например, устарелый) с

sudo deluser obsolete

Если вы хотите также удалить свой домашний каталог / почту, введите

sudo deluser --remove-home obsolete

А также

sudo deluser --remove-all-files obsolete

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


50



Полезно помнить, что getent не просто печатает выходные данные в файле / etc / passwd, а все пользователи во всех настроенных бэкэндах userdb в данной системе, будь то / etc / passwd или LDAP и т. Д. - Marcin Kaminski


Вы можете использовать compgen встроенный:

compgen -u

Будет список всех пользователей.


18





Это должно получиться, в большинстве нормальных ситуаций, все обычные (несистемные, не странные и т. д.) пользователи:

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Это работает:

  • чтение из /etc/passwd
  • с помощью : как разделитель
  • если третье поле (идентификационный номер пользователя) больше 1000, а не 65534, будет напечатано первое поле (имя пользователя пользователя).

Это связано с тем, что во многих системах Linux имена пользователей более 1000 зарезервированы для непривилегированных (вы можете сказать, обычных) пользователей. Некоторая информация об этом Вот:

Идентификатор пользователя (UID) - это уникальное положительное целое число, присвоенное Unix-подобным   операционной системы для каждого пользователя. Каждый пользователь идентифицируется с системой   по его UID, а имена пользователей обычно используются только как интерфейс для   люди.

UID хранятся вместе с соответствующими именами пользователей и другими   пользовательская информация в файле / etc / passwd ...

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

В ядрах Linux 2.4 и выше UID представляют собой неподписанные 32-битные целые числа   который может представлять значения от нуля до 4 294 967 296. Однако это   рекомендуется использовать значения до 65534 для поддержания   совместимость с системами с использованием старых ядер или файловых систем, которые могут   используются только 16-битные UID.

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

UID 65534 обычно зарезервирован для никого, пользователь без системы   привилегий, в отличие от обычного (то есть непривилегированного) пользователя.   Этот UID часто используется для удаленного доступа пользователей к системе   через FTP (протокол передачи файлов) или HTTP (передача гипертекста   Протокол).

UID с 1 по 99 традиционно зарезервированы для специальных пользователей системы   (иногда называемые псевдо-пользователями), такие как колесо, демон, lp, оператор,   новости, почта и т. д. Эти пользователи - администраторы, которым не нужны   но которые выполняют некоторые административные задачи и, следовательно, нуждаются в   больше привилегий, чем у обычных пользователей.

Некоторые дистрибутивы Linux (то есть версии) запускают UID для   не-привилегированные пользователи на 100. Другие, такие как Red Hat, начинают их на   500, а третьи, такие Debian, начинают их на 1000. Из-за   различия между распределениями, ручное вмешательство может быть необходимо   если несколько распределений используются в сети в организации.

Кроме того, может быть удобно зарезервировать блок UID для локальных пользователей,   например от 1000 до 9999, и еще один блок для удаленных пользователей (то есть,   пользователей в другом месте сети), например, от 10000 до 65534. Важный   дело в том, чтобы выбрать схему и придерживаться ее.

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

Вопреки распространенному мнению, нет необходимости, чтобы каждая запись в   Поле UID будет уникальным. Однако не уникальные UID могут вызывать безопасность   проблемы, и, таким образом, UID должны быть уникальными на всем протяжении   организация. Аналогичным образом, рециркуляция UID от бывших пользователей должна быть   избегали как можно дольше.


17





список всех пользователей, которые могут войти в систему (нет пользователей системы, таких как: bin, deamon, mail, sys и т. д.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

Добавить новый пользователь

sudo adduser new_username

или

sudo useradd new_username

Удалить/ удалить имя пользователя

sudo userdel username

Если вы хотите удалить домашний каталог (по умолчанию - каталог / home / username)

sudo deluser --remove-home username

или

sudo rm -r /path/to/user_home_dir

Если вы хотите удалить все файлы из системы от этого пользователя (это не только домашний справочник)

sudo deluser --remove-all-files

13



Может быть, вы должны объяснить разницу между adduser а также useradd, Также добавьте sudo-prefix для первой команды. Теневой файл пароля может быть прочитан только как root. - s3lph
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow показал мне всех пользователей, включая bin, daemon и т. д., и бросил это предупреждение: escape-последовательность \$' treated as plain $ 'Я нашел этот пост stackoverflow.com/a/25867768/847954  и добавил еще одну обратную косую черту, и она отлично работала: awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow - jeff musk


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

user (tab tab)

дает мне как можно больше вариантов     useradd userdel usermod users users-admin
если вы хотите узнать больше о команде google или введите man     Пользователь useradd дает     useradd - создать новый пользователь или обновить информацию о новых пользователях по умолчанию     ...     ...

чтобы список пользователей вы должны пойти с тем, что сказал Митч.

Надеюсь, что мне очень нравится, что вкладка заканчивается в bash, спасает меня от воспоминаний.


7





Чтобы узнать пользователей, у которых есть домашние каталоги в / home-папке на компьютере, выполните следующие команды

cd /home
ls 

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


4



Это показывает только содержание /home, Хотя Ubuntu по умолчанию помещает каталоги пользователей по умолчанию, это никоим образом не является обязательным. - David Foerster