Re:globalni promenna z /etc/profile

tapik na buchtovi.cz tapik na buchtovi.cz
Středa Duben 22 17:44:02 CEST 2009


Problem je v tom, ze pouzivas sudo.
Sudo se snazi byt co nejvice paranoidni a proto se v defaultu chova tak, ze nastavuje "jenom to nejnutnejsi". viz man sudo:

"There are two distinct ways to deal with environment variables.  By default, the env_reset sudoers option is enabled.  This causes commands to be exe‐
       cuted with a minimal environment containing TERM, PATH, HOME, SHELL, LOGNAME, USER and USERNAME in addition to variables from the invoking process per‐
       mitted by the env_check and env_keep sudoers options.  There is effectively a whitelist for environment variables.

       If, however, the env_reset option is disabled in sudoers, any variables not explicitly denied by the env_check and env_delete options are inherited from
       the invoking process.  In this case, env_check and env_delete behave like a blacklist.  Since it is not possible to blacklist all potentially dangerous
       environment variables, use of the default env_reset behavior is encouraged."

Takze misto sudo si vyzkousej ssh root na localhost nebo su - a uvidis, zda ti /etc/profile.d funguje

> ------------ Původní zpráva ------------
> Od: rga <rga na centrum.cz>
> Předmět: globalni promenna z /etc/profile
> Datum: 22.4.2009 16:46:45
> ----------------------------------------
> Debian Lenny, *nix amatér, tak mě případně omluvte ;-)
> 
> Vím, že "se to prý nemá", ale:
> přidal jsem si po vzoru Red Hatu do /etc/profile
> 
> for i in /etc/profile.d/*.sh; do
>   if [ -r "$i" ]; then
>     . $i
>   fi
> done
> unset i
> 
> vytvořil /etc/profile.d/ a v něm proxy.sh
> s obsahem:
> 
> proxy="http://proxy:8080"
> 
> export proxy
> export PROXY=$proxy
> export HTTP_PROXY=$proxy
> export http_proxy=$proxy
> export HTTPS_PROXY=$proxy
> export https_proxy=$proxy
> export FTP_PROXY=$proxy
> export ftp_proxy=$proxy
> 
> Přihlásám se, spustím
> env,
> mezi proměnnými je
> HTTP_PROXY=http://proxy:8080
> $ sudo env
> a všechny exportované proměné z proxy.sh chybí.
> Proč? Rád bych chápal, i když bude existovat rozumnější místo,
> kde proměnné nastavit.
> 
> Oba uživatelé, jak výchozí, tak root mají jako shell /bin/bash.
> 
> Ze serveru nemám direct přístup do Internetu, jen přes proxy,
> potřebuji tedy mít nastavení proxy serveru dostupné
> pro jakýkoliv process/program.
> Díval jsem se i na
> /etc/environment, ale ten podporuje jen
> KEY=VALUE,
> žádné odkazování na jiné proměnné :-(
> 
> 
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux
> 
> 
> 

Oto 'tapik' Buchta, tapik na buchtovi.cz



Další informace o konferenci Linux