105 votos

ejecutar la secuencia de comandos como usuario que ha nologin

Todo lo que necesitas hacer es ejecutar un script específico como un particual usuario que tiene el nologin/falso shell indicados en /etc/passwd.

Me gustaría ejecutar el script como root y esta se debe ejecutar como otro usuario. Ejecución :~# su-c "/bin/touch /tmp/test" testuser que trabajar, pero necesito una shell válida para el usuario de prueba. Sé que puedo desactivar la contraseña con passwd-d de usuario de prueba y salir de la shell /bin/bash esta manera se fijan un poco, pero necesito tener nologin/falso shell.

Básicamente lo que necesito es lo crontab hace cuando iniciamos los trabajos a ejecutarse como un usuario en particular, sin importar que este tiene nologin/falso shell.

p.s he encontrado este hilo de Ejecutar un comando como un nologin usuario pero no tengo idea de cómo "concatenar" el comando su-s /bin/sh $usuario a la secuencia de comandos que necesita para ejecutar

Gracias

142voto

katit Puntos 130

Usted puede utilizar el modificador-s de la ub para ejecutar un determinado shell

su -s /bin/bash -c '/path/to/your/script' testuser

15voto

Handyman5 Puntos 3517

Usted puede hacer esto con sudo -u si lo tienes instalado:

# whoami
root
# sudo -u apache whoami
apache
# getent passwd apache
apache:x:48:48:Apache:/var/www:/sbin/nologin

7voto

adaptr Puntos 14002

Al proporcionar la secuencia de comandos como argumento para ejecutar /bin/sh:

su -s "/bin/sh /your/script/location" username

2voto

Tommaso Puntos 111

acabo de darme cuenta :

su-s "/bin/bash-c "/bin/touch /tmp/testuser" testuser

tal vez hay una mejor manera ?!

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: