Команда для перечисления всех пользователей? А как добавлять, удалять, изменять пользователей?
Мне нужна команда, чтобы вывести список всех пользователей в терминале. А как добавлять, удалять, изменять пользователей из терминала.
Это может помочь в администрировании ваших учетных записей легко с помощью терминала.
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
команда , Пока эта команда выдает тот же результат, что и 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
удалит пользователя и все файлы, принадлежащие этому пользователю, во всей системе.
В большинстве нормальных ситуаций это должны получить все обычные (не системные, не странные и т. Д.) Пользователи:
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
Оказывается, большинство пользователей в однопользовательской системе на самом деле являются программами, которые настроены как пользователи.