전송 전송 사용자를 어떻게 변경합니까?


10

PPA를 통해 Transmission을 설치했으며 부팅시 데몬이 시작됩니다. 다운로드 한 파일을 내 XBMC 설치와 동일한 사용자로 유지하려고하므로 데몬을 실행하는 사용자를 변경하고 싶습니다. 편집 위치를 찾을 수 없습니다.

데몬은 upstart를 사용하므로 어느 사용자가 그것을 실행하는 데 대한 정보가 없으며 사용자 /etc/init.d/transmission-daemon/etc/default/transmission-daemon대한 정보도 없습니다.

전송에이 ppas를 사용하고 있습니다.

/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list:deb //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main

/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list:deb-src //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main

/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list.save:deb //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main

/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list.save:deb-src //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main

PPA와 Ubuntu 버전을 제공 할 수 있습니까? 어디에서나 전송 데몬 패키지에는 /etc/init.d/transmission-daemon 파일이 있습니다.
정렬

확실하지 않으면 죄송합니다. 어떤 사용자가 해당 파일에서 데몬을 실행하는지에 대한 정보가 없습니다.
BvdBijl

/etc/init.d/transmission-daemon 파일의 시작 부분에 "USER = debian-transmission"줄이 나타납니다. 그게 다야.
주선

내 모습은 다음과 같습니다. gist.github.com/boukevanderbijl/04c7d6a322a08e9629cb
BvdBijl

나는 시작 포스트에서 사용하는 PPA를 추가했다
BvdBijl

답변:



15

다른 모든 답변은 Ubuntu 사전 시스템에 대한 것이므로 Ubuntu 16.04에 대한 업데이트 된 안내서는 다음 과 같습니다 ( sensecodons.com ). 기본적으로 "transmission-daemon.service"에 대한 보충 단위를 작성하여 User=...설정 을 변경 한 다음 해당 사용자의 "~ / .config / transmission-daemon / settings.json"파일을 업데이트하십시오.

전송을 중지하십시오 (이미 실행중인 경우).

sudo systemctl stop transmission-daemon

전송할 보충 파일 디렉토리를 작성하십시오.

sudo mkdir -p /etc/systemd/system/transmission-daemon.service.d

"run-as-user.conf"라는 새 보충 파일을 작성하십시오.

sudo vi /etc/systemd/system/transmission-daemon.service.d/run-as-user.conf

다음 텍스트를 넣습니다.

[Service]
User=codon

"코돈"이 아닌 원하는 사용자 이름을 사용하십시오.

systemd에게 장치를 다시 장착하라고 지시하십시오.

sudo systemctl daemon-reload

다음으로, ~/.config/transmission-daemon/새 사용자를위한 디렉토리 를 만들기 위해 전송을 시작한 다음 중지 합니다.

전송을 시작한 다음 전송을 중지하십시오.

sudo systemctl start transmission-daemon; sudo systemctl stop transmission-daemon

이제 사용자의 홈 디렉토리에 다음 디렉토리가 있어야합니다. .config/transmission-daemon/

여기에서 ~/.config/transmission-daemon/settings.json정상적으로 업데이트 할 수 있어야 합니다.

완료되면 전송을 시작하십시오.

sudo systemctl start transmission-daemon

3
디렉토리와 파일을 수동으로 작성하는 대신을 사용하십시오.이 디렉토리와 파일 systemctl edit transmission-daemon.service을 자동으로 작성하고 2. 저장하고 종료 할 때도 실행 systemctl daemon-reload됩니다.
muru

7

가정 :

  • 이 PPA를 사용했습니다. ppa:transmissionbt/ppa
  • user : some_user및 group으로 Transmission을 실행하려고합니다 .some_group

System V (SysV) 초기화 시스템의 경우 (예 : Ubuntu 10.04 LTS) :

  1. 전송 데몬을 중지하십시오.

    sudo service transmission-daemon stop
    
  2. init.d 스크립트 편집

    sudo nano /etc/init.d/transmission-daemon
    

    ... 그리고 변화 USER=debian-transmissionUSER=some_user

Upstart init 시스템 (예 : Ubuntu 14.04 LTS)의 경우 :

  1. 전송 데몬을 중지하십시오.

    sudo service transmission-daemon stop
    
  2. init 스크립트를 편집하십시오 :

    sudo nano /etc/init/transmission-daemon.conf
    

    ... 그리고 다음과 같이 편집하십시오 :

    • 변화 setuid debian-transmissionsetuid some_user

    • 변경 setgid debian-transmissionsetgid some_group

시스템화 된 초기화 시스템 (예 : Ubuntu 16.04 LTS) :

  1. 전송 데몬을 중지하십시오.

    sudo systemctl stop transmission-daemon.service
    
  2. systemd override.conf 파일을 작성하십시오.

    sudo systemctl edit transmission-daemon.service
    

    ... 그리고 다음과 같이 편집하십시오 :

    [Service]
    User=
    User=some_user
    Group=
    Group=some_group
    

    노트:

    • 다음과 같은 파일이 생성됩니다. /etc/systemd/system/transmission-daemon.service.d/override.conf

    • 빈 변수 할당 (예 :) User=은 기존 변수의 값을 지우거나 재설정하는 데 사용됩니다. 이것은 시스템 단위 파일의 드롭 인 대체를 사용할 때 수행되는 방식입니다. systemd.unit 매뉴얼의 "예 2. 공급 업체 설정 재정의"를 참조하십시오 .

      "... 드롭 인 파일의 경우 목록으로 구문 분석 된 (종속성이 아닌) 설정에서 항목을 제거하려면 ... ... 먼저 항목을 제외한 모든 항목을 다시 추가하기 전에 목록을 지워야합니다. 제거 될 것 ... "

  3. 시스템 재로드 및 전송 데몬 시작 :

    sudo systemctl daemon-reload
    sudo systemctl start transmission-daemon.service
    

    참고 : Upstart 및 SysV init 시스템 전송 데몬과 달리 모든 구성 및 설정 /home/some_user/.config/transmission-daemon//etc/transmission-daemon/settings.json/var/lib/transmission-daemon

참고 및 참고 자료


권한 및 패키지 업데이트에 관한 선택적 / 추가 정보 :

참고 : 다음은 Upstart 및 SysV init 시스템에만 해당됩니다.

전송 구성 파일에 대한 권한 변경

당신이 systemd 초기화 시스템을 사용하지 않는 경우에 당신은 지금부터 변속기의 구성 파일에 대한 권한을 변경해야 할 수도 있습니다 user=debian-transmissionuser=some_user와에서 group=debian-transmissiongroup=some_group.

  1. 전송 구성 디렉토리의 위치를 ​​확인하십시오. /etc/default/transmission-daemon파일에 다음과 같이 한 줄로 언급 되어 있습니다.

    CONFIG_DIR="/var/lib/transmission-daemon/info"
    
  2. 구성 디렉토리가이라고 가정하면 /var/lib/transmission-daemon/info구성 파일의 소유권을 변경하십시오.

    sudo chown some_user:some_group /var/lib/transmission-daemon/downloads
    sudo chown some_user:some_group /var/lib/transmission-daemon/info
    sudo chown some_user:some_group /var/lib/transmission-daemon/info/blocklists
    sudo chown some_user:some_group /var/lib/transmission-daemon/info/dht.dat
    sudo chown some_user:some_group /var/lib/transmission-daemon/info/resume
    sudo chown some_user:some_group /var/lib/transmission-daemon/info/torrents
    
  3. 다른 파일의 소유권을 변경하십시오.

    sudo chown :some_group /etc/transmission-daemon
    sudo chown some_user:some_group /etc/transmission-daemon/settings.json
    

추가 정보 (전송 업데이트) :

기본 사용자를 변경했기 때문에 저장소를 사용하여 전송을 업데이트 한 후 (예 : apt-get upgrade) 전송 데몬이 더 이상 실행되지 않는 것을 알 수 있습니다.

"sudo apt-get -f install"을 실행하면 다음 오류가 발생합니다.

Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up transmission-daemon (2.84-0ubuntu0.12.04.1) ...
 * Starting bittorrent daemon transmission-daemon
invoke-rc.d: initscript transmission-daemon, action "start" failed.
dpkg: error processing transmission-daemon (--configure):
 subprocess installed post-installation script returned error exit status 255
Errors were encountered while processing:
 transmission-daemon
E: Sub-process /usr/bin/dpkg returned an error code (1)

데몬이 시작되지 않는 이유 ( "invoke-rc.d : initscript transmission-daemon,"start "실패")는 권한을 "debian-transmission"에서 "some_user"로 변경하고 업데이트 후에 재설정 되었기 때문입니다. . 따라서 수정하려면 다음을 수행하십시오.

  1. 데몬 중지 및 구성 파일 편집 :

    sudo service transmission-daemon stop
    sudo nano /etc/init.d/transmission-daemon
    

    ... 그리고 변화 USER=some_userUSER=debian-transmission

  2. 다음을 실행하여 업데이트 수정을 재 시도하십시오.

    sudo apt-get -f install
    
  3. 업데이트가 성공하면 이제 전송 데몬이 실행 중이어야합니다. 위 단계를 따라 사용자 / 그룹을 다시 변경할 수 있습니다.


6

이것은 완전한 이야기가 아닙니다. 변화 외에도

setgid <groupname>

setuid <username>

/etc/init/transmission-daemon.conf

transmission-daemon 구성 파일의 권한을 변경해야합니다. 그렇지 않으면이 파일에 설정을 다시 쓸 수 없으며 데몬은 upstart가 충분한 기회가 있다고 생각할 때까지 다시 시작됩니다 (초기 : 전송 데몬 재 생성이 너무 빠르거나 중지됨)

sudo chown <user>:<group> /etc/transmission-daemon/settings.json
sudo chown -R <user>:<group> /var/lib/transmission-daemon/ 

의 권한 변경에 대한 의견을 보내 주셔서 감사합니다 settings.json. 그것을 놓쳤다.
nighthawk454

2

systemd를 사용하는 시스템에서 편집하려는 파일은 실제로 다음과 같습니다.

/etc/systemd/system/multi-user.target.wants/transmission-daemon.service

다음을 사용하여 편집을 수행하십시오.

sudo systemctl daemon-reload


이것이 나를 도왔습니다. 다른 모든 단계를 수행했지만 작동하지 않았습니다. 감사합니다!
Martijn Smidt

2

Ubuntu 16.04에서 시작 서비스가 시작에서 시스템으로 변경되어 이전 답변이 더 이상 사용되지 않아야합니다. 사용자 전송 데몬 실행을 변경하려면 다음을 실행하십시오.

데몬 중지 :

sudo service transmission-daemon stop

구성 파일 및 "홈"의 소유권을 변경하십시오.

sudo chown -R USER:USER /var/lib/transmission-daemon/*
sudo chown -R USER:USER /etc/transmission-daemon/settings.json

그런 다음 다음을 사용 /lib/systemd/system/transmission-daemon.service하여 파일 을 편집하십시오 .

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=USER
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-debug --config-dir /var/lib/transmission-daemon/info
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

을 유의하시기 바랍니다 User, --config-dir그리고 --log-debug변경됩니다.

시스템 구성을 다시로드하십시오.

sudo systemctl daemon-reload

데몬을 다시 시작하십시오.

sudo service transmission-daemon start

당신이 설정 한 후 --log-debug(당신에게 문제의 더 많은 정보를 제공 할) 옵션을 사용하면 데몬의 로그를 얻을 수 있습니다 :

sudo journalctl -u transmission-daemon.service

끝난.

참고 사항 :

파일을 무시할 수 있습니다.

/etc/default/transmission-daemon: 아무도 시스템 시스템에서 그것을 소싱하지 않는 것 같습니다.

/etc/init.d/transmission-daemon: 이것은 오래된 시스템 5 시작 스크립트 인 것 같습니다.

/etc/init/transmission-daemon.conf: 이것은 오래된 시작 시작 스크립트 인 것 같습니다.


2
/lib/systemd/system/transmission-daemon.service수동으로 편집하지 마십시오 . systemctl edit transmission-daemon.service대신 사용하십시오 . 그렇지 않으면 패키지를 업그레이드 할 때 변경 사항이 유실됩니다.
muru

0

나는 다음을 수행했는데, 그것은 다른 대답보다 덜 침습적 인 것 같습니다.

  1. 전송 데몬 시작을 제거하십시오.

    sudo update-rc.d -f transmission-daemon remove
    
  2. 다음에 추가하십시오 /etc/profile:

    if [ -f "$HOME/.autostart" ]; then
      $HOME/.autostart
    fi
    
  3. 작성 ~/.autostart:

    #!/bin/bash
    if [ -z "$(pidof transmission-daemon)" ]; then
     /usr/bin/transmission-daemon --config-dir /home/[USERNAME]/.config/transmission-daemon &
    fi
    

이것은 아마도 좀 더 이식성이 좋으며, 일반 데비안과 미니비 안에서도 작동합니다.


나쁜 생각은 아니지만 사용자가 실행하는 쉘로 로그인해야합니다 /etc/profile(예 : zsh는이를 실행하지 않음)
elboletaire
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.