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

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

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

864
задан 2 July 2014 в 22:10

9 ответов

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

cut -d: -f1 /etc/passwd

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

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

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

sudo adduser new_username

или:

sudo useradd new_username

См. Также: Что такое разница между adduser и useradd?

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

sudo userdel username

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

sudo rm -r /home/username

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

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

usermod -l new_username old_username

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

sudo passwd username

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

sudo chsh username

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

sudo chfn username

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

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

usermod -aG sudo username
0
ответ дан 2 July 2014 в 22:10

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

cat /etc/passwd

ИЛИ

less /etc/passwd
more /etc/passwd

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

awk -F':' '{ print $1}' /etc/passwd
0
ответ дан 2 July 2014 в 22:10
  • 1
    Да Вы разобрались в нем, если /var/log/wtmp создается каждый новый месяц, и last просто чтения это оттуда тогда, первый вход в систему в течение месяца состоит в том если last дисплеи только 1 запись (или 2? не уверенный, потому что мой всегда отображает 2 каждых входа в систему). Подтвердите, понял ли я правильно – krato 15 July 2015 в 15:56

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

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

getent passwd

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

]
sudo adduser newuser

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

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

sudo adduser anyuser cdrom

Вы удаляете пользователя (для экземпляр устарел ) с

sudo deluser obsolete

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

sudo deluser --remove-home obsolete

И

sudo deluser --remove-all-files obsolete

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

0
ответ дан 2 July 2014 в 22:10

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

compgen -u

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

0
ответ дан 2 July 2014 в 22:10

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

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 от прежних пользователей.

0
ответ дан 2 July 2014 в 22:10

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

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

добавить new пользователь

sudo adduser new_username

или

sudo useradd new_username

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

sudo userdel username

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

sudo deluser --remove-home username

или

sudo rm -r /path/to/user_home_dir

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

sudo deluser --remove-all-files
0
ответ дан 2 July 2014 в 22:10

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

user (tab tab)

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

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

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

0
ответ дан 2 July 2014 в 22:10

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

cd /home
ls 

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

0
ответ дан 2 July 2014 в 22:10

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

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

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

0
ответ дан 16 November 2019 в 09:08

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

Похожие вопросы: