Как полностью запустить службу без полномочий root?

Я пытаюсь запустить приложение ( сервер кода ) как пользователь sudo. Это приложение в основном позволяет мне запускать Visual Studio Code онлайн. Я создал служебный файл, как показано ниже: (vsc.service)

[Unit]
Description=Running Visual Studio Code Online

[Service]
User=dev001
Group=dev001
WorkingDirectory=/home/dev001/projects
Type=simple
ExecStart=/usr/bin/sudo /usr/bin/vsc.sh

[Install]
WantedBy=multi-user.target

Как видите, служебный файл содержит информацию о пользователе и группе.

вот сценарий, который я хочу запустить как службу (/usr/bin/vsc.sh)

cd /home/dev001/projects
code-server -p 80 --allow-http --password somepassword

Он работает нормально, но проблема в том, что пользователь, который запускает процесс, все еще остается с правами root , но работает как dev001. Вот скриншот доступа к терминалу через работающую службу:

Скриншот окна терминала vscode

Пожалуйста, помогите мне, если у вас есть какое-либо решение проблемы.

Редактировать 01:

Я воспользовался помощью nginx, чтобы выполнить переадресацию портов (обратный прокси-сервер) для решения проблемы, пока сервер кода не станет зрелым и не получит демонизированную поддержку работающий непосредственно на порте 80 или 443. Единственное преимущество, которое я получил с этим подходом, состоит в том, что я могу установить ssl letsencrypt так что нет, все мое окружение работает так, как мне нужно. Есть и другие вопросы, но они не относятся к этой теме.

0
задан 11 May 2019 в 10:49

1 ответ

Какое отношение имеет ваш снимок экрана? Вы показываете пользователя и каталог вашей оболочки. Я мог бы неправильно понять, но я думаю, что здесь есть некоторая путаница.

Служба SystemD, которую вы используете, должна запускаться при загрузке машины от имени пользователя dev001. Вы можете найти это, используя systemctl или ps aux | grep vsc.sh или подобное. Ключ здесь не в том, чтобы взглянуть на вашу оболочку, а на собственника самого процесса.

sudo systemctl enable vsc.service
sudo systemctl start vsc.service
sudo ps aux | grep vsc

Вы должны увидеть, что ваша служба запускается пользователем, заданным в вашем файле vsc.service.

0
ответ дан 11 May 2019 в 10:49

Другие вопросы по тегам:

Похожие вопросы: