/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Hvor skal låse filen hen?
Fra : Morten P


Dato : 15-12-09 23:05

Jeg har skrevet et Perl script der skal skrive en PID fil til låsning.

Jeg troede den skulle i /var/run men det er bare root der kan skrive der.

Er det så /tmp?

Hvor er det "rigtige" sted?



 
 
Kent Friis (15-12-2009)
Kommentar
Fra : Kent Friis


Dato : 15-12-09 23:07

Den Tue, 15 Dec 2009 23:04:32 +0100 skrev Morten P:
> Jeg har skrevet et Perl script der skal skrive en PID fil til låsning.
>
> Jeg troede den skulle i /var/run men det er bare root der kan skrive der.
>
> Er det så /tmp?

Det er en mulighed. Jeg har fx en /tmp/.X0-lock - men hvis scriptet skal
køre under en bestemt bruger, skal det vel være en script-$LOGNAME.pid,
så man ikke spærrer for andre brugere - /tmp er jo fælles.

Mvh
Kent
--
"The Brothers are History"

Klaus Alexander Seis~ (16-12-2009)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 16-12-09 06:13

Morten P skrev:

> Jeg har skrevet et Perl script der skal skrive en PID fil
> til låsning.
>
> Jeg troede den skulle i /var/run men det er bare root der
> kan skrive der.
>
> Er det så /tmp?

En anden mulighed er /var/lock.

Mvh,

--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/

Morten P (16-12-2009)
Kommentar
Fra : Morten P


Dato : 16-12-09 07:22

> En anden mulighed er /var/lock.

Den kan dårligt blive bedre :)

Tak!



Kent Friis (16-12-2009)
Kommentar
Fra : Kent Friis


Dato : 16-12-09 07:47

Den Wed, 16 Dec 2009 05:12:34 +0000 (UTC) skrev Klaus Alexander Seistrup:
> Morten P skrev:
>
>> Jeg har skrevet et Perl script der skal skrive en PID fil
>> til låsning.
>>
>> Jeg troede den skulle i /var/run men det er bare root der
>> kan skrive der.
>>
>> Er det så /tmp?
>
> En anden mulighed er /var/lock.

Giver din distro brugere lov til at skrive i /var/lock? Min gør ikke.

Hvis det er et lokalt script betyder det selvfølgelig ikke noget, men
hvis det er noget han forventer at distribuere, er det nok noget han
bør tage højde for.

Mvh
Kent
--
"The Brothers are History"

Ukendt (16-12-2009)
Kommentar
Fra : Ukendt


Dato : 16-12-09 15:54

Morten P wrote:
> Jeg har skrevet et Perl script der skal skrive en PID fil til låsning.
>
> Jeg troede den skulle i /var/run men det er bare root der kan skrive der.
>
> Er det så /tmp?
>
> Hvor er det "rigtige" sted?
>
>
/var/tmp/

Mvh
Martin

Benny Amorsen (16-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 16-12-09 19:02

Martin Møller Skarbiniks Pedersen <traxplayer@gmail.com> writes:

> /var/tmp/

Kun hvis du er ligeglad med sikkerhed... Det er i al fald IKKE den
rigtige placering.

Lav et underkatalog til /var/run og giv passende rettigheder til at
skrive der. /var/run/mitperlscript/mitperlscript.pid


/Benny


Klaus Ellegaard (16-12-2009)
Kommentar
Fra : Klaus Ellegaard


Dato : 16-12-09 19:10

Benny Amorsen <benny+usenet@amorsen.dk> writes:

>> /var/tmp/

>Kun hvis du er ligeglad med sikkerhed... Det er i al fald IKKE den
>rigtige placering.

Hvorfor ikke? Den har endda sticky bit, og der er ingen, der kan
gø over, at man bruger netop /tmp eller /var/tmp til låsning. En
detalje der i sig selv er sikkerhedsmæssigt ret ligegyldig i langt
de fleste tilfælde.

Personligt ville jeg foretrække /tmp, fordi det ofte er mindre
sandsynligt at filer overlever dér efter en reboot - hvilket for
låsning oftest er en feature.

>Lav et underkatalog til /var/run og giv passende rettigheder til at
>skrive der. /var/run/mitperlscript/mitperlscript.pid

Det er da noget brugerfjendsk, hvis det skal distribueres. Nu vil
det pludselig kræve root-adgang at implementere et script, der
måske slet ikke er relevant for andet end den enkelte bruger?

Mvh.
   Klaus.

Kent Friis (16-12-2009)
Kommentar
Fra : Kent Friis


Dato : 16-12-09 19:11

Den Wed, 16 Dec 2009 19:01:54 +0100 skrev Benny Amorsen:
> Martin Møller Skarbiniks Pedersen <traxplayer@gmail.com> writes:
>
>> /var/tmp/
>
> Kun hvis du er ligeglad med sikkerhed... Det er i al fald IKKE den
> rigtige placering.

Hvad er problemet med sikkerhed i /var/tmp? På mit system har den
samme rettigheder som /tmp, som jeg tidligere har nævnt at bl.a.
X bruger til lignende filer.

Mvh
Kent
--
"The Brothers are History"

N/A (16-12-2009)
Kommentar
Fra : N/A


Dato : 16-12-09 19:10



N/A (17-12-2009)
Kommentar
Fra : N/A


Dato : 17-12-09 12:09



Klaus Alexander Seis~ (16-12-2009)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 16-12-09 20:46

Kent Friis skrev:

>> En anden mulighed er /var/lock.
>
> Giver din distro brugere lov til at skrive i /var/lock?

Jep:

$ ls -ld /var/lock
drwxrwxrwt 2 root root 60 2009-12-16 20:17 /var/lock
$

Det er forresten Ubuntu.

Mvh,

--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/

Kent Friis (16-12-2009)
Kommentar
Fra : Kent Friis


Dato : 16-12-09 20:59

Den Wed, 16 Dec 2009 19:46:28 +0000 (UTC) skrev Klaus Alexander Seistrup:
> Kent Friis skrev:
>
>>> En anden mulighed er /var/lock.
>>
>> Giver din distro brugere lov til at skrive i /var/lock?
>
> Jep:
>
> $ ls -ld /var/lock
> drwxrwxrwt 2 root root 60 2009-12-16 20:17 /var/lock
> $
>
> Det er forresten Ubuntu.

$ ls -ld /var/lock
drwxrwxr-x 3 root uucp 4096 Dec 16 10:23 /var/lock
$ rpm --dump -q -f /var/lock|grep "/var/lock "
/var/lock 1024 879861911 040775 root uucp 0 0 18773 X

Rettighederne er uændrede siden SuSE 7.0.

Mvh
Kent
--
"The Brothers are History"

Benny Amorsen (16-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 16-12-09 21:49

Klaus Ellegaard <klausellegaard@msn.com> writes:

> Benny Amorsen <benny+usenet@amorsen.dk> writes:
>
>>> /var/tmp/
>
>>Kun hvis du er ligeglad med sikkerhed... Det er i al fald IKKE den
>>rigtige placering.
>
> Hvorfor ikke? Den har endda sticky bit, og der er ingen, der kan
> gø over, at man bruger netop /tmp eller /var/tmp til låsning. En
> detalje der i sig selv er sikkerhedsmæssigt ret ligegyldig i langt
> de fleste tilfælde.

ln -sf /home/perlbruger/megetvigtigtdokument /var/tmp/perlscript.pid

Så skal man bare vente på at brugeren starter scriptet...


/Benny

Kent Friis (16-12-2009)
Kommentar
Fra : Kent Friis


Dato : 16-12-09 22:04

Den Wed, 16 Dec 2009 21:49:23 +0100 skrev Benny Amorsen:
> Klaus Ellegaard <klausellegaard@msn.com> writes:
>
>> Benny Amorsen <benny+usenet@amorsen.dk> writes:
>>
>>>> /var/tmp/
>>
>>>Kun hvis du er ligeglad med sikkerhed... Det er i al fald IKKE den
>>>rigtige placering.
>>
>> Hvorfor ikke? Den har endda sticky bit, og der er ingen, der kan
>> gø over, at man bruger netop /tmp eller /var/tmp til låsning. En
>> detalje der i sig selv er sikkerhedsmæssigt ret ligegyldig i langt
>> de fleste tilfælde.
>
> ln -sf /home/perlbruger/megetvigtigtdokument /var/tmp/perlscript.pid
>
> Så skal man bare vente på at brugeren starter scriptet...

Så det du siger er at O_EXCL ikke er muligt i perl?

Mvh
Kent
--
"The Brothers are History"

Klaus Ellegaard (17-12-2009)
Kommentar
Fra : Klaus Ellegaard


Dato : 17-12-09 12:09

Benny Amorsen <benny+usenet@amorsen.dk> writes:

>ln -sf /home/perlbruger/megetvigtigtdokument /var/tmp/perlscript.pid

>Så skal man bare vente på at brugeren starter scriptet...

Det gælder jo alle midlertidige filer, og reelt er det scriptets
ansvar at opføre sig ordentligt (hvis du kigger på "ordentlige"
programmer, laver de en stat() af filen først, hvilket højst gør
problemet til en race condition).

Det kommer også an på, hvordan låsen er lavet. Sædvanligvis vil man
proppe PID'en i filen. Hvis filen allerede eksisterer, vil man
læse filen, tjekke om PID'en findes, slette filen og oprette en
ny med den nye PID. Hvilket ikke vil have nogen indflydelse på
perlbruger's fil. Som i øvrigt bare kan restores fra backup, når
brugeren ellers finder ud af det.

Mvh.
   Klaus.

Benny Amorsen (16-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 16-12-09 21:54

Kent Friis <nospam@nospam.invalid> writes:

> Hvad er problemet med sikkerhed i /var/tmp? PÃ¥ mit system har den
> samme rettigheder som /tmp, som jeg tidligere har nævnt at bl.a.
> X bruger til lignende filer.

X bruger (forhåbentligt) enten underkataloger eller sikker åbning af
ikke-forudsebare filnavne.

/tmp er naturligvis ikke bedre end /var/tmp.


/Benny


Kent Friis (16-12-2009)
Kommentar
Fra : Kent Friis


Dato : 16-12-09 22:06

Den Wed, 16 Dec 2009 21:54:28 +0100 skrev Benny Amorsen:
> Kent Friis <nospam@nospam.invalid> writes:
>
>> Hvad er problemet med sikkerhed i /var/tmp? På mit system har den
>> samme rettigheder som /tmp, som jeg tidligere har nævnt at bl.a.
>> X bruger til lignende filer.
>
> X bruger (forhåbentligt) enten underkataloger eller sikker åbning af
> ikke-forudsebare filnavne.
>
> /tmp er naturligvis ikke bedre end /var/tmp.

$ ls -l /tmp/.X0-lock
-r--r--r-- 1 root root 11 Dec 16 20:24 /tmp/.X0-lock

Ingen underkataloger, og et filnavn der er meget nemt at forudse.

Mvh
Kent
--
"The Brothers are History"

Benny Amorsen (17-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 17-12-09 11:46

Kent Friis <nospam@nospam.invalid> writes:

> SÃ¥ det du siger er at O_EXCL ikke er muligt i perl?

Kun med sysopen, ikke med open.

O_EXCL laver det bare om til et denial-of-service, hvilket selvfølgelig
kan være ok.


/Benny


Benny Amorsen (17-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 17-12-09 12:12

Kent Friis <nospam@nospam.invalid> writes:

> Ingen underkataloger, og et filnavn der er meget nemt at forudse.

Det må man sige. De må jo acceptere potentialet for DOS. X har den
fordel at den typisk kører med root-rettigheder, så den kan bare checke
at root ikke ejer filen, slette filen og prøve igen. På et eller andet
tidspunkt går det godt.

X er ikke kendt for sikkerhed, selvom der er blevet lappet meget på det
de sidste 20 år...


/Benny


Benny Amorsen (17-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 17-12-09 22:53

Klaus Ellegaard <klausellegaard@msn.com> writes:

> (hvis du kigger på "ordentlige" programmer, laver de en stat() af
> filen først, hvilket højst gør problemet til en race condition).

Race conditions er lige så alvorlige som alle mulige andre
sikkerhedshuller.

> Det kommer også an på, hvordan låsen er lavet. Sædvanligvis vil man
> proppe PID'en i filen. Hvis filen allerede eksisterer, vil man
> læse filen, tjekke om PID'en findes, slette filen og oprette en
> ny med den nye PID.

Hvis scriptet ikke kører som rod-bruger, så kan filen ikke slettes.

> Hvilket ikke vil have nogen indflydelse på perlbruger's fil.

Hvis scriptet husker at bruge sysopen med O_EXCL. Ellers skal man bare
lægge symlinket ind lige efter at scriptet slettede det gamle.

> Som i øvrigt bare kan restores fra backup, når brugeren ellers finder
> ud af det.

Ja, det kan den da. Men de fleste brugere foretrækker at beholde deres
filer.

I stedet for alle argumenterne for at det ikke er så slemt at gøre det
forkert, hvorfor så ikke bare gøre det rigtige: Lave et katalog i
/var/run/scriptnavn, forære det til den rigtige bruger, og lægge
lockfilen dér. Det tager ikke mange minutter at gøre det rigtigt.


/Benny

(Som i øvrigt glæder sig til at per-bruger /tmp og /var/tmp bliver
almindeligt)

Kent Friis (18-12-2009)
Kommentar
Fra : Kent Friis


Dato : 18-12-09 00:21

Den Thu, 17 Dec 2009 22:52:54 +0100 skrev Benny Amorsen:
> Klaus Ellegaard <klausellegaard@msn.com> writes:
>
> I stedet for alle argumenterne for at det ikke er så slemt at gøre det
> forkert, hvorfor så ikke bare gøre det rigtige: Lave et katalog i
> /var/run/scriptnavn, forære det til den rigtige bruger, og lægge
> lockfilen dér. Det tager ikke mange minutter at gøre det rigtigt.

"Forære det til den rigtige bruger"? Hvordan har du tænkt dig at
det installations-script skal se ud, som brugeren kan bruge til at
få det gjort?

Eller vil du over i windows-verdenen, hvor alle kører som administrator?

>
> /Benny
>
> (Som i øvrigt glæder sig til at per-bruger /tmp og /var/tmp bliver
> almindeligt)

Det vil blive et helvede at rydde op i.

Mvh
Kent
--
"The Brothers are History"

Benny Amorsen (18-12-2009)
Kommentar
Fra : Benny Amorsen


Dato : 18-12-09 10:47

Kent Friis <nospam@nospam.invalid> writes:

> "Forære det til den rigtige bruger"? Hvordan har du tænkt dig at
> det installations-script skal se ud, som brugeren kan bruge til at
> få det gjort?

rpm -i whatever...

> Eller vil du over i windows-verdenen, hvor alle kører som administrator?

Hvis det alligevel bare er noget som ikke er systemrelateret, så er det
nemmeste at holde sig til sit hjemmekatalog. Der er ingen grund til at
blande resten af systemet ind i det overhovedet.


/Benny


Kent Friis (18-12-2009)
Kommentar
Fra : Kent Friis


Dato : 18-12-09 11:34

Den Fri, 18 Dec 2009 10:46:55 +0100 skrev Benny Amorsen:
> Kent Friis <nospam@nospam.invalid> writes:
>
>> "Forære det til den rigtige bruger"? Hvordan har du tænkt dig at
>> det installations-script skal se ud, som brugeren kan bruge til at
>> få det gjort?
>
> rpm -i whatever...
>
>> Eller vil du over i windows-verdenen, hvor alle kører som administrator?
>
> Hvis det alligevel bare er noget som ikke er systemrelateret, så er det
> nemmeste at holde sig til sit hjemmekatalog. Der er ingen grund til at
> blande resten af systemet ind i det overhovedet.

Endnu en dot-fil? Som i forvejen er en kæmpe stor rodebunke...

Mvh
Kent
--
"The Brothers are History"

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste