GNU/Linux >> Tutoriales Linux >  >> Linux

Comando runuser de Linux - Ejecutar Shell con ID de usuario/grupo especificado

El comando runuser se usa para ejecutar un shell con un usuario e ID de grupo especificados. Este comando cambia las identificaciones de usuario y grupo. Cuando desee ejecutar algunos comandos como otro usuario, este comando se puede usar para cambiar el usuario. Este comando es como el comando su, pero no solicita la contraseña. Por lo tanto, solo el usuario privilegiado, es decir, el usuario raíz, 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 un error (para usuarios sin privilegios). Como el comando runuser no ejecuta ganchos PAM ni módulos de autenticación, tiene menos gastos generales que su.

comando ejecutar usuario

Aquí hay un ejemplo de un usuario root ejecutando 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

Linux
  1. Agregar usuario a grupo en Linux, cómo hacerlo (con ejemplos)

  2. Linux su comando

  3. ¿Ejecutar el comando de shell en jenkins como usuario root?

  4. ¿Por qué ejecutar un comando de shell de Linux con '&'?

  5. Ejecute el comando como usuario del sistema Linux (shell =/bin/false)

Listado de usuarios en Linux explicado con ejemplos

Eliminar usuarios en Linux con el comando Userdel

Agregar nuevos usuarios en Linux con el comando Useradd

Modificar grupos en Linux con el comando groupmod

Eliminar grupos en Linux con el comando groupdel

Crear nuevos grupos en Linux con el comando Groupadd