PATH

Eloy Mier Pérez emierp en gmail.com
Dom Mar 28 00:32:52 GMT 2010


El día 28 de marzo de 2010 00:26, Pedro Herrero Garcia
<petrustris en gmail.com> escribió:
> Pues creo que el que tienes razón eres tú, Eloy.
> La cosa es, para explicarlo ya todo, que estoy haciendo un curso de
> introducción al linux, y efectivamente, parece que he entendido mal la
> pregunta. La susodicha es:
>

Hola de nuevo

> "¿Qué ficheros se deben tocar cuando se quiere cambiar el PATH por defecto
> de un usuario al entrar en el sistema? Discutid también el caso en el que se
> quiere cambiar el PATH por defecto para todos los usuarios del sistema. Dad
> la respuesta para bash, que es la shell por defecto en Linux."
>

Bien, la pregunta está muy clara a mi modo de ver....

Si echas un vistazo a la página de ayuda de bash podrás ver que hay
muchos ficheros involucrados con bash:

       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bashrc
              The systemwide per-interactive-shell startup file
       /etc/bash.bash.logout
              The systemwide login shell cleanup file, executed when a
login shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a
login shell exits
       ~/.inputrc
              Individual readline initialization file

Cuando se invoca a bash como un shell interactivo para el inicio de
una sesión (login shell), en primer lugar lee y ejecuta órdenes desde
el archivo /etc/profile, si existe. Después, busca ~/.bash_profile,
~/.bash_login, y ~/.profile, en este orden, y lee y ejecuta las
órdenes desde el primero que existe y es legible.

Cuando un shell interactivo que no es un login shell arranca, bash lee
y ejecuta órdenes desde ~/.bashrc

Tienes todo el detalle aquí :
http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files

Por lo tanto, creo que el lugar para hacer la modificación del PATH
del USUARIO seria ~/.bash_profile

Por otra parte, tenemos la segunda cuestión, que incluso podría tener
un poco de trampa, por que seguro que a algún listo se le ocurriría la
idea de hace un script para modificar todos los ~/.bash_profile de
todos los usuarios existentes en el sistema. Desde el punto de vista
funcional podría considerarse válido para los usuarios existentes,
pero que pasaría con los nuevos usuarios creados después de la
ejecución de dicho script?, pues lo que pasaria es que los antiguos
tendrían modificado el PATH y los nuevos no.

Así que visto lo visto, necesitamos de un fichero que sea ejecutado en
el loggin del usuario, pero para cualquier usuario. Creo que tanto
/etc/profile como /etc/bash.bashrc podrían ser válidos aunque creo que
seria mas "correcto" hacerlo con el segundo de ellos /etc/bash.bashrc.


> Ya había mirado la variable de entorno con el comando PATH env, y había
> visto lo que daba. Pero estaba bloqueado con lo de HOME, y no salía de
> ahí...
>
> ... y la verdad es que todavía dudo de haber entendido bien y el profesor de
> haberse expresado mal... no acabo de estar convencido.
>

Yo creo que la pregunta es clara....

>
> El 27 de marzo de 2010 23:31, Eloy Mier Pérez <emierp en gmail.com> escribió:
>>
>> El día 27 de marzo de 2010 17:59, petrus User <petrustris en gmail.com>
>> escribió:
>> > Hola, ya contesté a la pregunta sobre el shell: es bash.
>> > Muchas gracias a Eloy por contestar.
>> > Muchas gracias a Olivier: me ha ayudado lo que me has dicho:
>> >
>> > he hecho otra cosa, que creo que vale también:
>> > petrus en ubuntu:~$ cd /etc
>> > petrus en ubuntu:/etc$ ls
>> > petrus en ubuntu:/etc$ sudo gedit passwd
>> >
>> > En el archivo passwd aparece en la línea de cada usuario
>> >
>> > petrus:x:1000:1000:petrus User,,,:/home/petrus:/bin/bash
>> >
>> > y se puede editar ... :/home/petrus: ...
>> >
>> > para poner lo que quieras.
>> >
>>
>> Eso es correcto, el problema es que la pregunta estaba mal planteada.
>> Simplemente te lo digo para que amplíes conocimiento.
>>
>> Una cosa es el PATH y otra cosa es HOME de un usuario.
>>
>> Tu lo que querías cambiar no era el PATH sino el HOME.....por lo tanto
>> la edición del fichero de usuarios al que haces referencia es la única
>> opción.
>>
>> El home del usuario se establece siempre por defecto en /home/<nombre
>> de usuario> a no ser que en el comando de adduser indiques otra cosa
>> con el parámetro --home
>>
>> > Muchas gracias a todos, este foro es de gran ayuda, tanto para preguntar
>> > como para aprender leyendo a los foreros...
>> >
>> > gracias.
>> >
>> >
>> > El sáb, 27-03-2010 a las 15:49 +0100, Eloy Mier Pérez escribió:
>> >> El día 27 de marzo de 2010 14:57, Olivers De Abreu
>> >> <oliversd en gmail.com> escribió:
>> >> > 2010/3/27 Eloy Mier Pérez <emierp en gmail.com>
>> >> >>
>> >> >> El día 27 de marzo de 2010 03:46, Fidel Dominguez-Valero
>> >> >> <fdvalero en gmail.com> escribió:
>> >> >> > On 03/26/2010 10:38 PM, petrus User wrote:
>> >> >> >> Hola, quisiera saber cómo se puede cambiar el PATH por defecto de
>> >> >> >> un
>> >> >> >> usuario al entrar en el sistema.
>> >> >> >> Muchas gracias.
>> >> >> >>
>> >> >> Hola
>> >> >>
>> >> >> ¿Que shell tiene establecido por defecto el usuario en el sistema?
>> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >
>> >> > Hola para cambiar el PATH por usuario del sistema lo puedes hacer
>> >> > editando
>> >> > el archivo /home/nombre_usuario/.bashrc (si no existe lo creas) y
>> >> > agregar al
>> >> > final del archivo una línea como esta:
>> >> >
>> >> >   export PATH=$PATH:los_directorios_que_quieras_enel_path
>> >> >
>> >> > La variable $PATH es opcional si quieres incluir el PATH general del
>> >> > sistema... Luego cierras la sesión y vuelves a entrar y ya deberia
>> >> > funcionar
>> >> > colocas echo $PATH en el terminal para comprobar tu PATH
>> >> >
>> >> > Eso es todo
>> >>
>> >> Si, eso es todo en el caso de que el shell del usuario sea BASH, si no
>> >> lo es, esto que indicas no funciona.....por eso preguntaba que shell
>> >> usaba el usuario.
>> >>
>> >> >
>> >> > Saludos
>> >> > Olivers De Abreu
>> >> > www.tribulinux.com
>> >> > www.vensign.com
>> >> >
>> >> >>
>> >> >> > --
>> >> >> >
>> >> >>
>> >> >> --
>> >> >>
>> >> >> --
>> >> >
>> >> >
>> >> > --
>> >> >
>> >>
>> >> --
>> >>
>> >
>> >
>>
>>
>>
>> --
>>
>> --
>> ubuntu-es mailing list
>> ubuntu-es en lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-es
>
>
> --
> Ciencia con Conciencia
> Conciencia con Ciencia
>
> --
> ubuntu-es mailing list
> ubuntu-es en lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-es
>
-- 
http://eloy-mp.com
emierp_ en _gmail.com
skype: eloy.mier.perez
msn: emierp_ en _hotmail.com
Un saludo. Eloy Mier Pérez.



Más información sobre la lista de distribución ubuntu-es