Настройка пользователя tuner для управления LEMP сервером на Ubuntu 16.04

Категория: Linux

Создание и настройка пользователя tuner для управления Web сервером. Настройка автодеплоя проектов на PHP 7.2.

Создание пользователя tuner

Создаем нового пользователя tuner + настройка групп:

sudo adduser tuner
sudo usermod -aG sudo,www-data tuner
groups tuner

Заливаем ssh ключ для пользователя tuner на сервер:

ssh-copy-id -i ~/.ssh/id_rsa.pub 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 nano /etc/sudoers.d/tuner
# Перезагрузка 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:

read -r -d '' sudoers_www_data_config << EOM
www-data ALL = (tuner) NOPASSWD: /var/www/site/script.sh
EOM
sudo echo "$sudoers_www_data_config" > /etc/sudoers.d/www-data

Или даем права пользователю www-data на выполнение любых команд от имени root:

www-data ALL=(ALL) NOPASSWD: ALL

#create lemp managed user on ubuntu 16.04, #setup linux user permissions for lemp, #linux user permissions for auto deploy

категория: Linux