Re: Environment variabler

From: Henrik Kramshoej (none@hlk--kramse.dk.lh.bsd-dk.dk)
Date: Tue 18 Apr 2006 - 09:52:38 CEST


Date: Tue, 18 Apr 2006 09:52:38 +0200
From: Henrik Kramshoej <none@hlk--kramse.dk.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: Environment variabler

On Mon, Apr 17, 2006 at 12:41:02PM +0200, Jette wrote:
> Peter I. Hansen wrote:
>
> >On Mon, 17 Apr 2006 12:20:11 +0200
> >Jette <none@bsd-dk--nerdgirl.dk.lh.bsd-dk.dk> wrote:
> >
> >
> >
> >>Hej og god påske :-)
> >>
I lige måde

*snip*snip*
> >>
> >>Findes der en global config fil hvor man kan initiere
> >>environment variabler, således at de bliver sat ved opstart?
> >>
...
> >
> >Kan du ikke sætte din variabel i et wrapperscript omkring hvad
> >det nu er din bruger skal køre via cron?
> >
> Jo, det kan jeg godt... jeg troede bare der var en metode til at sætte
> en variabel så den altid er tilgængelig i systemet....
hmmm, tilgængelig i systemet ...

Gå tilbage til Adam og Eva - i vores tilfælde init

init køres som den første process med process id 1
- alt starter herfra og alle programmer har hvert sit:
processid, ejer, gruppe (evt. effektive UID/GID alt efter om det
er SUID/SGID programmer), stak og andre memoryområder

I disse dele finder vi "environment" de variable som er sat
eller indlæst gennem eksempelvis login processen.

sådan lidt løst foregår et login ved at der startes en
process og der sættes nogle faste ting som HOME og ejer
- dette gøres så vidt jeg ved at login programmet
dernæst læses nogle systemfiler fra /etc, eksempelvis
/etc/environment, /etc/profile i en nærmere bestemt rækkefølge

Til slut læses brugerens egne opstartsfiler, hvoraf nogle
kun læses ved login/login shells (der har bindestreg i navnet -sh)
mens andre læses/udføres hver gang en shell starter.

Når du så kører crontab køres der IKKE en login og derfor
er ovenstående helt udenfor det miljø der afvikles
- og løsningen er som angivet at tilføje i crontab filen
eller i det script der starter programmerne.

Jeg har set mange eksempler på scripts som folk har lavet
og testet fra deres normale konto, hvorefter det ikke
virker når det udføres fra cron - fordi eksempelvis
PATH ikke indeholder de rigtige programmer

Håber det hjælper :-)

Mvh

Henrik

-- 
Henrik Lund Kramshøj, cand.scient, CISSP
e-mail: hlk@security6.net, tlf: 2026 6000
www.security6.net - IPv6, sikkerhed, netværk
Follower of the Great Way of Unix



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:58 CET