Centos 7 создать пользователя

Обновлено: 06.07.2024

После создания нового сервера Linux основными задачами, которые необходимо выполнить, являются создание и удаление пользователей. Сначала на новом сервере есть только стандартная учетная запись root. Этот пользователь обладает привилегиями администратора, потому использовать root на регулярной основе опасно – все команды, запущенные через root, влияют на всю файловую систему сервера.

Потому для выполнения рутинных задач лучше создать непривилегированного пользователя. Кроме того, нужно создать дополнительные учетные записи для каждого пользователя, который должен иметь доступ к серверу (это в первую очередь необходимо для того, чтобы иметь возможность контролировать и управлять ими). При помощи инструмента sudo можно расширить привилегии любого пользователя до административных. Данное руководство охватывает создание и удаление учетных записей пользователей на сервере CentOS 7, а также передачу привилегий sudo.

Создание пользователей

Если текущим пользователем является root, для создания нового пользователя введите команду:

Если же текущим является пользователь с привилегиями sudo (об этом – в следующем разделе), запустите следующую команду, которая создаст новую учетную запись:

sudo adduser username

Затем нужно установить пароль для нового пользователя. Для этого используйте команду passwd.

Примечание: Не забудьте добавить Sudo в начале команды, если текущим является пользователь с расширенными привилегиями.

Пароль нужно будет ввести повторно, чтобы подтвердить его. Готово! Теперь новая учетная запись пользователя настроена и готова к использованию.

Передача привилегий Sudo

Если новому пользователю нужно иметь возможность выполнять команды с правами root, нужно предоставить ему доступ к sudo.

Для этого нужно добавить пользователя в группу wheel (все пользователи, помещенные в эту группу, могут пользоваться sudo) с помощью команды gpasswd. Это самый безопасный и простой способ управления правами sudo.

Итак, если текущим является root, введите:

gpasswd -a username wheel

Если текущим является пользователь с привилегиями sudo:

sudo gpasswd -a username wheel

Теперь новый пользователь имеет возможность запускать команды с правами администратора. Для этого нужно просто начинать команду с sudo:

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

Управление пользователями с привилегиями Sudo

Команда gpasswd позволяет добавлять пользователей в группу (например, wheel) и удалять их из группы, но при этом команда не показывает, какие пользователи состоят в группе. Чтобы узнать, какие пользователи состоят в группе wheel, используйте функцию lid. Как правило, lid используется для того чтобы просмотреть группы, в которых состоит определенный пользователь, но флаг –g способен обратить действие команды, и тогда она покажет, какие пользователи состоят в определенной группе.

sudo lid -g wheel

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

Удаление пользователей

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

Чтобы удалить пользователя, но сохранить все его файлы, запустите как root:

Чтобы удалить домашний каталог вместе с учетной записью пользователя, введите как root:

userdel -r username

Примечание: если текущим является пользователь с привилегиями sudo, внесите команду sudo в начало строки.

Обе вышеприведенные команды удаляют пользователя изо всех групп, в которых он состоял (например, из группы wheel). Если в будущем в системе появится пользователь с таким же именем, его нужно будет повторно добавить в группу wheel, чтобы предоставить ему привилегии sudo.

Итоги

Эффективное управление пользователями позволяет разделить пользователей на группы и предоставить им доступ в необходимых пределах. Теперь можно перейти к установке на сервер CentOS 7 любого нужного программного обеспечения, например, программных групп LAMP или LEMP.

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

Как создать нового пользователя

Чтобы быстро добавить нового пользователя с логином, например 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), которых необходимо добавить в систему.

Теперь создадим пользователей из списка.

Как изменить информацию о пользователе

Для редактирования данных об учетной записи используется команда usermod. Посмотрим какие данные можно изменить с помощью usermod.

Изменение полного имени.

Изменение логина. Имя директории и остальные данные не изменятся.

Изменение домашней директории.

С остальными возможностями команды usermod можно ознакомится в мануале команды.

Как заблокировать учетную запись

Блокировка учетной записи не позволит пользователю зайти в свою учетную запись. В файле /etc/passwd в поле пароля появиться знак !! , который символизирует о блокировки пароля.

Также верните прежнюю оболочку.

Как удалить пользователей

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

Для полноценного удаления пользователя желательно выполнить все представленные ниже шаги.

Убедитесь что в файле /etc/sudoers у удаленного пользователя не осталось записей о правах.

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

username ALL=(ALL) ALL

Узнаем идентификаторы процессов, которые были запущены пользователем.

Узнаем название запущенных процессов по их идентификаторам.

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

Если у вас не оказалось команды killall , то установите пакет psmisc с помощью yum.
yum install psmisc

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

tar jcvf /user-backups/username-homedir-backup.tar.bz2 /home/username

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

Чтобы удалить еще и домашний каталог пользователя нужно добавить флаг -r .

Список пользователей - /etc/passwd

Список всех созданных пользователей хранится в текстовом файле - /etc/passwd

Открыть список пользователей можно также следующей командой.

Формат данных в файле /etc/passwd выглядит следующим образом.

Формат записи файла - /etc/passwd

  1. Логин пользователя: используется для входа в учетную запись. Длина логина не должна превышать 32 символа.
  2. Пароль: если вместо пароля стоит символ "x", то это означает, что пароль зашифрован и хранится в файле /etc/shadow . Сам хеш пароля создается при создании пароля с помощью команды passwd
  3. Идентификатор пользователя (UID): при создании нового пользователя ему присваивается идентификатор - 32 битовое целое число (UID). Для пользователя root всегда используется идентификатор со значением 0. Идентификаторы в пределах 1-9 зарезервированы для предопределенных аккаунтов. UID в пределах 100-999 зарезервированы для прочих системных аккаунтов.
  4. Идентификатор основной группы (GID): - 32 битовое целое число. Учетная может принадлежать одной основной группе. Доступные группы и пользователей, которые к ним причислены можно увидеть в файле /etc/group.
  5. Контактная информация: добавляется с помощью команды chfn .
    5.1 Полное имя пользователя
    5.2 Рабочий адрес
    5.3 Рабочий номер телефона
    5.4 Домашний номер телефона
  6. Домашняя директория пользователя: полный путь директории в которую попадет пользователь после входа в учетную запись. Если директория не будет указана, то по умолчанию домашней директорией становится корень - / .
  7. Командная оболочка: полный путь к файлу командной оболочки. Изменить оболочку можно с помощью команды chsh .

Данные о паролях пользователей - /etc/shadow

В файле /etc/shadow хранятся пароли пользователей в зашифрованном виде, а также дополнительные параметры, отвечающие за безопасность учетной записи пользователя.

Формат файла /etc/shadow выглядит следующим образом.


  1. Имя пользователя (логин)
  2. Пароль в зашифрованном виде: если стоит . то пароль не был создан. Формат пароля - $id$salt$hash . $id показывает каким методом был зашифрован пароль:
    $1 - MD5.
    $2a - Blowfish.
    $2y - Blowfish.
    $5 - SHA-256.
    $6 - SHA-512 (наиболее предпочтительный).
  3. Количество прошедших дней (начиная с 01.01.1970) после последнего изменения пароля.
  4. Количество дней, до смены пароля (0 означает, что менять пароль можно в любой день).
  5. Срок использования пароля в днях (число дней до следующей смены пароля)
  6. Количество дней, в течении которых пользователь будет получать уведомления о смене пароля.
  7. Число дней после окончания срока действия пароля, когда пользователь еще может войти в свою учетную запись. Если пароль не сменить, после данного срока, то аккаунт будет заблокирован.
  8. Количество дней (начиная с 01.01.1970), после которых пароль будет заблокирован.
  9. Зарезервировано для использования в будущем.

Чтобы перевести число прошедших дней от 01.01.1970 (например 17701) в обычную дату (19.06.2018) воспользуйтесь командой.

Группы пользователей

В Linux нескольких пользователей можно объединять в группы. Чаще всего группы используются для наделения членов группы определенными правами и организации совместного доступа к файлам.

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

Любой пользователь может состоять в одной или нескольких группах. Группы различаются на главные и вторичные. Главная (primary) группа всегда одна и к ней привязываются пользовательские процессы, а также файлы и папки, которые создал пользователь.

Узнать к каким группам принадлежит тот или иной пользователь.

Узнать группы текущего пользователя.

Узнать идентификаторы групп пользователя.

Узнать идентификаторы текущего пользователя.

Узнать какие пользователи состоят в группе.

Создание новой группы пользователей.

Удаление группы пользователей

Добавление пользователя в группу.

Удаление пользователя из группы.

Список групп - /etc/group

Список групп хранится в файле - /etc/group . Чтобы просмотреть все имеющиеся в системе группы можно просто заглянуть внутрь /etc/group .

Если текущим пользователем является root, для создания нового пользователя введите команду:

Если же текущим является пользователь с привилегиями sudo (об этом – в следующем разделе), запустите следующую команду, которая создаст новую учетную запись:

Затем нужно установить пароль для нового пользователя. Для этого используйте команду passwd .

Примечание: Не забудьте добавить sudo в начале команды, если текущим является пользователь с расширенными привилегиями.

Пароль нужно будет ввести дважды (второй раз для подтверждения).

Ну что, пользователь создан, теперь мы можем выйти из системы. Тем не менее, это не все. Зачастую данных действий недостаточно, ведь хоть пользователь нам нужен был и обычный, но все же, с возможностью администрирования системы (установка/удаление программ, настройка CentOS 7), а это означает, что нам нужно разрешение использования sudo .

Пароль нужно будет ввести повторно, чтобы подтвердить его. Готово! Теперь новая учетная запись пользователя настроена и готова к использованию.

2. Передача привилегий sudo.

Если новому пользователю нужно иметь возможность выполнять команды с правами root, нужно предоставить ему доступ к sudo .

Для этого нужно добавить пользователя в группу wheel (все пользователи, помещенные в эту группу, могут пользоваться sudo ) с помощью команды gpasswd . Это самый безопасный и простой способ управления правами sudo .

Итак, если текущим является root, введите:


Если текущим является пользователь с привилегиями sudo:

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

Для этого нужно просто начинать команду с sudo :

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


3. Управление пользователями с привилегиями sudo.

Команда gpasswd позволяет добавлять пользователей в группу (например, wheel ) и удалять их из группы, но при этом команда не показывает, какие пользователи состоят в группе. Чтобы узнать, какие пользователи состоят в группе wheel , используйте функцию lid . Как правило, lid используется для того чтобы просмотреть группы, в которых состоит определенный пользователь, но флаг -g способен обратить действие команды, и тогда она покажет, какие пользователи состоят в определенной группе.


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

4. Команда смены пользователя.

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

Если просто зайти в его учетную запись, то:

и нажмите клавишу Enter.

5. Как перейти в учетную запись root?

Можно войти вот так:

6. Как принудить пользователя изменить пароль при регистрации?

Команда chage позволяет задать время окончания действия пользовательского пароля.

После этого, при попытке регистрации пользователя в системе, в том числе и по ssh, он будет получать предупреждение: «Срок действия вашего пароля истек. Вы должны изменить ваш пароль и войти заново».


7. Удаление пользователей.

Чтобы удалить пользователей с помощью команды userdel , необходимо войти в систему как пользователь root или пользователь с доступом sudo .

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

Чтобы удалить пользователя, но сохранить все его файлы, запустите как root:

При вызове команда userdel читает содержимое файла /etc/login.defs . Свойства, определенные в этом файле, переопределяют поведение по умолчанию команды userdel . Если USERGROUPS_ENAB установлено на значение yes в этом файле, userdel удалит группу с тем же именем пользователя, только если никакой другой пользователь не является членом этой группы.

Команда удалит записи пользователей из файлов /etc/passwd и /etc/shadow .

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

Используйте параметр -r ( –remove ), чтобы заставить userdel удалить домашний каталог пользователя и почтовую папку:

Чтобы удалить домашний каталог вместе с учетной записью пользователя, введите как root:

Примечание: если текущим является пользователь с привилегиями sudo , внесите команду sudo в начало строки.

Обе вышеприведенные команды удаляют пользователя изо всех групп, в которых он состоял (например, из группы wheel ). Если в будущем в системе появится пользователь с таким же именем, его нужно будет повторно добавить в группу wheel , чтобы предоставить ему привилегии sudo .

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

Если пользователь, которого вы хотите удалить, все еще вошел в систему, или если запущены процессы, принадлежащие этому пользователю, команда userdel не позволит вам удалить пользователя.

В этой ситуации рекомендуется выйти из системы и завершить все запущенные процессы пользователя с помощью команды killall :

После этого вы сможете удалить пользователя.

Другой вариант – это использовать флаг -f ( –force ), который принудительно удалит учетную запись пользователя, даже если пользователь все еще вошел в систему или если запущены процессы, принадлежащие этому пользователю.

8. Информацию о пользователях, которые в данный момент используют систему.

Команда w примечательна тем, что это самая короткая команда в CentOS 7.

Команда w выводит информацию о пользователях, которые в данный момент используют систему.

Для каждого пользователя выводится его имя, информация о том, какую командую строку использует пользователь (оболочку), время регистрации в системе и время простоя и некоторые другие данные.


9. Некоторые операции с id пользователей.


9.2. Первым выводится именно id пользователя. Если вам нужно узнать информацию о другом пользователе, вы можете передать его имя в параметры утилиты:


9.3. Когда необходимо вывести только id пользователя:


9.4. Если вам надо узнать только id группы определенного пользователя, то используйте опцию -g :


9.5. Есть ещё несколько способов посмотреть id . Например, для текущего пользователя его можно найти в переменной окружения UID:



9.7. Или смотрим содержимое файла /etc/passwd с помощью команды grep :


9.8. Бывает нужно узнать группы пользователя.

Это делается командой:

Если не вводить имя пользователя, то подставится имя текущего пользователя.

При создании сервера на Linux, добавление и удаление пользователей - одна из первых задач, с которой вам придется столкнуться. При первом запуске вы получаете только пользователя под именем root . Конечно он открывает вам полный доступ к системе, но использование такого пользователя всегда - не самая разумная идея, так как этот пользователь намного больше подвержен к атакам по безопасности, чем любой другой пользователь. Причиной тому является тот факт, что в таком случае все команды исполняются с правами администратора.

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

Добавление пользователей

Если вы находитесь в системе под пользователем root , то создать нового пользователя можно следующей командой:

Если же вы авторизованны как другой пользователь, имеющий sudo права, то тогда используйте следующую команду:

Теперь следует назначить пользователю пароль:

не забывайте добавлять sudo перед командой, если вы находитесь не под пользователем root .

Вы должны будете дважды ввести пароль. Новый пользователь создан и готов к использованию. Вы можете теперь войти под новым пользователем при помощи только что созданного пароля.

Добавление sudo прав пользователю

Если вашему пользователю необходимо выполнять команды с администраторскими правами, то ему необходимо открыть доступ к команде sudo .

Можно добавить пользователя в группу wheel (каждый её член автоматически получает доступ к sudo ) при помощи команды gpasswd . Такой подход является самым безопасным и простым для управления доступа к sudo .

Наберите следующую команду если находитесь под пользователем root :

Если вы под другим пользователем, то выполните следующее:

Теперь новому пользователю открыт доступ к sudo и он может выполнять команды от роли администратора. Для этого просто добавьте sudo перед командой:

Вам потребуется ввести пароль к вашему обычному аккаунту. Команда будет выполнена с правами администратора как только пароль будет введен.

Управление пользователями с правами sudo

Команда gpasswd позволяет вам добавлять и удалять пользователей из групп (например wheel ), но она не покажет вам членов определенной группы. Чтобы получить список пользователей, принадлежащих к группе wheel (то есть увидеть пользователей с правами sudo ), вам понадобится команда lid . По-умолчанию, эта команда выводит список групп, к которым принадлежит пользователь, но при помощи ключа -g вы можете увидеть список членов какой-либо группы.

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

Удаление пользователей

Если у вас есть ненужные пользователи, то их аккаунты следует удалить. Вы можете это сделать несколькими способами, выбор которого, конечно, зависит от текущей ситуации на вашем сервере.

Если вы хотите удалить пользователя, оставив нетронутыми его файлы, выполните следующую команду под пользователем root :

Если вам необходимо удалить и пользователя, и созданные им файлы в его домашней директории, то воспользуйтесь следующей командой:

не забывайте добавлять sudo перед командой если вы находитесь под отличным от root пользователем с правами администратора.

Обе команды автоматически удаляют пользователя из всех групп, к которым он принадлежал, включая группу wheel . Если в дальнейшем вы создадите одноименного пользователя, то его снова придется добавить вгруппу wheel , чтобы тот получил sudo права.

Заключение

Теперь у вас должна быть полная картина как удалять и добавлять пользователей на вашем CentOS 7 сервере. Такой подход управления пользователями позволит вам разделить их и выдавать только те права, которые им необходимы для выполнения работы. Теперь вы можете перейти к дальнейшей настройке сервера, например, установке LAMP или LEMP.

Читайте также: