Globedia.com

×

Error de autenticación

Ha habido un problema a la hora de conectarse a la red social. Por favor intentalo de nuevo

Si el problema persiste, nos lo puedes decir AQUÍ

×
×
Recibir alertas

¿Quieres recibir una notificación por email cada vez que Claudio Concepción Certad escriba una noticia?

Diferencia entre su y su -

01/03/2011 11:00 0 Comentarios Lectura: ( palabras)

imageCuando utilizamos una distro como Debian/Ubuntu o Fedora/CentOS por largo tiempo, usualmente tendemos a olvidarnos de su como tal dada la forma tan automática en que lo usamos. Muchos de ustedes se habrán preguntado por qué algunos usan su y otros su -. ¿Cuál es la diferencia?

Viendo las páginas man podemos encontrar que "-" o "-l" o la opción "--login" provee un entorno similar al que el usuario experimenta cuando hace un login directo.

Esto hace referencia a los login shells. Estos es el shell lanzado cuando un usuario hace login. Lo que diferencia un login shell de un shel regular, a pesar de que se ven exactamente iguales en el prompt, son los diferentes conjuntos de scripts/ficheros de configuración que son ejecutados antes de que el prompt salga en el terminal.

Tomando como ejemplo a bash, cuando ejecutamos un comando regular en bash, el fichero ejecutado es   ~/.bashrc el cual llama a /etc/bashrc. Y cuando es un login shell (bash -l), el orden de ejecución es /etc/profile, ~/.bash_profile el cual llama otros ficheros internamente.

El punto clave es que esa diferencia de configuración en estos ficheros lleva a diferentes conductas del shell. Una de las grandes diferencias lo constituye la inicialización de la variable PATH en ~/.bash_profile (default behaviour). Entonces, hasta que habras un login shell, no tendrás la variable   PATH esperada.

Ejemplo 1

[shredder12]$ supassword:

[root]# fdisk -lfdisk: command not found

[root]# echo $PATH/usr/bin/:/bin:/usr/local/bin/:

Ejemplo 2

[shredder12]$ su -password:

[root]# fdisk -l"trabaja perfectamente"

[root]# echo $PATH/usr/bin/:/usr/sbin:/bin/:sbin:/usr/local/bin:/usr/local/sbin:

Como podemos ver la variable de entorno PATH no fue configurada correctamente. los directorios */sbin no fueron incluidos en el primer ejemplo. Esto se debe a que hereda la variable PATH del usuario anterior (shredder12). Finalmente, tenemos un shell de root que no se comporta como usuario root.

Fuente: Linuxers


Sobre esta noticia

Autor:
Claudio Concepción Certad (681 noticias)
Fuente:
fraterneo.blogspot.com
Visitas:
4307
Tipo:
Reportaje
Licencia:
Creative Commons License
¿Problemas con esta noticia?
×
Denunciar esta noticia por

Denunciar

Comentarios

Aún no hay comentarios en esta noticia.