VDS · Операционные системы

Пользователи и sudo вместо root

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

Обновлено 23 августа 2026 г.

Машина выдаётся с полным root-доступом, и первое желание — так под root и работать. Это удобно ровно до первой опечатки в rm -rf. Рабочая схема другая: обычный пользователь на каждый день, root — через sudo и только когда это действительно нужно.

Завести пользователя

Debian и Ubuntu:

adduser artem
usermod -aG sudo artem

AlmaLinux и CentOS Stream:

adduser artem
passwd artem
usermod -aG wheel artem

Группа отличается: sudo в семействе Debian, wheel в семействе RHEL. Проверить права:

sudo -l -U artem

Перенести ключи SSH

Ключи, добавленные во вкладке «Доступ» панели /hosting/vds/<id>, попадают пользователю root. Новому пользователю их нужно положить самому:

mkdir -p /home/artem/.ssh
cp /root/.ssh/authorized_keys /home/artem/.ssh/
chown -R artem:artem /home/artem/.ssh
chmod 700 /home/artem/.ssh
chmod 600 /home/artem/.ssh/authorized_keys

Права здесь не формальность: при слишком свободных правах sshd молча откажется принимать ключ.

Проверьте вход новым пользователем в отдельном окне терминала, не закрывая текущее:

ssh artem@<адрес>
sudo whoami

Только после успешной проверки переходите к отключению входа root.

Как пользоваться sudo

sudo systemctl restart nginx
sudo -i
sudo -u www-data ls /var/www

sudo -i даёт полноценную root-оболочку — для серии команд, а не для постоянной работы. Каждое обращение к sudo пишется в журнал, и это ваш след при разборе инцидента:

journalctl -t sudo -n 50
grep sudo /var/log/auth.log

Подробнее о журналах — кто заходил на машину.

Права для служб

Отдельная частая ошибка — запускать приложение от root «чтобы работало». Для каждой службы заводите системного пользователя без оболочки:

useradd --system --no-create-home --shell /usr/sbin/nologin appsrv
chown -R appsrv:appsrv /opt/app

Тогда дыра в приложении не отдаёт злоумышленнику всю машину сразу.

Частые ошибки

ОшибкаПричинаРешение
artem is not in the sudoers fileНе в группе или не перелогинилисьusermod -aG sudo artem, новый вход
Ключ не принимаетсяПрава на .ssh шире 700 или владелец rootchown и chmod как выше
Пароль sudo не подходитУ пользователя не задан парольpasswd artem
Правка sudoers сломала sudoСинтаксическая ошибка в файлеТолько visudo; ремонт через диск восстановления

Правьте /etc/sudoers исключительно командой visudo — она проверяет синтаксис перед сохранением. Сломанный файл лишает sudo сразу всех.