Настройка пользователя tuner для управления LEMP сервером на Ubuntu 16.04
Создание и настройка пользователя tuner для управления Web сервером. Настройка автодеплоя проектов на PHP 7.2.
Создание пользователя tuner
Создаем нового пользователя tuner + настройка групп:
sudo adduser tuner
sudo usermod -aG sudo,www-data tuner
groups tuner ## просмотр групп пользователя
Генерим новый ssh ключ для пользователя tuner и заливаем на сервер:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_SERVER_NAME_tuner -C "SERVER_NAME tuner ssh auth" -q -N ""
ssh-copy-id -o PubkeyAuthentication=no -i ~/.ssh/id_rsa_SERVER_NAME_tuner.pub -p XXXXX tuner@X.X.X.X
Примечание
Если при создании droplet вы добавляли ssh ключ для пользователя root, тогда ssh-copy-id не сработает. Вам нужно добавить содержимое локального id_rsa.pub ключа в файл /home/tuner/.ssh/authorized_keys.
Настройка sudoers
Создаем файл /etc/sudoers.d/tuner с разрешениями пользователю tuner выполнять определенные команды под sudo без ввода пароля root.
sudo visudo -f /etc/sudoers.d/tuner
Внимание!
Для редактирования файлов /etc/sudoers.d/ используйте visudo - утилита проверяет валидность синтаксиса и ставит нужные права на файл 0440.
# Перезагрузка nginx
tuner ALL=NOPASSWD: /usr/sbin/service nginx *
# Управление virtualhost и корневыми каталогами сайтов /var/www/
tuner ALL=NOPASSWD: /bin/chown -R root\:tuner /etc/nginx/sites-*, /bin/chmod -R 775 /etc/nginx/sites-*
tuner ALL=NOPASSWD: /bin/chown -R www-data\:www-data /var/www/*, /bin/chown -R tuner\:www-data /var/www/*
tuner ALL=NOPASSWD: /bin/chmod -R 755 /var/www/*, /bin/chmod -R 775 /var/www/*
# Чтение логов
tuner ALL=NOPASSWD: /usr/bin/tail /var/log/*
tuner ALL=NOPASSWD: /bin/rm /var/log/nginx/error.log, /bin/rm /var/log/nginx/access.log
Установка прав на каталоги
sudo chown -R root:tuner /etc/nginx/sites-*
sudo chmod -R 775 /etc/nginx/sites-*
sudo chown -R tuner:www-data /var/www/
sudo chmod -R 755 /var/www/
Разрешения для www-data юзера
Разрешаем пользователю www-data запускать скрипт деплоя от имени пользователя tuner:
sudo visudo -f /etc/sudoers.d/www-data
www-data ALL = (tuner) NOPASSWD: /var/www/site.domain/deploy.sh
или:
read -r -d '' sudoers_www_data_config << EOM
www-data ALL = (tuner) NOPASSWD: /var/www/site.domain/deploy.sh
EOM
sudo echo "$sudoers_www_data_config" > /etc/sudoers.d/www-data
Можно дать права пользователю www-data на выполнение любых команд от имени root (ОПАСНО!):
www-data ALL=(ALL) NOPASSWD: ALL
#lemp, #sudo, #lemp setup user, #create lemp managed user on ubuntu 16.04, #setup linux user permissions for lemp, #linux user permissions for auto deploy