Користувачі та 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/m/<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@<address>
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 або власник — root | chown і chmod як вище |
| Пароль sudo не працює | У користувача не встановлено пароль | passwd artem |
| Редагування sudoers зламало sudo | Синтаксична помилка у файлі | Лише visudo; виправлення через режим відновлення |
Редагуйте
/etc/sudoersвиключно командоюvisudo— вона перевіряє синтаксис перед збереженням. Зламаний файл забирає sudo одразу в усіх.