/ 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
Ændre filrettigheder automatisk / on
Fra : Morten Christensen


Dato : 14-09-09 21:06

Jeg skal pille vedhæftede pdf-filer af e-mails og stille dem til
rådighed for windows-brugere under samba.

Den vedhæftede fil sendes i /etc/aliases igennem munpack fra
mpack-pakken med kommandoen:
arkiv: "|/usr/bin/munpack -C /home/arkiv"

Jeg har sat rettighederne 40777 på /home/arkiv

munpack gemmer filerne ejet af nobody:nogroup og med rettigheder 100600

/home/arkiv er så symlink'et ind i et samba-share, men windows-brugere
har hverken læse- eller skrive-rettighed på filerne.

Jeg kan lade cron ændre rettigheder på filerne hvert 5. minut, men ville
hellere have noget, som passer fra starten eller bliver sat igang, hver
gang der bliver gemt en fil (det næste halve år vil det måske være 1 fil
pr. dag - i april kvartal skal vi gemme 3-4.000 filer).


--
Morten Christensen

 
 
Morten Christensen (14-09-2009)
Kommentar
Fra : Morten Christensen


Dato : 14-09-09 21:57

Morten Christensen skrev den 14-09-2009 22:06:
> Jeg skal pille vedhæftede pdf-filer af e-mails og stille dem til
> rådighed for windows-brugere under samba.
>
> Den vedhæftede fil sendes i /etc/aliases igennem munpack fra
> mpack-pakken med kommandoen:
> arkiv: "|/usr/bin/munpack -C /home/arkiv"
>
> Jeg har sat rettighederne 40777 på /home/arkiv
>
> munpack gemmer filerne ejet af nobody:nogroup og med rettigheder 100600
>
> /home/arkiv er så symlink'et ind i et samba-share, men windows-brugere
> har hverken læse- eller skrive-rettighed på filerne.
>
> Jeg kan lade cron ændre rettigheder på filerne hvert 5. minut, men ville
> hellere have noget, som passer fra starten eller bliver sat igang, hver
> gang der bliver gemt en fil (det næste halve år vil det måske være 1 fil
> pr. dag - i april kvartal skal vi gemme 3-4.000 filer).

Nu har jeg prøvet at pakke det ind i et shell-script, så /etc/aliases
indeholder
arkiv: "| /munpack-arkiv.sh"

og munpack-arkiv.sh indeholder
/usr/bin/munpack -C /home/arkiv-tmp
chmod 0666 -R /home/arkiv-tmp
mc /home/arkiv-tmp/*.pdf /home/arkiv/

Det kan uden tvivl gøres meget mere elegant, men ser ud til at virke.

--
Morten Christensen






>
>
> --
> Morten Christensen

Lars Kongshøj (14-09-2009)
Kommentar
Fra : Lars Kongshøj


Dato : 14-09-09 22:16

Morten Christensen skrev:
> Morten Christensen skrev den 14-09-2009 22:06:
>> Jeg skal pille vedhæftede pdf-filer af e-mails og stille dem til
>> rådighed for windows-brugere under samba.
>>
>> Den vedhæftede fil sendes i /etc/aliases igennem munpack fra
>> mpack-pakken med kommandoen:
>> arkiv: "|/usr/bin/munpack -C /home/arkiv"
>>
>> Jeg har sat rettighederne 40777 på /home/arkiv

Øh, _FEM_ oktale cifre?

>> munpack gemmer filerne ejet af nobody:nogroup og med rettigheder 100600

Endnu en rettighed jeg ikke forstår.

>> /home/arkiv er så symlink'et ind i et samba-share, men windows-brugere
>> har hverken læse- eller skrive-rettighed på filerne.
> Nu har jeg prøvet at pakke det ind i et shell-script, så /etc/aliases
> indeholder
> arkiv: "| /munpack-arkiv.sh"
>
> og munpack-arkiv.sh indeholder
> /usr/bin/munpack -C /home/arkiv-tmp
> chmod 0666 -R /home/arkiv-tmp
> mc /home/arkiv-tmp/*.pdf /home/arkiv/

mc? Du mener mv? Hvad hvis en fil med det pågældende navn allerede
findes i /home/arkiv?

> Det kan uden tvivl gøres meget mere elegant, men ser ud til at virke.

Det er det er fornuftigt og sikrer nem videreudvikling at gemme det i et
shellscript.

/Lars

Morten Christensen (14-09-2009)
Kommentar
Fra : Morten Christensen


Dato : 14-09-09 22:44

Lars Kongshøj skrev den 14-09-2009 23:15:
> Morten Christensen skrev:
>> Morten Christensen skrev den 14-09-2009 22:06:
>>> Jeg skal pille vedhæftede pdf-filer af e-mails og stille dem til
>>> rådighed for windows-brugere under samba.
>>>
>>> Den vedhæftede fil sendes i /etc/aliases igennem munpack fra
>>> mpack-pakken med kommandoen:
>>> arkiv: "|/usr/bin/munpack -C /home/arkiv"
>>>
>>> Jeg har sat rettighederne 40777 på /home/arkiv
>
> Øh, _FEM_ oktale cifre?
>
>>> munpack gemmer filerne ejet af nobody:nogroup og med rettigheder 100600
>
> Endnu en rettighed jeg ikke forstår.

De er aflæst i Midnight Commanders Filer, Advanced chown.

>>> /home/arkiv er så symlink'et ind i et samba-share, men
>>> windows-brugere har hverken læse- eller skrive-rettighed på filerne.
>> Nu har jeg prøvet at pakke det ind i et shell-script, så /etc/aliases
>> indeholder
>> arkiv: "| /munpack-arkiv.sh"
>>
>> og munpack-arkiv.sh indeholder
>> /usr/bin/munpack -C /home/arkiv-tmp
>> chmod 0666 -R /home/arkiv-tmp
>> mc /home/arkiv-tmp/*.pdf /home/arkiv/
>
> mc? Du mener mv?

Ja "mv", det er en slåfejl

> Hvad hvis en fil med det pågældende navn allerede
> findes i /home/arkiv?

Du har ret. Det kunne meget nemt være et problem. Den første bliver vel
bare overskrevet, og der burde være et system med en tæller i navnet.
Det evner jeg ikke at lave.

I den helt konkrete brug er dannelsestidspunktet en del af pdf-filens
filnavn, så hvis navnet allerede findes, er filerne identiske, men det
er også et meget usædvanligt forhold.

>> Det kan uden tvivl gøres meget mere elegant, men ser ud til at virke.
>
> Det er det er fornuftigt og sikrer nem videreudvikling at gemme det i et
> shellscript.

--
Morten Christensen
>
> /Lars

Peter Makholm (15-09-2009)
Kommentar
Fra : Peter Makholm


Dato : 15-09-09 05:57

Morten Christensen <mc@mc.sletmig.cx> writes:

> Nu har jeg prøvet at pakke det ind i et shell-script, så /etc/aliases
> indeholder
> arkiv: "| /munpack-arkiv.sh"
>
> og munpack-arkiv.sh indeholder
> /usr/bin/munpack -C /home/arkiv-tmp
> chmod 0666 -R /home/arkiv-tmp
> mc /home/arkiv-tmp/*.pdf /home/arkiv/

Hvis du får to mail ind næsten samtidigt, så kan du komme ud for at
dit scriptkøre flere gange samtidigt. Det kan så ske at script nummer
to skriver nogle filer mellem script nummer et's chmod og mv.

En bedre mulighed ville være at håbe på at munpack overholder umask:

umask 0000
/usr/bin/munpack -C /home/arkiv

Alternativt bruge en unikt tempdir til hver mail:

TEMPDIR=$(mktemp -d) || exit 1
/usr/bin/munpack -C $TEMPDIR
chmod 0666 $TEMPDIR/*.pdf
mv $TEMPDIR/*.pdf /home/arkiv
rm -Rf $TEMPDIR

//Makholm


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