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

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

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

673 голоса | спросил 19 revs, 2 users 77%
nux
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

8 ответов


905

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

cut -d: -f1 /etc/passwd

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

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

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

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

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

ответил Radu Rădeanu 25 Jam1000000amSat, 25 Jan 2014 00:23:12 +040014 2014, 00:23:12
71

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

cat /etc/passwd

ИЛИ

less /etc/passwd
more /etc/passwd

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

awk -F':' '{ print $1}' /etc/passwd
ответил Mitch 24 Jpm1000000pmFri, 24 Jan 2014 23:28:53 +040014 2014, 23:28:53
49

Самый простой способ получить такую ​​информацию - getent - см. справочную страницу для getent code> command Значок manpage. Хотя эта команда дает тот же результат, что и 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

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

ответил Mitch 24 Jpm1000000pmFri, 24 Jan 2014 23:28:53 +040014 2014, 23:28:53
18

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

compgen -u

Перечислит всех пользователей.

ответил Mitch 24 Jpm1000000pmFri, 24 Jan 2014 23:28:53 +040014 2014, 23:28:53
17

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

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 от бывших пользователей должна быть   избегать как можно дольше.

ответил Mitch 24 Jpm1000000pmFri, 24 Jan 2014 23:28:53 +040014 2014, 23:28:53
13

список всех пользователей, которые могут войти (нет пользователей системы, таких как: 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
ответил Mitch 24 Jpm1000000pmFri, 24 Jan 2014 23:28:53 +040014 2014, 23:28:53
7

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

user (tab tab)

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

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

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

ответил user239243 24 Jpm1000000pmFri, 24 Jan 2014 23:38:26 +040014 2014, 23:38:26
3

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

cd /home
ls 

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

ответил user239243 24 Jpm1000000pmFri, 24 Jan 2014 23:38:26 +040014 2014, 23:38:26

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132