lunes, 17 de febrero de 2014

Ejecutar comandos BASH como otro usuario

para ejecutar comandos como si fueras otro usuario puedes hacerlo con el comando su que sirve para cambiarse de usuario en una sesion shell

las opciones de el comando son:

root@vuach:/home/villatux/pruebas#su --help
Modo de uso: su [opciones] [USUARIO]

Opciones:
  -c, --command ORDEN           pasa la ORDEN a la consola invocada
  -h, --help                    muestra este mensaje de ayuda y termina
  -, -l, --login                hace que la consola sea una de acceso
  -m, -p,
  --preserve-environment        no reinicia las variables de entorno, y mantiene la misma consola
  -s, --shell CONSOLA           usa CONSOLA en lugar de la predeterminada en passwd


Ahora para ejecutar el comando como otro usuario lo podemos hacer de la siguiente forma:

su -c "echo blablah > archivo1" -s /bin/bash villatux

y al mostrarel directorio vemos que los permisos y grupo son de el usuario que elegimos para ejecutar "echo":

root@vuach:/home/villatux/pruebas# ls -lah
total 12K
drwxr-xr-x  2 villatux villatux 4,0K feb 17 11:44 .
drwxr-xr-x 52 villatux villatux 4,0K feb 17 11:44 ..
-rw-rw-r--  1 villatux villatux    8 feb 17 11:44 archivo1

Ejecutando unicamente el comando "echo" sin invocar a ningun usuario : 

echo blablah > archivo2

y al listar el directorio podemos ver los permisos, propietario y grupo:

root@vuach:/home/villatux/pruebas# ls -lah
total 16K
drwxr-xr-x  2 villatux villatux 4,0K feb 17 11:44 .
drwxr-xr-x 52 villatux villatux 4,0K feb 17 11:44 ..
-rw-rw-r--  1 villatux villatux    8 feb 17 11:44 archivo1
-rw-r--r--  1 root     root        8 feb 17 11:44 archivo2

No hay comentarios: