Как добавить разработчика на Linux-сервер: SSH-ключи и права доступа
Задача: дать программисту доступ только к его проекту
Давать разработчикам пароль от root-пользователя категорически небезопасно. Правильный подход: завести отдельную учетную запись, настроить авторизацию по ключу и ограничить права только рабочей директорией /var/www/site.
Сравнение прав доступа
| Параметр | Root доступ (Плохо) | Изолированный пользователь (Правильно) |
|---|---|---|
| Права в системе | Полный контроль над ОС | Только чтение/запись в свой проект |
| Аудит действий | Невозможно понять, кто автор | Каждое действие зафиксировано в логах |
| Безопасность | Риск случайного удаления ОС | Изоляция системных файлов |
Пошаговое создание пользователя и настройка прав
- Создаем нового пользователя:
sudo adduser devuser - Создаем каталог для SSH-ключей нового юзера:
sudo mkdir -p /home/devuser/.ssh sudo chmod 700 /home/devuser/.ssh - Добавляем публичный ключ разработчика:
sudo nano /home/devuser/.ssh/authorized_keys # Вставьте открытый ключ (ssh-rsa / ssh-ed25519) и сохраните файл sudo chmod 600 /home/devuser/.ssh/authorized_keys sudo chown -R devuser:devuser /home/devuser/.ssh - Назначаем права на директорию веб-проекта:
# Делаем пользователя и веб-сервер совладельцами папки: sudo usermod -aG www-data devuser sudo chown -R devuser:www-data /var/www/my_site sudo chmod -R 775 /var/www/my_site
Никогда не добавляйте рядовых разработчиков в группу sudo, если им не требуется администрирование всей операционной системы.
Частые вопросы (FAQ)
Как разработчику подключиться по новому ключу?
Командой в консоли: ssh -i ~/.ssh/id_rsa devuser@IP_СЕРВЕРА.
Что делать, если веб-сервер не может записывать загружаемые файлы?
Убедитесь, что папка uploads принадлежит группе www-data и имеет права 775.
Как заблокировать доступ уволенному разработчику?
Удалите его ключ из ~/.ssh/authorized_keys или заблокируйте аккаунт: sudo usermod -L devuser.
Как временно зайти под созданным пользователем для проверки?
Выполните команду sudo su - devuser.