GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo configurar Pkexec para que no solicite la contraseña?

Tengo una aplicación GUI que necesita llamar a un demonio (escrito en Python) con privilegios de superusuario. Me gustaría hacer esto sin pedirle al usuario una contraseña.

Dado que el daemon es un script, no puedo configurar el bit SUID directamente. Podría escribir un envoltorio C para esto, pero prefiero no reinventar la rueda, especialmente cuando un error de mi parte podría hacer que la seguridad del sistema se viera gravemente comprometida.

Lo que normalmente haría en esta situación es agregar una línea en /etc/sudoers que permite a los usuarios ejecutar el daemon como root sin contraseña, utilizando la directiva NOPASSWD. Esto funciona bien desde la línea de comandos. Sin embargo, cuando hago esto desde la GUI, un pkexec Aparece un cuadro de diálogo que solicita la contraseña del usuario. Parece que en Ubuntu, las llamadas a sudo de la GUI de alguna manera están siendo interceptados por pkexec .

¿Hay una forma limpia de evitar esto? Realmente preferiría no tener que lidiar con las molestias de un script setuid.

Mejor respuesta

Es incorrecto decir que:“Parece que en Ubuntu, las llamadas a sudo de la GUI de alguna manera están siendo interceptados por pkexec . pkexec no tiene mucho en común con sudo . En contraste con sudo , pkexec no otorga permiso de root a un proceso completo, sino que permite un nivel más fino de control de la política del sistema centralizado.

Ahora, si desea ejecutar una aplicación GUI sin que pkexec le solicite una contraseña , esto no es difícil de hacer. Tomemos por ejemplo GParted . Cuando lo abra, verá la siguiente ventana de diálogo que le pedirá una contraseña:

Haga clic en Detalles y la ventana de diálogo se verá ahora como:

Desde aquí todo lo que tienes que hacer es abrir /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy archivo usando por ejemplo el siguiente comando:

gksu gedit /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy

y cambie las siguientes líneas:

      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>

con lo siguiente:

      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>

Guarde el archivo y ciérrelo. A continuación, cuando abras GParted ya no se le pedirá una contraseña.

Relacionado:¿Es posible con Gedit o la línea de comando modificar cada cuarta línea de un archivo de texto?
Ubuntu
  1. Cómo configurar la privacidad del directorio en cPanel

  2. ¿Cómo escribir la contraseña para varias ventanas?

  3. Ubuntu:¿cómo configurar direcciones IP externas para invitados Lxc?

  4. ¿Sudo ya no pide contraseña?

  5. ¿Cómo evitar la solicitud de contraseña para Sudo para secuencias de comandos crontab?

Cómo configurar Openbox para tu escritorio Linux

Cómo configurar el proxy inverso de Nginx para Kibana

Cómo configurar Kubernetes para la actualización continua

Cómo configurar redes puenteadas para KVM en Ubuntu 16.04/14.04/Debian 9

¿Cómo configurar el período de inactividad para la pantalla de bloqueo automático?

¿Cómo configurar las "teclas de ratón"?