LINUX

Comando runuser de Linux: ejecutar Shell con el ID de usuario / grupo especificado

Comando de ejecución de Linux

El comando runuser se usa para ejecutar un shell con un usuario y un ID de grupo especificados. Este comando cambia las identificaciones de usuario y grupo. Cuando desee ejecutar algunos comandos como algún otro usuario, este comando se puede utilizar para cambiar el usuario. Este comando es como el comando su, pero no solicita la contraseña. Por lo tanto, solo el usuario con privilegios, es decir, el usuario root, puede ejecutar este comando con éxito y puede cambiar a cualquier usuario sin necesidad de contraseña.

Este comando es bastante útil cuando se usa en scripts de shell. Esto se debe a que es un comando no interactivo. El comando Su no se puede usar para scripts de shell, ya que solicita una contraseña cuando se ejecuta como cualquier otro usuario que no sea root. Pero en el caso del comando runuser, simplemente falla y sale con error (para usuarios sin privilegios). Como el comando runuser no ejecuta enlaces PAM y módulos de autenticación, tiene menos gastos generales que su.

comando runuser

Aquí hay un ejemplo de usuario root que ejecuta el comando runuser:

[root@redhat-server /]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@redhat-server /]# runuser jack
[jack@redhat-server /]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Puede verificar el usuario actual con el comando id. Ahora, cuando un usuario sin privilegios intenta ejecutar este comando:

[jack@redhat-server /]$ runuser jones
runuser: cannot set groups: Operation not permitted

Con la opción -l o –login, el nuevo shell puede convertirse en un shell de inicio de sesión como en el caso del comando su. runuser: el comando tiene el mismo efecto. También cambia las variables de entorno. Variables como PWD y PATH cambian sus valores con esta opción.

[root@redhat-server ~]# runuser - jones
[jones@redhat-server ~]$ id
uid=502(jones) gid=502(jones) groups=502(jones),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[jones@redhat-server ~]$ pwd
/home/jones

Puede proporcionar su shell personalizado si no desea un shell predeterminado con la opción -s:

[root@redhat-server ~]# echo $SHELL
/bin/bash
[root@redhat-server ~]# runuser -s /bin/sh jones
sh-3.2$ echo $SHELL
/bin/sh
sh-3.2$ id
uid=502(jones) gid=502(jones) groups=502(jones),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar