Почему для трансмиссионного демона требуется доступ к моим папкам пользователей при запуске от имени системного пользователя?

Я использую Ubuntu 18.04.2 LTS, и у меня новая версия transmission-daemon. Он отлично работает как сервис Systemd. Но когда я пытаюсь запустить его в автономном режиме (с остановленной службой), я вижу:

~ ⌘ sudo -u debian-transmission transmission-daemon -f --log-error --log-info --log-debug
[2019-05-14 11:53:19.167] Couldn't read "/home/jason/.config/user-dirs.dirs": Permission denied
[2019-05-14 11:53:20.419] Couldn't create "/home/jason/.config/transmission-daemon": Permission denied (file-posix.c:189)
[2019-05-14 11:53:20.419] Couldn't create "/home/jason/.config/transmission-daemon": Permission denied (file-posix.c:189)
[2019-05-14 11:53:20.419] Couldn't create "/home/jason/.config/transmission-daemon": Permission denied (file-posix.c:189)
[2019-05-14 11:53:20.419] Transmission 2.92 (14714) started (session.c:740)
[2019-05-14 11:53:20.419] Couldn't read "/home/jason/.config/transmission-daemon/stats.json": No such file or directory (utils.c:238)
[2019-05-14 11:53:20.419] Couldn't read "/home/jason/.config/transmission-daemon/stats.benc": No such file or directory (utils.c:238)

Обратите внимание, что ~ преобразуется в /home/jason как пользователь jason (я). Но я запускаю его как пользователь debian-transmission. Так почему же Transmission пытается получить доступ к "моим" пользовательским каталогам? Как я могу остановить это, делая это?

0
задан 14 May 2019 в 06:10

1 ответ

По крайней мере, в последних версиях Ubuntu, sudo настроен для сохранения пользователя вызова HOME среда variable1. Можно проверить это любой путем выполнения чего-то как

$ sudo -u testuser sh -c 'echo $HOME'
/home/steeldriver

или путем выполнения sudo sudo -V и взгляд на Environment variables to preserve раздел.

Для установки HOME тому из целевого пользователя, можно добавить -H (--set-home) опция:

 -H, --set-home
             Request that the security policy set the HOME environment
             variable to the home directory specified by the target user's
             password database entry.  Depending on the policy, this may
             be the default behavior.

Напр.

$ sudo -Hu testuser sh -c 'echo $HOME'
/home/testuser

  1. См. также, Почему пользователи никогда не должны использовать нормальный sudo для запущения графических приложений?
1
ответ дан 14 May 2019 в 06:10

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

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