55 votos

permitir sudo a otro usuario sin contraseña

Quiero ser capaz de 'su' a un usuario específico, lo que me permite ejecutar cualquier comando sin una contraseña que se introduce.

Por ejemplo:

Si mi login fuera user1 y el usuario al que quiero 'su' es user2:

Yo usaría el comando:

su - user2

pero luego me pide

Password:

0 votos

Pide la contraseña al otro usuario. Al menos el otro usuario sabe lo que se ha hecho con su id.

1 votos

Esto no tiene nada que ver con otro usuario físico. Ambas identificaciones son mías. Conozco la contraseña ya que yo creé la cuenta. Simplemente no quiero tener que escribir la contraseña cada vez.

0 votos

¿Estaría bien hacer ssh a un usuario o necesita heredar un shell en particular y necesita su para funcionar?

77voto

Huygens Puntos 906

sudo puede hacer eso por ti :)

Sin embargo, necesita un poco de configuración, pero una vez hecho sólo se haría esto:

sudo -u user2 -s

Y se conectaría como usuario2 sin introducir la contraseña.

Configuración

Para configurar sudo, debe editar su archivo de configuración a través de: visudo . Nota: este comando abrirá la configuración utilizando el vi editor de texto, si no te sientes cómodo con eso, tienes que poner otro editor (usando export EDITOR=<command> ) antes de ejecutar la siguiente línea. Otro editor de línea de comandos que a veces se considera más fácil es nano , por lo que harías export EDITOR=/usr/bin/nano . Normalmente se necesita el privilegio de superusuario para visudo :

sudo visudo

Este archivo está estructurado en diferentes secciones, los alias, luego los valores por defecto y finalmente al final tienes las reglas. Aquí es donde tienes que añadir la nueva línea. Así que navega al final del archivo y añade esto:

user1    ALL=(user2) NOPASSWD: /bin/bash

También puede sustituir /bin/bash por ALL y entonces podrías lanzar cualquier comando como usuario2 sin contraseña: sudo -u user2 <command> .

Si quieres poder cambiar a cualquier usuario sólo tienes que utilizar

user1    ALL=(ALL) NOPASSWD: /bin/bash

Actualización

Acabo de ver tu comentario sobre Skype. Podrías considerar añadir Skype directamente al archivo de configuración de sudo. Supongo que tienes Skype instalado en tu Aplicaciones carpeta:

user1    ALL=(user2) NOPASSWD: /Applications/Skype.app/Contents/MacOS/Skype

Entonces llamarías desde la terminal:

sudo -u user2 /Applications/Skype.app/Contents/MacOS/Skype

0 votos

Esto es mucho menos complicado que la idea de las claves ssh, así que use esto a menos que necesite las claves ssh para el acceso remoto también.

2 votos

Una cosa a tener en cuenta desde el punto de vista de la seguridad es que especificar un comando específico implica que debe ser un comando de sólo lectura para el usuario1; de lo contrario, pueden sobrescribir el comando con algo más y ejecutarlo como usuario2. Y si no te importa eso, entonces también podrías especificar que el usuario1 puede ejecutar cualquier como usuario2 y por lo tanto tener una configuración sudo más simple.

0 votos

@StanKurdziel ¡buen punto! Aunque es algo a tener en cuenta, realmente es raro que los ejecutables del sistema sean escribibles por los usuarios a no ser que seas Root pero en este caso no necesitas sudo ;-) Pero haces bien en añadir este comentario porque es tan poco frecuente que probablemente se me haya pasado por alto más de una vez.

4voto

Oskar Puntos 1242

Yo configuraría claves ssh públicas/privadas para la segunda cuenta y almacenaría la clave en la primera.

Entonces podrías ejecutar un comando como:

 ssh user@localhost -n /Applications/Skype.app/Contents/MacOS/Skype &

Seguirías teniendo los problemas de confusión de Skype, ya que dos instancias se ejecutan en una cuenta de usuario y los archivos leídos/escritos por ese programa podrían entrar en conflicto. También podría funcionar lo suficientemente bien para tus necesidades y no necesitarías un iPod touch para ejecutar tu segunda instancia de Skype.

1 votos

Esta es una buena solución segura para el caso general de inicio de sesión sin contraseña para cualquier cuenta en cualquier host, pero yo diría que es probablemente exagerado cuando ambas cuentas están en el mismo host y pertenecen al mismo usuario.

0 votos

@scottishwildcat Es mucho más seguro que la alternativa de scriptear la contraseña y alimentarla en texto claro o usar una variable y almacenar la contraseña en el llavero y usar una herramienta como expect para scribir la interacción. Yo sólo uso sudo su - blah y escribir mi contraseña. Creo que la otra respuesta cubre sudo lo suficientemente bien como para mantener esto como un comentario.

0 votos

Oh, ciertamente no estaba sugiriendo que su respuesta debería ser eliminada Ni siquiera he votado en contra, es una respuesta perfectamente buena.

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