LINUX.ORG.RU
ФорумAdmin

Как автозапускать сервис при помощи systemd из домашней папки пользователя?

 


0

1

Конечная цель - запускать от имени пользователя. Но вот проблема: домашняя папка была зашифрована при установке системы (т.е. она монтируется из /home/.ecryptfs/ во время логина, как я понял). Теперь при автозапуске сервиса в логах красуется: Failed at step EXEC spawning /home/user/dev/start: No such file or directory. Юнит-файл простейший из примеров:

[Unit]

Description=Writes the values of the counter to the file

[Install]

WantedBy=multi-user.target

[Service]

Type=forking ExecStart=/home/user/dev/start

Ответ на: комментарий от surefire

Ещё раз: Конечная цель - автозапускать от имени пользователя. Т.е. я не хочу сомнительному приложению давать root-привилегии.

DrLivesey
() автор топика
Ответ на: комментарий от DrLivesey

Что бы запускать от имени пользователя не обязательно размещать демона в хомяке.

surefire ★★★
()

Вообще-то сомнительные приложения от своего пользователя запускать - это примерно также плохо как от root. Потому что данные твоего пользователя - это собственно единственное ради чего стоит беспокоиться root-у.

Но если очень хочется то можно: https://wiki.archlinux.org/index.php/Systemd/User

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

alpha ★★★★★
()

Все пользовательские службы размещаются в ~/.config/systemd/user/. Если вы хотите запускать службы при первом входе в систему, выполните systemctl --user enable service для любой службы, которую вы хотите сделать автозагрузочной.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Маленькое замечание в таком случае нужно заменить WantedBy=multi-user.target на WantedBy=default.target

surefire ★★★
()
Ответ на: комментарий от alpha

"...надо создать отдельного системного пользователя, с отдельным системным хомяком и пускать его процессы с его правами." // Что, если этот «отдельный системный хомяк» тоже зашифрован? Ну вот не хочу я, чтобы конфиги сервиса были абы кому доступны.

DrLivesey
() автор топика
Ответ на: комментарий от DrLivesey

Тогда тебе нужен не «автозапуск» сервиса, а запуск сервиса при монтировании раздела. Туда и копай.

alpha ★★★★★
()

Зачем тебе в этом случае systemd? Запускай свою программу из профиля пользователя. Если очень хочется, то можешь для этого использовать systemd-run.

imul ★★★★★
()
Ответ на: комментарий от DrLivesey

Что, если этот «отдельный системный хомяк» тоже зашифрован? Ну вот не хочу я, чтобы конфиги сервиса были абы кому доступны.

Априори считай что все сервисы про которые ты не уверен точно что они делают, что они скачивают все, до чего могут дотянуться, на сервера фсб и анб, после чего удаляют все, что могут.

Бояться что кто-то увидит конфиги «сомнительного сервиса» по меньшей мере странно. Сервис уже сомнительный, бояться уже как-то поздновато.

morse ★★★★★
()
Ответ на: комментарий от DrLivesey

Почитай про параметры в юните. Там можно и юзера с группой задать, с правами которых будет запускаться.

Radjah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.