|
| Æ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
| |
|
|