- Как добавить и удалить новых пользователей в CentOS
- Как создать нового пользователя
- Как создать пароль к учетной записи.
- Как создать множество новых пользователей из списка
- Как изменить информацию о пользователе
- Как заблокировать учетную запись
- Как удалить пользователей
- #Шаг 1: Удаление прав пользователя
- #Шаг 2: Найти и удалить все процессы пользователя
- #Шаг 3: Сохранение файлов пользователя (back up)
- #Шаг 4: Удаление пользователя и его домашнего каталога
- Список пользователей — /etc/passwd
- Данные о паролях пользователей — /etc/shadow
- Группы пользователей
- Список групп — /etc/group
- Полезные команды относящиеся к учетным записям
- Файлы и каталоги, полезные в работе с учетными записями
- Файлы
- Каталоги
Как добавить и удалить новых пользователей в CentOS
Когда вы устанавливаете свежую версию ОС CentOS или любой другой Linux, то вам изначально доступен только один пользователь с именем root. root — это суперпользователь, который имеет полный доступ ко всем параметрами и конфигурациям ОС. Использовать учетную запись root рекомендуется
только в особых случаях, т.к. это способствует случайному совершению деструктивных и необратимых ошибок, исправить которые будет крайне сложно. Чтобы этого избежать рекомендуется создать на сервере как минимум еще одного пользователя и наделить его правами root, а использовать права root лишь тогда когда это потребуется при помощи команды — sudo .
Создание новых учетных записей также потребуется когда к серверу необходимо предоставить доступ другим лицам.
Как создать нового пользователя
Чтобы быстро добавить нового пользователя с логином, например username, выполните следующую команду.
При создании логина пользователя в CentOS можно использовать не более 32 знаков (a-z,A-Z,0-9,_,-). Имя логина не может начинаться с цифры. Хорошей практикой принято считать использование не более 8 символов, это позволит добиться большей совместимости со старыми программами, которые не принимают логины пользователей с количеством символов больше 8.
При создании пользователя создается также домашняя директория и отдельная группа пользователей, которые будут названы по имени пользователя.
Команда adduser представляет собой perl-скрипт, позволяющий создавать пользователей в более удобной форме. Аналогом данной команды является — useradd . useradd является более низкоуровневой по отношению к системе, а также уступает команде adduser в некоторых возможностях.
Как создать пароль к учетной записи.
Чтобы создать зашифрованный пароль используйте команду passwd , а в качестве аргумента передайте имя пользователя для которого создается пароль.
Если вдруг пользователь забыл свой пароль, то этой же командой можно установить новый пароль, а старый пароль будет сброшен.
При желании можно добавить контактную информацию о пользователе (полное имя, рабочий адрес, рабочий телефон, домашний телефон).
При создании новой учетной записи все необходимые параметры можно указать в одной команде. Допустим мы хотим создать пользователя, у которого будут указаны следующие параметры:
- Логин: johndoe
- Имя пользователя: John Doe
- Имя домашней директории: /home/Johnny
- Пароль: klsKWR23 (пароль необходимо передавать в зашифрованном виде)
- Группа: wheel (группа пользователей с правами root, в Ubuntu эта группа называется sudo)
В этом случае создание учетной записи будет выглядеть так.
adduser johndoe -c «John Doe» -d /home/Johnny -G wheel -p «$(python -c ‘import crypt; print(crypt.crypt(«klsKWR23″, crypt.mksalt(crypt.METHOD_SHA512)))’)»
Чтобы не усложнять себе жизнь самостоятельным шифрованием пароля, лучше его создать отдельно с помощью команды passwd .
Как создать множество новых пользователей из списка
В linux можно создавать сразу несколько пользователей за раз с помощью команды newusers . Для этого вам понадобится список пользователей в текстовом файле. Формат списка должен совпадать с форматом записи файла /etc/passwd (подробнее о нем далее в статье). Единственное отличие это указание реального пароля во втором параметре. Учтите, что команда newusers не создает в домашнем каталоге стандартные файлы для всех пользователей, определенные в каталоге /etc/skel .
Для примера возьмем следующий список пользователей (students.txt), которых необходимо добавить в систему.
janedoe:DSsdf34l:3000:3000:Jane Doe,Southern Office,777-777,676-676:/home/janedoe:/bin/bash
johndoe:rTH421lp:3001:3001:John Doe,Eastern Office,888-888,878-878:/home/johndoe:/bin/bash
Теперь создадим пользователей из списка.
Как изменить информацию о пользователе
Для редактирования данных об учетной записи используется команда usermod. Посмотрим какие данные можно изменить с помощью usermod.
Изменение логина. Имя директории и остальные данные не изменятся.
Изменение домашней директории.
С остальными возможностями команды usermod можно ознакомится в мануале команды.
Как заблокировать учетную запись
Блокировка учетной записи не позволит пользователю зайти в свою учетную запись. В файле /etc/passwd в поле пароля появиться знак !! , который символизирует о блокировки пароля.
Также важно изменить оболочку пользователя на /sbin/nologin в ней указано сообщение о недоступности учетной записи.
[root@centos ~ ] # passwd -l johndoe
Locking password for user johndoe.
passwd: Success
[root@centos ~ ] # usermod -s /sbin/nologin johndoe
[root@centos ~ ] # su -l johndoe
Last login: Sat May 27 21:25:29 MSK 2017 on :4
Last failed login: Thu Jun 21 19:51:12 MSK 2018 from :0 on :0
There were 6 failed login attempts since the last successful login.
This account is currently not available.
Для разблокировки воспользуйтесь следующей командой.
Также верните прежнюю оболочку.
[root@centos ~ ] # passwd -u johndoe
Unlocking password for user johndoe.
passwd: Success
[root@centos ~ ] # usermod -s /bin/bash johndoe
[root@centos ~ ] # su -l johndoe
Last login: Tue Jun 26 23:03:02 MSK 2018 on pts/0
[johndoe@centos ~ ]
Как удалить пользователей
Перед удалением определенного пользователя желательно убедиться, что он не вошел в свою учетную запись. Заблокируйте учетную запись, чтобы в нее не мог войти удаляемый пользователь.
Для полноценного удаления пользователя желательно выполнить все представленные ниже шаги.
#Шаг 1: Удаление прав пользователя
Убедитесь что в файле /etc/sudoers у удаленного пользователя не осталось записей о правах.
Например если удаленный пользователь имел права root, то найдите и удалите запись:
#Шаг 2: Найти и удалить все процессы пользователя
Узнаем идентификаторы процессов, которые были запущены пользователем.
[root@centos ~ ] # pgrep -u johndoe
3973
4518
Узнаем название запущенных процессов по их идентификаторам.
[root@centos ~ ] # ps -f —pid $(pgrep -u johndoe)
johndoe 3973 8 22:13 ? Sl 0:01 /usr/lib64/firefox/plugin-container
johndoe 4518 1 1 22:13 ? Dl 0:00 /usr/bin/gedit —gapplication-service
Убедившись, что у пользователя не запущено особо важных процессов требующих его внимания, можем удалить все процессы одной командой.
Если у вас не оказалось команды killall , то установите пакет psmisc с помощью yum.
yum install psmisc
#Шаг 3: Сохранение файлов пользователя (back up)
Файлы пользователя могут оказаться нужными для пользователя, а также могут пригодиться когда вдруг потребуется восстановить удаленную учетную запись. Для сохранения файлов домашнего каталога пользователя достаточно их все поместить в архив.
[root@centos ~ ] # tar jcvf /user-backups/johndoe-homedir-backup.tar.bz2 /home/johndoe
tar: Removing leading `/’ from member names
/home/johndoe/
/home/johndoe/.bash_logout
/home/johndoe/.bash_profile
/home/johndoe/.bashrc
/home/johndoe/.mozilla/
/home/johndoe/.mozilla/extensions/
/home/johndoe/.mozilla/plugins/
/home/johndoe/.cache/
[root@centos ~ ] # ls /user-backups/
johndoe-homedir-backup.tar.bz2
#Шаг 4: Удаление пользователя и его домашнего каталога
Чтобы удалить учетную запись пользователя достаточно выполнить команду.
Чтобы удалить еще и домашний каталог пользователя нужно добавить флаг -r .
Список пользователей — /etc/passwd
Список всех созданных пользователей хранится в текстовом файле — /etc/passwd
Открыть список пользователей можно также следующей командой.
Формат данных в файле /etc/passwd выглядит следующим образом.
- Логин пользователя: используется для входа в учетную запись. Длина логина не должна превышать 32 символа.
- Пароль: если вместо пароля стоит символ «x», то это означает, что пароль зашифрован и хранится в файле /etc/shadow . Сам хеш пароля создается при создании пароля с помощью команды passwd
- Идентификатор пользователя (UID): при создании нового пользователя ему присваивается идентификатор — 32 битовое целое число (UID). Для пользователя root всегда используется идентификатор со значением 0. Идентификаторы в пределах 1-9 зарезервированы для предопределенных аккаунтов. UID в пределах 100-999 зарезервированы для прочих системных аккаунтов.
- Идентификатор основной группы (GID): — 32 битовое целое число. Учетная может принадлежать одной основной группе. Доступные группы и пользователей, которые к ним причислены можно увидеть в файле /etc/group.
- Контактная информация: добавляется с помощью команды chfn .
5.1 Полное имя пользователя
5.2 Рабочий адрес
5.3 Рабочий номер телефона
5.4 Домашний номер телефона - Домашняя директория пользователя: полный путь директории в которую попадет пользователь после входа в учетную запись. Если директория не будет указана, то по умолчанию домашней директорией становится корень — / .
- Командная оболочка: полный путь к файлу командной оболочки. Изменить оболочку можно с помощью команды chsh .
Данные о паролях пользователей — /etc/shadow
В файле /etc/shadow хранятся пароли пользователей в зашифрованном виде, а также дополнительные параметры, отвечающие за безопасность учетной записи пользователя.
Формат файла /etc/shadow выглядит следующим образом.
- Имя пользователя (логин)
- Пароль в зашифрованном виде: если стоит . то пароль не был создан. Формат пароля — $id$salt$hash . $id показывает каким методом был зашифрован пароль:
$1 — MD5.
$2a — Blowfish.
$2y — Blowfish.
$5 — SHA-256.
$6 — SHA-512 (наиболее предпочтительный). - Количество прошедших дней (начиная с 01.01.1970) после последнего изменения пароля.
- Количество дней, до смены пароля (0 означает, что менять пароль можно в любой день).
- Срок использования пароля в днях (число дней до следующей смены пароля)
- Количество дней, в течении которых пользователь будет получать уведомления о смене пароля.
- Число дней после окончания срока действия пароля, когда пользователь еще может войти в свою учетную запись. Если пароль не сменить, после данного срока, то аккаунт будет заблокирован.
- Количество дней (начиная с 01.01.1970), после которых пароль будет заблокирован.
- Зарезервировано для использования в будущем.
Чтобы перевести число прошедших дней от 01.01.1970 (например 17701) в обычную дату (19.06.2018) воспользуйтесь командой.
Группы пользователей
В Linux нескольких пользователей можно объединять в группы. Чаще всего группы используются для наделения членов группы определенными правами и организации совместного доступа к файлам.
По умолчанию при создании нового пользователя создается новая группа с таким же именем, что и у пользователя. Так сделано потому что права на запись, чтение, выполнение и т.п. привязываются не к пользователю, а к группе в которой он состоит.
Любой пользователь может состоять в одной или нескольких группах. Группы различаются на главные и вторичные. Главная (primary) группа всегда одна и к ней привязываются пользовательские процессы, а также файлы и папки, которые создал пользователь.
Узнать к каким группам принадлежит тот или иной пользователь.
Узнать группы текущего пользователя.
Узнать идентификаторы групп пользователя.
Узнать идентификаторы текущего пользователя.
Узнать какие пользователи состоят в группе.
Создание новой группы пользователей.
Удаление группы пользователей
Добавление пользователя в группу.
Удаление пользователя из группы.
Список групп — /etc/group
Список групп хранится в файле — /etc/group . Чтобы просмотреть все имеющиеся в системе группы можно просто заглянуть внутрь /etc/group .
или воспользоваться следующей командой.
Формат записи данных в файле /etc/group .
- Имя группы.
- Пароль группы: если стоит x, значит пароль зашифрован и хранится в файле — /etc/gshadow .
- Идентификатор группы (GID): 32 битовое число.
- Список пользователей, которые состоят в группе.
Полезные команды относящиеся к учетным записям
— узнать имя текущего пользователя
— перейти к редактированию файла /etc/passwd в редакторе по умолчанию.
— перейти к редактированию файла /etc/shadow в редакторе по умолчанию.
— перейти к редактированию файла /etc/group в редакторе по умолчанию.
— перейти к редактированию файла /etc/sudoers в редакторе по умолчанию.
Файлы и каталоги, полезные в работе с учетными записями
Файлы
- /etc/sudoers — настройки прав пользователей.
- /etc/login.defs — параметры конфигурации для adduser.
- /etc/passwd — информация о пользователях системы.
- /etc/shadow — информация о зашифрованных паролях для всех пользователей.
- /etc/group — информация о группах пользователей.
- /etc/gshadow — информация о паролях для групп.
- /etc/default/useradd — значения по умолчанию при создании учетной записи
- /etc/shells — список доступных командных оболочек.
Каталоги
- /etc/skel — здесь хранятся данные, которые будут скопированы в домашнюю директорию нового пользователя при его создании. В файле .bash_profile можно настроить оболочку bash для всех новых пользователей (добавить алиасы, настроить цветовую схему, параметры по умолчанию и т.п.).
Понравилась статья? Расскажите о ней друзьям!