lunes, 21 de septiembre de 2015

su – Ejecutar un Shell con Ids sustitutos de usuarios y grupos

El comando su se usa para arrancar un shell como otro usuario. La sintaxis del comando es así:

su [-[l]] [user]

Si se incluye la opción “-l”, la sesión shell resultante es un shell de login para el usuario especificado. Esto significa que el entorno del usuario se carga y el directorio de trabajo se cambia al directorio home del usuario. Esto es lo que queremos normalmente. Si no especificamos el usuario, se asume el superusuario. Fíjate que (extrañamente) la opción "-l" puede ser abreviada como “-”, que es como se usa más a menudo. Para iniciar una shell para el superusuario, haríamos esto:

[me@linuxbox ~]$ su -
Password:
[root@linuxbox ~]#

Después de introducir el comando, nos pide la contraseña del superusuario. Si la introducimos correctamente, un nuevo prompt de shell aparece indicando que esta nueva shell tiene privilegios de superusuario (“#” en lugar de “$”) y el directorio de trabajo actual es ahora el directorio home del superusuario (normalmente /root.). Una vez que estamos en el nuevo shell, podemos ejecutar comandos como superusuario. Cuando terminemos, escribimos “exit” para volver al shell previo:

[root@linuxbox ~]# exit
[me@linuxbox ~]$

También es posible ejecutar un único comando en lugar de comenzar un nuevo comando interactivo usando su de la siguiente forma:

su -c 'comando'

Usando esta forma, un única línea de comandos es pasada al nuevo shell para su ejecución. Es importante incluir el comando entre comillas simples, ya que no queremos que se realice una expansión en nuestro shell, sino en el nuevo shell:

[me@linuxbox ~]$ su -c 'ls -l /root/*'
Password:
-rw------- 1 root root 754 2007-08-11 03:19 /root/anaconda-ks.cfg

/root/Mail:
total 0
[me@linuxbox ~]$

No hay comentarios:

Publicar un comentario