LINUX

Comando de Linux runuser: ejecuta el shell con el ID de usuario/grupo especificado

Comando de ejecución de Linux

El comando runuser se utiliza para ejecutar un shell con el usuario y el ID de grupo especificados. Este comando cambia el ID de usuario y grupo. Cuando desee ejecutar algunos comandos como un usuario diferente, este comando se puede usar para cambiar de usuario. Este comando es como el comando su, pero no solicita la contraseña. Entonces, solo el usuario privilegiado, es decir, el usuario raíz, puede ejecutar este comando con éxito y 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 porque requiere una contraseña cuando se ejecuta como cualquier usuario que no sea root. Pero en el caso del comando runuser, simplemente falla con un error (para usuarios sin privilegios). Debido a que el comando runuser no ejecuta enlaces PAM ni módulos de autenticación, tiene una sobrecarga menor que su.

el comando ejecutar usuario

Aquí hay un ejemplo del usuario raíz 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 se puede convertir en un shell de inicio de sesión al igual que con el 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 un 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