Debian 10 시스템에서 전송 데몬 2.94를 서비스로 실행하고 있습니다.
Apache가 저장 파일을 읽을 수 있고 반대로 전송이 Apache 파일을 읽을 수 있기를 원했기 때문에 전송 데몬을 실행하는 사용자를 기본값에서 Apache 사용자 debian-transmission
로 변경했습니다.www-data
이를 위해 다음 프로필을 사용자 설정으로 변경했습니다.
User=www-data
존재하다/lib/systemd/system/transmission-daemon.service
USER=www-data
존재하다/etc/init.d/transmission-daemon
setuid www-data
그리고setgid www-data
/etc/init/transmission-daemon.conf
전송된 JSON 구성 파일은 여전히 에 있습니다 . 디렉터리 와 www-data가 모두 새 사용자에 속하는지 /etc/transmission-daemon/settings.json
확인했습니다 ./var/lib/transmission-daemon
/etc/transmission-daemon
sudo systemctl start transmission-daemon
그러나 서비스를 사용하거나 다시 시작하면 sudo service transmission-daemon start
전송 로그에 다음이 표시됩니다.
Couldn't create "/var/www/.config": Permission denied (file-posix.c:189)
Couldn't read "/var/www/.config/transmission-daemon/settings.json": No such file or directory (utils.c:238)
Couldn't save temporary file "/var/www/.config/transmission-daemon/settings.json.tmp.jq3qtN": No such file or directory (variant.c:1285)
...그리고 기타 유사한 오류가 발생했습니다.
따라서 전송 데몬이 www-data
사용자의 홈 경로를 사용하고 거기에 구성 디렉터리를 다시 만들려고 시도하는 것 같습니다.
왜 그런 겁니까? 전송을 위해 이전 기본 구성 경로를 어떻게 사용할 수 있습니까?사용자의 홈 경로에 의존하는 전송 구성이 표시되지 않습니다.
부가 질문:서비스를 실행하는 사용자를 설정하는 세 가지 구성 파일의 차이점은 무엇입니까?
답변1
Transmission-Daemon은 이를 실행하는 사용자의 홈 폴더에 구성을 저장합니다. 기본적으로 사용자의 transmissio-daemon
홈 폴더는 다음과 같습니다.
/var/lib/transmission-daemon
정의된 대로/etc/passwd
Debian에서 settings.json 파일은
/var/lib/transmission-daemon/.config/transmission-daemon/
다음을 가리키는 포인터일 뿐입니다./etc/transmission-daemon/settings.json
홈 폴더이므로 쓰기가 가능해야 합니다. 발생하는 오류는 전송이 실행 중인 사용자의 홈 폴더에 설정/통계를 쓸 수 없기 때문에 발생합니다.
그러나 가장 좋은 접근 방식은 settings.json을 사용하여 umask
다른 사람이 전송을 통해 생성된 파일에 액세스할 수 있도록 허용하고 다운로드 폴더를 웹 서버가 액세스할 수 있는 위치(아마도 /var/ 폴더)에 쓰기로 www를 설정하는 것입니다. 전송 권한)
사용 사례에 대한 자세한 내용을 제공하시면 전송 사용자를 변경하지 않고도 필요에 맞는 구성을 생성할 수 있습니다.