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

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

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

10 ответов

Решение

К списку

Для просмотра списка всех локальных пользователей вы можете использовать:

cut -d: -f1 /etc/passwd

Чтобы просмотреть список всех пользователей, способных к аутентификации (каким-либо образом), включая нелокальных, см. Этот ответ.

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

Добавить

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

sudo adduser new_username

или же:

sudo useradd new_username

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

Удалить / удалить

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

sudo userdel username

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

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

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

Модифицировать

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

usermod -l new_username old_username

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

sudo passwd username

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

sudo chsh username

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

sudo chfn username

Чтобы добавить пользователя в sudo группа:

adduser username sudo

или же

usermod -aG sudo username

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

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

cat /etc/passwd

ИЛИ ЖЕ

less /etc/passwd
more /etc/passwd

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

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

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

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

getent passwd

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

sudo adduser newuser

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

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

sudo adduser anyuser cdrom

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

sudo deluser obsolete

Если вы хотите удалить его домашнюю директорию /mails, вы набираете

sudo deluser --remove-home obsolete

А также

sudo deluser --remove-all-files obsolete

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

Ты можешь использовать compgen GNU bash также встроен:

compgen -u

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

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

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. Тем не менее, рекомендуется использовать значения только до 65 534, чтобы поддерживать совместимость с системами, использующими старые ядра или файловые системы, которые могут поддерживать только 16-битные UID.

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

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

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

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

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

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

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

список всех пользователей, которые могут войти (без системных пользователей, таких как: 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

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

user (tab tab)

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

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

Надеюсь, что это помогает мне любить завершение табуляции в bash, спасает меня от запоминания вещей

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

cd /home
ls 

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

lslogins(1) — отображать информацию об известных пользователях в системе

lslogins— это команда Linux, которая отображает информацию об известных пользователях в системе. Он собирает информацию из различных источников, таких как,/etc/groupи другие базы данных с пользовательской информацией, специфичные для системы. Команда сканируетwtmpиbtmpжурналы,/etc/shadow(при необходимости) и/etc/passwdфайлы и выводит нужные данные. Необязательный параметр username можно использовать для вывода информации только для указанного пользователя.

Первый ответ рекомендует:

cut -d: -f1 /etc/passwd

Но используя это и подсчитав количество пользователей, вы получите:

$ cut -d: -f1 /etc/passwd | wc -l
46

46 пользователей для ноутбука это много! Так что используйте это вместо:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync)' | cut -d: -f1
root
rick
guest-atkb2q
guest-u4sf2i
guest-rmlbtg
guest-mz53vp

Чтобы удалить гостевые учетные записи (которые в любом случае не сохранили файлы), используйте:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync|guest-)' | cut -d: -f1
root
rick

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

systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
sync:x:4:65534:sync:/bin:/bin/sync
guest-atkb2q:x:999:999:Guest:/tmp/guest-atkb2q:/bin/bash

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

Другие вопросы по тегам