Создание новых пользователей
Соображения безопасности делают работу из-под пользователя root в системе Linux не рекомендуемой, так как даже небольшие ошибки в командах могут привести к необратимым повреждениям файлов и системы.
Оптимальным решением является создание дополнительного пользователя VDS с привилегиями sudo. Механизм sudo позволит этому пользователю при необходимости выполнять операции с правами администратора (root).
По этой же инструкции можно создать и обычных пользователей системы (без привилегий sudo) — для этого достаточно выполнить первые три шага.
Создание пользователя с привилегиями sudo
1. Создайте нового пользователя (в данном примере — username) с помощью следующей команды:
adduser username
По умолчанию создаваемый пользователь будет добавлен в группу с аналогичным именем, а также для него будет создан домашний каталог.
2. В Ubuntu / Debian, вас попросят ввести пароль пользователя. Пароль должен быть введен дважды. Учтите, что символы пароля не отображаются в консоли Linux при вводе.
В CentOS, чтобы установить пароль, выполните эту команду:
passwd username
Затем введите пароль и подтвердите его.
3. В Ubuntu / Debian вас также попросят ввести дополнительные данные о пользователе (например, имя, номер телефона и другие). Вы можете ввести эти данные или оставить их пустыми, нажав Enter, чтобы использовать значения по умолчанию. Затем нажмите Y для подтверждения.
В CentOS, если вам нужно указать дополнительные данные, выполните эту команду:
chfn username
На этом этапе создание обычного пользователя (без привилегий sudo) завершено.
4. Для предоставления пользователю прав sudo добавьте его в группу sudo. Это можно сделать следующими командами.
В Ubuntu / Debian:
usermod -aG sudo username
В CentOS:
usermod -aG wheel username
5. Проверьте работу пользователя. Чтобы сделать это, переключитесь на его учетную запись:
su - username
Система попросит вас ввести пароль пользователя (при первой попытке использования sudo). После этого вы можете попробовать выполнить любую команду с привилегиями sudo. Например, можно посмотреть содержимое каталога /root, к которому обычным пользователям доступ закрыт:
sudo ls -la /root
Если содержимое каталога отобразится, значит, созданный пользователь работает корректно.
Если для root используется аутентификация по SSH-ключу
Если вы вошли как root, используя SSH-ключ, то аутентификация по паролю для SSH отключена. Для успешного входа в систему вам нужно добавить копию вашего локального открытого ключа в файл ~/.ssh/authorized_keys нового пользователя. Поскольку ваш открытый ключ уже присутствует в файле ~/.ssh/authorized_keys учетной записи root, вы можете скопировать этот файл в домашний каталог нового пользователя с помощью команды cp и настроить права с помощью chown.
Скопируйте весь каталог в домашний каталог нового пользователя:
cp -r ~/.ssh /home/username
Установите владельцем этого каталога пользователя username (создается также группа с тем же именем):
chown -R username:username /home/username/.ssh
Теперь вы можете войти на сервер под новым пользователем без пароля:
ssh username@your_server_ip
Если вам нужно выполнить команду с правами администратора, введите sudo перед командой, например:
sudo
command
При первом использовании sudo вас попросят ввести пароль обычного пользователя (и периодически после этого).
6. Этот шаг необязателен, но для повышения безопасности вы можете отключить удаленный доступ для суперпользователя root. Тогда пользователям всегда придется входить под своими собственными учетными записями, что позволяет отслеживать действия на сервере, видеть, кем были сделаны изменения и так далее. Чтобы отключить доступ root, откройте файл /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Найдите строку PermitRootLogin и замените ее текущее значение на:
PermitRootLogin no
Сохраните изменения и закройте редактор (комбинация клавиш Ctrl X -> Y -> Enter).
После этого перезапустите службу SSH с помощью следующих команд:
В Ubuntu / Debian:
sudo service ssh restart
В CentOS:
sudo service sshd restart
Другие команды для управления пользователями
Если вам нужно добавить пользователя в другую группу, предварительно создайте эту группу:
groupadd group_name
В Ubuntu и Debian также можно использовать команду addgroup для создания группы:
addgroup group_name
Затем добавьте пользователя в нужную группу с помощью команды usermod:
usermod -G group_name username
Чтобы изменить первичную группу пользователя, используйте ключ -g:
usermod -g group_name username
Для смены домашнего каталога пользователя используйте команду:
usermod -d path/to/new_directory username
Чтобы получить информацию о пользователе, используйте команду:
id username
Результат будет содержать примерно следующие данные:
uid=1000(username) gid=1000(username) groups=1000(username),27(sudo)
Изменить пароль пользователя можно командой:
passwd username
Для просмотра списка всех созданных пользователей используйте команду:
cat /etc/passwd
Для получения только списка имен, без дополнительной информации, используйте:
sed 's/:.*//' /etc/passwd
Для просмотра списка пользователей, находящихся в системе в данный момент, используйте команду w.
Пользователя можно удалить с помощью команды:
deluser username
Чтобы удалить группу, используйте:
delgroup group_name