¿Busca una mejor solución para ejecutar un único comando sudo cuando utiliza una cuenta de usuario normal?

¿Busca una mejor solución para ejecutar un único comando sudo cuando utiliza una cuenta de usuario normal?

He iniciado sesión con una cuenta de usuario normal que no es miembro de los grupos.sudoyadministración. Cuando ejecuto el siguiente comando de ejemplo...

su -c 'sudo some_command_that_needs_sudo' sudo-user

..es necesario ingresar la contraseñados veces. La primera vez que inicia sesión comousuario-sudoy la segunda vez porque solicitamos privilegios de root usandosudo.

¿Sabes cómo evitar ingresar la contraseña por segunda vez?

Por favor ten en cuenta..

  • ..no quiero cambiar ningún privilegio de usuario
  • ..quiero ingresar la contraseña solo una vez
  • ..buscando un comando simple y único

Respuesta1

Tu configuración es un poco anormal. Normalmente agregaría su nombre de usuario a sudoers y limitaría las aplicaciones que se pueden ejecutar de esta manera si es necesario. Sin conocer más detalles, no veo ningún beneficio en introducir una tercera cuenta. Simplemente introduce más dirección indirecta, que es lo que estás encontrando ahora.

La primera contraseña que ingresa es para convertirse en el usuario sudo. No puedes evitar esto: estás cambiando de usuario. Aquí hay algunas soluciones locas que te vienen a la mente y que no deberías usar.

  • Podrías establecer una contraseña vacía para que el usuario pueda iniciar sesión más fácilmente, pero eso sería unalocoriesgo de seguridad. No hagas esto.
  • Puede automatizar el inicio de sesión con expectuna contraseña codificada. Esto no es más seguro que la sugerencia anterior. No hagas esto.
  • Podrías usar ssh. Crearía una clave ssh como sudo-user, la copiaría en el directorio .ssh de su usuario, le otorgaría permiso para su usuario, la agregaría a .ssh/authorized_keys del sudouser y luego usaría: ssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>. Puede que funcione, pero es una locura.

La segunda contraseña se puede eliminar fácilmente editando el archivo sudoers visudoy configurando el sudouser como NOPASSWD. Esta es una operación más común. Incluso puede limitar los comandos que no requieren una contraseña, lo que obviamente se recomienda si sólo desea ejecutar algunos comandos de esta manera. Sin embargo, tenga en cuenta que, a menos que se trate muy en serio a este usuario de sudo, tener una política NOPASSWD no es una buena idea. En términos generales, no es una buena idea.

Una configuración que puede ejecutar todos los comandos sin solicitar una contraseña se vería así:

sudouser ALL= NOPASSWD: ALL

En pocas palabras: no veo por qué estás utilizando esta configuración de tres cuentas. Dejando eso a un lado, en términos de brindarle lo que solicitó, permitir que el usuario sudo ejecute ciertos comandos sin que se le solicite una contraseña es la ruta más sensata.

Sin embargo, debes tener cuidado: eso crea una configuración menos segura.

Además, es técnicamente posible lograr una solución de autenticación cero dentro de sus pautas, utilizando tanto la autenticación basada en claves ssh como NOPASSWD para el usuario sudo, por lo que sus comandos se verían así:

ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like

Obviamente, eso es mucho más que inseguro: es simplemente abierto. No debería necesitar decirlo, pero no hagas eso.

información relacionada