Hay dos formas generales de ejecutar aplicaciones gráficamente como root (o, más generalmente, como otro usuario). Programas como gksu, gksudoy kdesudoson interfaces gráficas para sudo. Por el contrario, pkexeces una interfaz gráfica para PolicyKit .
Cuando se ejecutan programas manualmente como root (o como otro usuario no root), ¿cuáles son las ventajas / desventajas (si las hay) de usar pkexec, en comparación con el método más tradicional de usar una sudointerfaz de usuario ?

Respuestas:
PolicyKit es más configurable, aunque
pkexecno hace uso de esta configurabilidad. Además,pkexecmuestre al usuario la ruta completa del programa que se iniciará, para que el usuario esté un poco más seguro de lo que sucederá. Las llamadas 'políticas' de PolicyKit se pueden usar para establecer configuraciones más avanzadas. Por ejemplo, si se debe recordar la contraseña.Algo que obtuve del
pkexecmanual:Más información sobre políticas o definiciones de acciones del
pkexecmanual:fuente
pkexecpara ejecutar aplicaciones gráficas (nunca lo había hecho ...). Su respuesta explica por qué no existe (o al menos por qué se debe especificar un entorno personalizado para hacerlo).pkexec, ¿en qué sentido pueden limitarse sus capacidades ("permisos")? Le otorgo a un programa la capacidad de hacer cualquier cosa cuando lo ejecutosudoo en unasudointerfaz ... ¿en qué sentido ejecutar un programa como rootpkexecno lo hace también?pkexecfacilita eso, opkexecsimplemente ejecuta las cosas como root con habilidades ilimitadas? Elpkexecextracto manual que incluyó en sus documentos de respuesta cómo escribir reglas para determinar quién puede ejecutar un programa como root (o como otro usuario no root), en lugar de lo que puede hacer el programa.pkexeces más configurable quesudo, y dada la discusión que hemos tenido aquí en los comentarios, ese no parece ser el caso. ¿Consideraría editar su respuesta para explicarsudola configurabilidad y compararla / contrastarlapkexeco editar su respuesta para decir que la diferencia es algo más que la configurabilidad?Con sudo puede establecer políticas por usuario y por programa sobre si desea retener o restablecer el entorno de las personas que llaman en el contexto de sudo. La política env_reset se establece de manera predeterminada.
No puede ejecutar aplicaciones gráficas a través de pkexec sin configurarlo explícitamente para hacerlo. Debido a que esto es simplemente el resultado del reinicio del entorno, esto obviamente también es cierto para sudo. Sin embargo, tenga en cuenta que ni pkexec ni sudo pueden evitar que una aplicación maliciosa se ejecute como root para recuperar toda la información necesaria de los administradores de visualización o del archivo X11-cookie de los usuarios. Esto último, tanto o similar, incluso puede ser realizado por aplicaciones no root, dependiendo de las circunstancias.
Sudo no requiere listados explícitos de usuarios. Se puede enumerar cualquier grupo de usuarios o incluso establecer un permiso para todos los usuarios en general. La directiva target_pw permite que esos usuarios se autentiquen con las credenciales del usuario en cuyo contexto desean ejecutar una aplicación, es decir, root. Aparte de eso, el programa igualmente tradicional su (su / gtksu / kdesu) puede usarse para hacer lo mismo sin una configuración especial.
sudo también permite que el usuario permanezca autenticado por un tiempo específico. La opción se denomina tiempo de espera, configurable globalmente, por usuario o por aplicación. La autenticación se puede retener por tty o globalmente por usuario.
Si bien pkexec puede no validar los ARGUMENTOS pasados a PROGRAM, sudo sí tiene esta característica. Sin embargo, admitido, puede equivocarse fácilmente con esto, y normalmente no se hace.
Puede modificar un poco cómo desea que los programas se ejecuten a través de pkexec: icono, texto para mostrar, incluso puede tener cosas de localización y todo eso. Dependiendo de las circunstancias, esto puede ser ingenioso. Sin embargo, es triste que alguien sintiera la necesidad de reinventar la rueda para esta función. Esto probablemente sería algo para poner en los contenedores gráficos gtksudo / kdesu.
Policykit es solo un marco de configuración centralizado entonces. Lamentablemente no es bonita. Los archivos XML de PK son mucho más complicados que cualquier cosa que una aplicación pueda proporcionar de forma nativa sin archivos binarios. Y nadie estaría tan loco para usar binario ... oh gconf ... no importa.
fuente
pkexecpuede ejecutar la GUI sin configurar: askubuntu.com/a/332847/89385Algunas cosas en las que
pkexeces diferentesudoy sus interfaces:pkexecsin configurarlo explícitamente para hacerlo.pkexec: icono, texto para mostrar, si recordar la contraseña o no, si permitir que se ejecute gráficamente y algo más.sudolo que debe aparecer en elsudoersarchivo como administrador .gksudobloquea el teclado, el mouse y el foco cuando solicita una contraseña,pkexecno lo hace. Sin embargo, en ambos casos, las pulsaciones de teclas son sniffable .pkexecusted trabaje en un ambiente un poco más desinfectado.Prueba por ejemplo:
fuente
rootconpkexec. ¿Es configurable, qué usuarios pueden usarpkexec(incluso si conocen la contraseña de otro usuario al que se le permite hacerlo)?sues configurable de esta manera. Cuando intento accedersua otrorootusuario comoguesten un sistema Oneiric, me dice que no tengo permiso para hacerlo. (En contraste, cuando trato de usarpkexeccomoguesten Oneiric o Precise, obtengo lo que parece un error de afirmación, que pronto puedo reportar como un error, ya que no debería obtenerlo incluso si no está permitido)sudoy sus interfaces también se pueden ajustar como se describe en el punto 2. Puede ejecutar un programa congksuogksudomostrar texto personalizado , dejar de necesitar las contraseñas de algunos usuarios editando/etc/sudoers(convisudo) y cambiar cuánto tiempo se recuerdan en el sentido de cambiar cómo a sudo le lleva mucho tiempo (aunque no estoy seguro de cómo hacer esto en Ubuntu, que está configurado de modo que las preguntas sobre sisudonecesita o no una contraseña, y cuánto tiempo hasta que la necesite de nuevo, son específicas del terminal )pkexecpuede ejecutar la GUI sin configurar: askubuntu.com/a/332847/89385