2 votos

Cómo crear una aplicación instalable con el set de bits setuid propiedad de Root

He heredado una base de código que necesita ser actualizada, pero no tengo la compilación scripts que creó el archivo pkg final.

El código necesita acceder a un dispositivo USB conectado (tratado como una unidad) para leer y escribir bits, por lo que necesita privelegios escalonados. Debido a la naturaleza no técnica de los usuarios finales, necesitan poder hacer clic en la aplicación, y no se puede esperar que la ejecuten desde la línea de comandos con sudo.

El instalador actual se instala en /Applications/myapp.app, con myapp.app/Contents/MacOS/myapp configurado en -rwsr-xr-x Root:staff permissions. Cuando se instala, esta aplicación funciona perfectamente sin problemas.

Me las arreglé para hacer un archivo pkg similar usando pkgbuild, y crea una carpeta similar en /Aplicaciones, con los mismos permisos, newapp.app/Contents/MacOS/newapp -rwsr-xr-x Root:staff. Pero si intento ejecutar la aplicación sin sudo, entonces obtengo "La aplicación con ID de paquete newapp está ejecutando setugid(), lo cual no está permitido".

El mac que tengo está corriendo MacOS 10.13.6 La aplicación es Python que ha sido empaquetada en un binario.

¿Cómo se supone que voy a empaquetar este código para que se ejecute como Root después de ser instalado?

1voto

Oskar Puntos 1242

Esto es sólo el conjunto de tareas de un shell script que se empaquetará con tu paquete de instalación.

Sólo tienes que empaquetar todos los archivos como lo haces y luego revisar este script único paquete. Como no hay archivos, todos los pasos de esta guía te mostrarán cómo hacer la instalación posterior script.

La primera guía es la más densa, así que léanla y luego vayan a los siguientes enlaces, luego regresen a la primera para cuando estén listos para usarla. pkgbuild para instalar y script.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X