Introducción

Linux es el sistema operativo de código abierto más utilizado. Los usuarios de Linux tienen una gran cantidad de opciones para elegir qué sistema operativo usar. Tiene varias opciones para elegir el escritorio para sus sistemas Linux. Los profesionales de Linux todavía aman la operación de línea de comandos. La mayoría de las ediciones de servidor Linux solo vienen con la opción de línea de comandos, lo que las hace más ligeras y rápidas.

Los usuarios de Linux utilizan el shell para interactuar con los sistemas operativos. Donde Bash (Born Shell) es el shell más utilizado y está disponible de forma predeterminada en la mayoría de los sistemas. Ahora Zsh (Z Shell) también se está volviendo popular entre los usuarios debido a sus características.

En este tutorial, aprenderá a ejecutar el comando como otro usuario en sistemas Linux / Unix.

Ejecute comandos como otro usuario con Up

El comando su (Cambiar de usuario) se utiliza para ejecutar el shell como otro usuario. Este comando cambia al nuevo usuario y carga su entorno.

El comando básico su se ve a continuación:

su - username 

El comando anterior le permite cambiar a otro usuario, donde puede ejecutar comandos con ese usuario. Pero nuestro objetivo es ejecutar el comando de Linux como otro usuario sin cambiar de usuario. Para hacer esto, consulte el siguiente ejemplo.

Actualmente estoy conectado como root. Puede pasar su comando con el parámetro -c . Ahora, el siguiente ejemplo ejecutará el comando lscomo usuario alicesin cambiar de usuario:

su - alice -c "pwd" 
/home/alice

También puede ejecutar varios comandos como otro usuario en Linux, como:

su - alice -c "pwd; mkdir hello && cd hello; pwd" 
/home/alice
/home/alice/hello

En el comando anterior, primero imprime el directorio de trabajo actual con pwd , luego crea y cambia el nuevo directorio nombrado hello. Imprima el directorio de trabajo existente nuevamente. Todos los comandos están separados por punto ;y coma como hacemos en general.

Ejecute el comando como otro usuario con Sudo

Este método se usa generalmente para ejecutar el comando como usuario root, pero también puede usarlo con otros usuarios. No es necesario utilizar ninguna opción de línea de comando aquí. Ingrese el nombre del usuario con el que desea ejecutar el comando.

Sintaxis:

sudo -u username [commands...]

Por ejemplo, está escribiendo un script de shell, que debe ejecutarse como usuario no root. Pero necesitas reiniciar el servicio apache2. En ese caso, puede usar sudo para ejecutar el comando como root:

sudo -u root 'systemctl restart apache2' 

Ejecute el comando como otro usuario con Runuser

También puede usarlo runuserpara ejecutar comandos como otro usuario en sistemas Linux. Estos son comandos menos conocidos por los usuarios de Linux. Utilice el comando runuser para ejecutar comandos con el ID de usuario real y el ID de grupo del usuario definido.

Sintaxis :

runuser - username -c [commands...]

Por ejemplo, ejecute un comando como usuario alicey cree un directorio en su directorio de inicio:

runuser - alice -c 'mkdir -p ~/hello' 

Luego, enumere los archivos en el directorio de inicio del usuario alice:

runuser - alice -c 'ls -l' 
total 16
-rw-r--r-- 1 alice alice 8980 Feb 16  2020 examples.desktop
drwxr-xr-x 2 alice alice 4096 Dec 22 14:55 hello

También puede ejecutar ambos comandos en un solo comando. Simplemente agregue varios comandos separados por un punto y coma:

runuser - alice -c 'mkdir -p ~/hello; ls -l' 

Conclusión

En este tutorial, aprendió a ejecutar comandos como otro usuario en el sistema Linux. Ha aprendido a ejecutar comandos como otro usuario con la ayuda de los comandos su, sudo y runuser de Linux.