
Estoy corriendo archlinux
y uso systemd transmission.service
para descargar torrents. Tengo una ext4
partición del disco duro montada automáticamente fstab
con /var/lib/transmission
. Guardo allí todas las descargas completadas y comparto ese directorio con un servidor samba en la red local.
El problema es que cada vez que la computadora arranca, puedo ver /var/lib/transmission
que no tiene permisos de lectura para todos. Significa que el servidor Samba no puede leer la ruta completa a ese directorio y, en última instancia, no puedo acceder a los archivos con un cliente Samba. Después del arranque puedo ejecutar sudo chmod a+rX /var/lib/transmission
y solo entonces se puede acceder al directorio. Parece que transmission
reescribe los permisos drwxr-x---
en cada arranque.
¿Existe una forma elegante de editar algunos archivos systemd y solucionarlos? ¿Quizás usando sudo systemctl edit transmission.service
?
Respuesta1
La solución es agregar a /etc/systemd/system/multi-user.target.wants/transmission.service
lo siguienteousando sudo systemctl edit transmission.service
y escribiendo:
[Service]
ExecStartPost=/bin/chmod a+rX /var/lib/transmission
systemctl edit
abre un editor de texto para que pueda anular las entradas del archivo de servicio original y no cambiar el archivo original proporcionado por el administrador de paquetes.
Después de agregarlos, reinicie y solucione el problema.
Nota:Podría ser máspragmáticousar
systemctl edit
porque supongo que este comando se creó para que no edite los archivos de servicio originales proporcionados por el administrador de paquetes.Nota:Es posible que deba ajustar la ruta al
chmod
ejecutable de acuerdo con sus rutas de distribución.
Editar:
Al igual que los directorios en /var/run
, descubrí por qué systemd se asegura de que cada inicio de este directorio tenga estos permisos, se explica originalmente aquí:https://serverfault.com/questions/824393/var-run-directory-creation-even-aunque-service-is-disabled/824394#824394
citando:
Con systemd, hay una nueva funcionalidad llamada
tmpfiles.d(5)
que se puede usar para crear archivos o directorios al arrancar fuera del.service
archivo.Openvpn
yejabberd
ambos están usando esto, por eso los directorios/var/run
aún se crean incluso si no se inician en el arranque.Los archivos de configuración de tmpfiles se almacenan en
/usr/lib/tmpfiles.d/
De todos modos, otra forma de resolver este problema es editar el número de umask en /usr/lib/tmpfiles.d/transmission.conf
algo como esto:
d /var/lib/transmission 0755 transmission transmission