Пользователи и права на Linux-сервере: что проверить заранее
За 15–30 минут можно создать отдельную учётную запись администратора и ограничить доступ приложения к его файлам. Разбираем безопасный порядок для Debian 12 и Ubuntu 24.04 — без общего пароля и прав 777.

Сначала определите, кому и зачем нужен доступ
На сервере с Debian 12 или Ubuntu 24.04 за 15–30 минут можно настроить отдельную учётную запись администратора и выдать приложению доступ только к его каталогу. Это важно не для порядка в списке пользователей: если приложение взломают или ошибочная команда удалит файлы, права определят, какой ущерб возможен.
Дальше — инструкция для нового администратора с именем ops, системной учётной записи приложения appsvc и каталога /srv/myapp. Если выбираете другие имена или путь, замените их во всех командах. Не начинайте с изменения настроек SSH и не закрывайте текущую сессию, пока не проверите новый вход.
Что нужно иметь до начала
- Сервер на Debian 12 или Ubuntu 24.04. Команды рассчитаны на эти версии и могут отличаться в других дистрибутивах.
- Текущую SSH-сессию с правами root или работающей командой
sudo. - Доступ к консоли сервера через панель хостинга на случай, если SSH-вход перестанет работать.
- Понимание, какой процесс будет запускать приложение и где лежат его файлы. Не меняйте владельца каталога вслепую: в уже работающем проекте его может ожидать другой сервис.
Сначала проверьте, кто вы и какие права у текущей учётной записи:
whoami
id
command -v sudoЕсли первая команда показывает не root, а sudo не найден, войдите под root через доступный способ управления сервером. Не продолжайте, пока не ясно, как получить административный доступ.
Настройте учётную запись администратора
Создайте отдельного пользователя. Команда попросит задать пароль и заполнить необязательные поля. Введите пароль в интерактивном приглашении: символы при наборе могут не отображаться, это нормально.
sudo adduser opsЕсли вы уже работаете в root-сессии, выполните ту же команду без
sudo:adduser ops. Проверка:id opsвыводит UID и основную группу пользователя.Разрешите административные команды через sudo. В Debian и Ubuntu для этого добавляют пользователя в группу
sudo. Не заменяйте команду на вариант без-a: он может удалить пользователя из других дополнительных групп.sudo usermod -aG sudo opsПроверка:
id opsпоказывает группуsudo. Чтобы применилось членство в новой группе, войдите под пользователемopsзаново. Затем проверьте разрешённые команды:sudo -l. В root-сессии команду изменения группы можно выполнить безsudo.Проверьте новый вход, не закрывая старый. Откройте второе окно терминала, подключитесь по SSH под
opsи выполнитеsudo -v. При успешной проверке команда завершится без ошибки. Если сервер не принимает нового пользователя, текущая сессия останется доступной для исправления.
Администратор и приложение — разные роли. У приложения обычно нет причины получать доступ к sudo, а у администратора — запускать рабочий процесс от имени root.
Создайте учётную запись для приложения
Приложению, которому не нужен интерактивный вход, подходит системный пользователь без домашнего каталога и оболочки входа. Это не универсальная настройка для любого сервиса: сначала проверьте, от какого пользователя его запускает ваш менеджер процессов.
Создайте пользователя приложения.
sudo useradd --system --user-group --no-create-home --shell /usr/sbin/nologin appsvcПроверка:
id appsvcпоказывает пользователя и его группу. Учётная запись не предназначена для обычного SSH-входа; не выдавайте ей административные права.Выделите приложению отдельный каталог. Следующая команда создаёт
/srv/myappс владельцемappsvc, группойappsvcи правами750. Используйте её для нового каталога; если путь уже занят данными, сначала проверьте содержимое и владельца.sudo install -d -o appsvc -g appsvc -m 0750 /srv/myappПроверка владельца и режима:
stat -c '%U:%G %a %n' /srv/myappВ результате ожидается строка
appsvc:appsvc 750 /srv/myapp. Дополнительно проверьте, что пользователь приложения может читать каталог и записывать в него:sudo -u appsvc test -r /srv/myapp && echo read-ok sudo -u appsvc test -w /srv/myapp && echo write-okПроверка: появились строки
read-okиwrite-ok. Она не подтверждает, что приложение настроено правильно, — только проверяет доступ от имени выбранного пользователя.
Как читать права и не открыть лишний доступ
В режиме 750 владелец может читать, записывать и входить в каталог; группа — читать и входить; остальные не получают прав. Для каталога право «вход» означает возможность пройти внутрь, а не запустить его как программу.
Дополнительная группа — группа, членство в которой добавляет пользователю права на файлы или команды. Например, sudo даёт административный доступ по правилам системы. Проверяйте группы командой id имя_пользователя; смена членства обычно требует нового входа.
Не используйте chmod -R 777 как способ «починить доступ». Так вы разрешите чтение, изменение и запуск файлов всем пользователям, а рекурсивное изменение может затронуть исполняемые файлы, конфигурацию и данные. Сначала выясните, кто должен читать или менять конкретный путь:
namei -l /srv/myappКоманда показывает права на каждом участке пути. Если у пользователя есть права на конечный каталог, но нет права прохода по одному из родительских каталогов, доступ всё равно не сработает.
Если не получилось
Тексты сообщений могут немного различаться между версиями и локализациями. Сверяйте не только сообщение, но и имя пользователя, команду и путь.
sudo: command not found. Команда sudo не установлена или недоступна в PATH. Войдите через root и, если пакетный менеджер доступен, установите пакет sudo командойapt update && apt install sudo. Затем повторите настройку группы.user 'ops' does not exist. Пользователь не создан или в команде указано другое имя. Проверьте список записи командойgetent passwd ops; если вывода нет, повторите создание.Sorry, user ops may not run sudo. Учётная запись ещё не получила административное разрешение либо вы проверяете старую сессию. Убедитесь, чтоid opsпоказывает группуsudo, затем выйдите и войдите снова.Permission denied. Проверьте права на весь путь командойnamei -l /srv/myapp, владельца — черезstat, а также пользователя, от имени которого запущен процесс. Не выдавайте права всем вместо поиска конкретного ограничения.
Что делать дальше
После настройки сохраните имена учётных записей и назначение каталогов в документации проекта. Проверьте конфигурацию службы: она должна запускать приложение от имени appsvc, если именно эта учётная запись владеет его файлами. Перед изменениями в SSH отдельно проверьте новый вход и оставьте доступ к консоли хостинга.
Следующий практический шаг — пересмотреть права существующих каталогов и убрать доступ, который приложению не нужен. Смотрите на владельца, группу и режим, а в рабочей системе дополнительно проверяйте журналы отказов доступа после развёртывания. Настройка прав здесь не заканчивается: обновление приложения, смена каталога или пользователя процесса могут изменить нужную схему доступа.
Защитник прав потребителей: Досудебные претензии на возврат товара со ссылками на ЗоЗПП.
Спросить за 15 ₽Источники: Debian 12: справка adduser, Debian 12: справка sudo
Частые вопросы
Можно ли дать приложению права sudo, чтобы оно не упиралось в ошибки доступа?
Нужно ли перезагружать сервер после добавления пользователя в группу sudo?
Что делать, если после настройки я не могу войти по SSH?
Подойдут ли эти команды для CentOS, Fedora или Alpine Linux?
Можно ли использовать имя appsvc и каталог /srv/myapp на уже работающем сервере?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.