Управление пользователями – один из важнейших навыков системного администратора окружения Linux. Как правило, в новой системе по умолчанию существует только один пользователь – root.
Аккаунт root имеет широкие привилегии, и он очень гибок, однако работать с сервером как root на постоянной основе крайне не рекомендуется. Дело в том, что, обладая абсолютными правами, пользователь root может случайно нанести непоправимый вред системе и серверу. Потому для повседневной работы нужно создать дополнительного пользователя с обычными привилегиями, а затем передать ему права суперпользователя. Также можно создать дополнительные аккаунты для других пользователей, которые должны иметь доступ к серверу.
Данное руководство научит создавать аккаунты новых пользователей, передавать права sudo и удалять пользователей.
Добавление пользователя
Чтобы добавить нового пользователя в сессии root, введите:
adduser newuser
Находясь в сессии не- root пользователя с доступом sudo, можно добавить нового пользователя с помощью команды:
sudo adduser newuser
Команда предложит:
- Установить и подтвердить пароль.
- Ввести дополнительные данные о пользователе. Это опционально; чтобы принять информацию по умолчанию, просто нажмите Enter.
- Подтвердить правильность предоставленной информации (нажмите Enter).
Новый пользователь готов! Теперь можно подключиться к серверу с его помощью.
Настройка прав доступа sudo
Чтобы иметь возможность использовать новый аккаунт для выполнения задач администратора, нужно разрешить пользователю доступ к команде sudo. Это можно сделать двумя способами:
- Добавить пользователя в группу sudo
- Отредактировать настройки sudo в файле /etc/sudoers
Добавление пользователя в группу sudo
В системе Ubuntu 16.04 все пользователи, входящие в группу sudo, по умолчанию имеют доступ к команде sudo.
Чтобы узнать, в какие группы входит новый пользователь, введите:
groups newuser
Команда вернёт:
newuser : newuser
По умолчанию каждый новый пользователь системы входит только в одноименную группу. Чтобы добавить пользователя в группу, введите:
usermod -aG sudo newuser
Флаг –aG добавляет пользователя в перечисленные группы.
Тестирование настройки
Теперь нужно убедиться, что новый пользователь имеет доступ к команде sudo.
По умолчанию команды в сессии нового пользователя запускаются так:
some_command
Чтобы выполнить команду с правами администратора, добавьте sudo в начало команды:
sudo some_command
При этом система запросит пароль текущего пользователя.
Редактирование файла /etc/sudoers
Альтернативный способ расширить привилегии пользователя – отредактировать файл sudoers. Для этого используется команда visudo которая позволяет открыть файл /etc/sudoers в редакторе и явно указать привилегии каждого системного пользователя.
Редактировать файл sudoers рекомендуется исключительно при помощи visudo, поскольку эта команда блокирует внесение нескольких одновременных правок и выполняет проверку содержания перед перезаписью файла. Это предотвращает ошибки в настройке sudo, которые могут повлечь за собой потерю привилегий.
Если вы находитесь в сессии root, введите:
visudo
В сессии не-root пользователя с доступом к sudo введите:
sudo visudo
Как правило, visudo открывает /etc/sudoers в редакторе vi, который может показаться сложным для новичков. По умолчанию в новых установках Ubuntu visudo использует более знакомый редактор nano. Для перемещения курсора используйте клавиши со стрелками. Найдите строку:
root ALL=(ALL:ALL) ALL
Скопируйте эту строку и вставьте её ниже, заменив root именем пользователя, которому нужно передать права суперпользователя.
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL
Добавьте такую строку для каждого пользователя, которому нужны расширенные привилегии. Сохраните и закройте файл.
Удаление пользователей
Ненужные аккаунты можно удалить.
Чтобы удалить пользователя, оставив его файлы, введите:
как root
deluser newuser
как обычный пользователь с расширенными привилегиями:
sudo deluser newuser
Чтобы удалить пользователя вместе с его домашним каталогом, используйте:
в сессии пользователя root
deluser --remove-home newuser
в сессии пользователя с расширенными привилегиями:
sudo deluser --remove-home newuser
Если удалённый пользователь обладал правами суперпользователя, необходимо отнять эти права, отредактировав файл:
visudo
Или
sudo visudo
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL # удалите эту строку
Если бы строка осталась в файле, а в системе появился одноименный пользователь, он получил бы расширенные привилегии автоматически. Теперь этого не случится.
Заключение
Управление пользователями – необходимый навык при администрировании сервера Ubuntu 16.04. Он позволит отделить пользователей и дать им только необходимый для работы доступ.
Для получения дополнительных сведений о настройке sudo, ознакомьтесь с нашим руководством о редактировании файла sudoers.