Si tiene un archivo .plist
para el daemon de inicio y lo ejecuta a través del comando launchctl load
, puede especificar las etiquetas StandardErrorPath
y StandardOutPath
, que se pueden usar para tener el error estándar y el estándar salida en un archivo.
Por mi parte, estaba bien hasta que me di cuenta de que si la ruta no está allí, se crea automáticamente, pero pertenece al usuario root
.
He intentado escribir este archivo en el directorio de inicio de un usuario diferente al mío y creó el archivo sin quejarme, con el propietario root
. No utilicé sudo cuando ejecuté launchctl.
Parece que no aceptará todas las rutas (por ejemplo, podría crear archivos en /home/otheruser/nested_dir/nested_dir2/test.out
, pero no podría en /home/otheruser/.ssh
), pero todavía me resulta extraño que esto esté permitido.
Probablemente haya algunas protecciones en su lugar, pero ¿no debería bloquearse este tipo de comportamiento? Tener una lista negra de ubicaciones no permitidas suena bastante raro y creo que algunos trucos con enlaces simbólicos podrían explotar algo.
E incluso si ese no es el caso, ¿qué sucede si los usuarios tienen algún tipo de cuota de espacio en disco y un usuario llena la cuota del otro usuario?
¿Hay algo que me esté perdiendo aquí?
(Probé esto en macOS 10.13.3)