ejecutar desde acceso directo < Red Hat 9 >

Alvaro Herrera alvherre en dcc.uchile.cl
Lun Oct 18 17:26:28 CLST 2004


On Mon, Oct 18, 2004 at 04:53:39PM -0300, "Juan Carlos Muñoz" wrote:

> Si no me equivoco, dentro de las propiedades de fork (2) esta la de 
> heredar las variables de ambiente, asi que si al ejecutar tu aplicacion 
> $HOME no es el correcto es porque el que lo ejecuto (en este caso el 
> manejador de ventanas) tuvo que cambiar los datos, cosa que me causas 
> ciertas dudas ya que sino tendrias problemas con varios (sino todos) los 
> programas,

Ojo que un usuario malicioso puede aprovechar que la aplicacion confia
en que las variables de ambiente tengan valores razonables.  Es un hoyo
de seguridad que creo que antes era comun.  (De hecho por ej. Perl en
"taint mode" se niega a ejecutar el script si usa variables de ambiente
de modo directo).

Asi que si quieres confiar en $HOME, mejor pon atencion en tu programa
antes de hacerlo para que un cracker no se ria de ti.

> Esto es lo tipico que hacen los compresores/descompresores, dependiendo 
> de como los llames es como operan (bzip2/bunzip2; gzip/gunzip),

Ojo ejemplo de uso de argv[0] son los shells, como bash, el cual al ser
llamado como "-bash" en lugar de "bash" se inician como "login shell":

INVOCATION
       A  login shell is one whose first character of argument zero is a
       -, or one started with the --login option.

La diferencia entre un "login shell" y un "shell not a login shell" es
en los scripts que se ejecutan al iniciarse.  Asi que si uno espera
tener ciertas variables definidas porque las puso en ~/.profile y "a
veces no funciona", aqui hay que investigar.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La persona que no quería pecar / estaba obligada a sentarse
en duras y empinadas sillas    / desprovistas, por cierto
de blandos atenuantes"                          (Patricio Vogel)



Más información sobre la lista de distribución Linux