¿Cómo cambiar los permisos predeterminados de los archivos creados por transmission-daemon?

25

Tengo una máquina que ejecuta el servidor Ubuntu 12.04 con transmisión-daemon ejecutándose para manejar bitorrents. Todo funciona bien, excepto que el demonio de transmisión crea archivos como usuario / grupo debian-transmission, y con 744 permisos de archivo.

  • Me gustaría poder eliminar y mover estos archivos desde un recurso compartido de samba.

  • Pensé en cambiar el grupo primario de la transmisión de Debian del usuario, pero me preocupaba que eso pudiera arruinar el acceso a otros archivos.

  • Pensé que sería mejor cambiar el permiso predeterminado de los nuevos archivos creados por debian-transmission a 774, y agregarme al grupo debian-transmission.

    Sé que esto se puede hacer con una umask, pero entiendo que esto se establecería en el archivo .profile y dado que la transmisión debian no tiene una carpeta de inicio, no estoy seguro de si ese archivo existe para el usuario. Entonces, ¿cómo puedo lograr esto?

    Sugerencias o soluciones alternativas son bienvenidas. Gracias por adelantado.

jpetersen
fuente
Hice eso en Crystalubuntu, ahora recibo un error al iniciar la transmisión: "no se puede establecer gid en 113 (Operación no permitida)". ¿Alguna idea?
Terminé con la siguiente entrada crontab <pre> #! / Bin / sh trap "" 1 logfile = / dev / null exec> $ logfile 2> & 1 set -x mientras es verdadero; do a = "$ (inotifywait -q -r -e move -e create -e delete / data / completedownloads / Movies --format% w% f)" chown -R nobody: nobody "$ a" done </pre>

Respuestas:

46

Puede especificar una umask en el archivo de configuración de la transmisión ( /etc/transmission-daemon/settings.json). Umask normalmente representamos en octal, pero desafortunadamente, json no es compatible con eso, por lo que tenemos que convertirlo a base 10. Puede hacer esto en el shell de esta manera:

$ echo $(( 8#022 ))
18

Ese es el valor predeterminado, pero probablemente desee 002, que es el mismo en decimal, así que

sudo editor /etc/transmission-daemon/settings.json
# change "umask": 18 to "umask": 2 and save
sudo reload transmission-daemon # tells transmission-daemon to re-read the config 
                                # file. This is important, otherwise, the changes
                                # will be lost

Otra cosa. Si cambia la propiedad del grupo del directorio de descarga y agrega el bit setgid, todos los archivos creados en ese directorio tendrán la misma propiedad del grupo que ese directorio.

sudo chgrp "$USER" /path/to/transmission/download/dir
sudo chmod g+s /path/to/transmission/download/dir

No afectará a los archivos que ya existen. Ver http://mywiki.wooledge.org/Permissions para más información.

geirha
fuente
Exactamente lo que necesitaba. Gracias por incluir la información de bit setgid, me olvidé de esos bits adicionales.
jpetersen
Creo que estoy haciendo algo mal. Quiero establecer los permisos como chmod 775, así que intenté con ese comando echo $ ((8 # 775)) y obtuve 509, pero parece que esto simplemente rompió el demonio de transmisión ya que no descargará más archivos torrent.
Fran Marzoa
3
@Fran Si configura la umask en 0775, los archivos obtendrán el modo 002; La máscara especifica qué bits NO establecer en nuevos archivos. Desea la umask predeterminada (002) aquí, para que los archivos se creen con el modo 664 y los directorios con el modo 775.
geirha
Oh! Ya me di cuenta de que tenía que poner 002, ¡pero no sabía por qué! ¡Un millón de gracias por la aclaración! :)
Fran Marzoa
Era lo chmod g+sque me faltaba. ¡Gracias!
Flith
0

Prueba esto:

mkdir /your_path/progress
mkdir /your_path/completed
sudo usermod -a -G debian-transmission your_user
chgrp debian-transmission /your_path/progress
chgrp debian-transmission /your_path/completed
chmod 770 /your_path/progress
chmod 770 /your_path/completed
sudo service transmission-daemon stop
sudo adduser your_user debian-transmission
sudo nano /etc/init.d/transmission-daemon
sudo chown your_user -R /var/lib/transmission-daemon/info/
sudo chown your_user -R /your_path/progress
sudo chown your_user -R /your_path/completed
sudo chown your_user -R /etc/transmission-daemon/settings.json

Y cambie en el archivo: sudo nano /etc/transmission-daemon/settings.json

"rpc-whitelist": "127.0.0.1" > "rpc-whitelist": "*.*.*.*",
"rpc-password": "password" > "rpc-password": "your_password",
"download-dir": "/var/lib/transmission-daemon/downloads" > "download-dir": "/your_path/completed"
"incomplete-dir": "/var/lib/transmission-daemon/downloads" > "incomplete-dir": "/your_path/progress"

Simplemente reinicia el demonio:

service transmission-daemon start
Costales
fuente