태그 보관물: upstart

upstart

전송 전송 사용자를 어떻게 변경합니까? 내 XBMC 설치와 동일한 사용자로 유지하려고하므로 데몬을

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



답변

신출내기 V1.4로, setuid그리고 setgidconfig 파일에서 기본적으로 지원됩니다

setgid <groupname>

setuid <username>

v1.4 이전에는 이것을 사용할 수 있습니다 ( 여기에 설명 됨 ).

exec start-stop-daemon --start -c {user} --exec {command}


답변

다른 모든 답변은 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


답변

가정 :

  • 이 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. 업데이트가 성공하면 이제 전송 데몬이 실행 중이어야합니다. 위 단계를 따라 사용자 / 그룹을 다시 변경할 수 있습니다.


답변

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

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/


답변

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

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

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

sudo systemctl daemon-reload


답변

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: 이것은 오래된 시작 시작 스크립트 인 것 같습니다.


답변

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

  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
    

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