Hay dos formas generales de ejecutar aplicaciones gráficamente como root (o, más generalmente, como otro usuario). Programas como gksu
, gksudo
y kdesudo
son interfaces gráficas para sudo
. Por el contrario, pkexec
es 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 sudo
interfaz de usuario ?
Respuestas:
PolicyKit es más configurable, aunque
pkexec
no hace uso de esta configurabilidad. Además,pkexec
muestre 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
pkexec
manual:Más información sobre políticas o definiciones de acciones del
pkexec
manual:fuente
pkexec
para 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 ejecutosudo
o en unasudo
interfaz ... ¿en qué sentido ejecutar un programa como rootpkexec
no lo hace también?pkexec
facilita eso, opkexec
simplemente ejecuta las cosas como root con habilidades ilimitadas? Elpkexec
extracto 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.pkexec
es 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 explicarsudo
la configurabilidad y compararla / contrastarlapkexec
o 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
pkexec
puede ejecutar la GUI sin configurar: askubuntu.com/a/332847/89385Algunas cosas en las que
pkexec
es diferentesudo
y sus interfaces:pkexec
sin 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.sudo
lo que debe aparecer en elsudoers
archivo como administrador .gksudo
bloquea el teclado, el mouse y el foco cuando solicita una contraseña,pkexec
no lo hace. Sin embargo, en ambos casos, las pulsaciones de teclas son sniffable .pkexec
usted trabaje en un ambiente un poco más desinfectado.Prueba por ejemplo:
fuente
root
conpkexec
. ¿Es configurable, qué usuarios pueden usarpkexec
(incluso si conocen la contraseña de otro usuario al que se le permite hacerlo)?su
es configurable de esta manera. Cuando intento accedersu
a otroroot
usuario comoguest
en un sistema Oneiric, me dice que no tengo permiso para hacerlo. (En contraste, cuando trato de usarpkexec
comoguest
en 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)sudo
y sus interfaces también se pueden ajustar como se describe en el punto 2. Puede ejecutar un programa congksu
ogksudo
mostrar 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 sisudo
necesita o no una contraseña, y cuánto tiempo hasta que la necesite de nuevo, son específicas del terminal )pkexec
puede ejecutar la GUI sin configurar: askubuntu.com/a/332847/89385