|
| Unix hjælp Fra : René Frej Nielsen |
Dato : 18-03-04 12:00 |
|
Hejsa,
En eller anden Unix-guru her i gruppen kan sikkert hjælpe!
Jeg skal have lavet et - tror jeg - nemt shell-script som kan
autmatisere dele af følgende process:
1. En bruger oprettes i Workgroup Manger på Mac OS X Server 10.3.3.
2. WGM opretter automatisk en bruger-mappe i /Users/Kunder/[user]
3. Denne mappe skal tømmes og rettighederne sætte til 0770
Jeg vil meget gerne have have automatiseret punkt 3, således at man
bare kan skrive f.eks.:
newuser [user]
og så vil den automatisk tømme mappen /Users/Kunder/[user] og køre
"chmod 770" på mappen.
Det kan desværre ikke gøres med et alias, da de ikke kan tage et
argument som [user] og jeg har ingen erfaringer med shell-scripts.
Det skal bruges til en FTP-server, hvor der ikke skal være de
standardmapper som Mac OS X Server laver i bruger-mapperne.
Jeg bruger bash som shell.
--
Mvh.
René Frej Nielsen
PowerMac G4 MDD Dual 867 Mhz
| |
Rene Molsted (18-03-2004)
| Kommentar Fra : Rene Molsted |
Dato : 18-03-04 12:58 |
|
René Frej Nielsen wrote:
> Hejsa,
> newuser [user]
>
> og så vil den automatisk tømme mappen /Users/Kunder/[user] og køre
> "chmod 770" på mappen.
>
> Det kan desværre ikke gøres med et alias, da de ikke kan tage et
> argument som [user] og jeg har ingen erfaringer med shell-scripts.
>
> Det skal bruges til en FTP-server, hvor der ikke skal være de
> standardmapper som Mac OS X Server laver i bruger-mapperne.
>
> Jeg bruger bash som shell.
>
Hej René
Forståe jeg dig ret i at foideren [user] ikke skal slettes?
Du kan gøre følgende:
[KLIP]
#!/bin/bash
ROOT_DIR=/Users/Kunder
if [ $USER != "root" ]; then
echo "Du skal være root for at afvikle dette script."
exit
fi
rm -R $ROOT_DIR/$1/*
chmod 0770 $ROOT_DIR/$1
[KLIP]
cp scriptnavn /sbin
chmod 700 /sbin
Hvis du vil bruge scriptet SCRIPT USER kan du lægge det i /sbin.
En lille forklaring
#!/bin/bash - angiver hvilken shell du vil benytte
ROOT_DIR=/Users/Kunder – Angiver dit root directory
rm -R $ROOT_DIR/$1/* - sletter alt i root directory under given bruger,
$1 tager argumentet fra din kommando (newuser brugernavn), altså brugernavn
chmod 0770 $ROOT_DIR/$1 - ændre rettigheder på mappen "brugernavn"
Du er meget velkommen til at mail mig direkte hvis det volder dig problemer.
Med venlig hilsen
René Mølsted
molsted@mac.com
| |
Rene Molsted (18-03-2004)
| Kommentar Fra : Rene Molsted |
Dato : 18-03-04 13:02 |
|
Rene Molsted wrote:
>
> Hej René
> Forståe jeg dig ret i at foideren [user] ikke skal slettes?
> Du kan gøre følgende:
> [KLIP]
> #!/bin/bash
>
> ROOT_DIR=/Users/Kunder
>
> if [ $USER != "root" ]; then
> echo "Du skal være root for at afvikle dette script."
> exit
> fi
>
> rm -R $ROOT_DIR/$1/*
> chmod 0770 $ROOT_DIR/$1
>
> [KLIP]
>
> cp scriptnavn /sbin
> chmod 700 /sbin
>
> Hvis du vil bruge scriptet SCRIPT USER kan du lægge det i /sbin.
>
> En lille forklaring
>
> #!/bin/bash - angiver hvilken shell du vil benytte
> ROOT_DIR=/Users/Kunder – Angiver dit root directory
> rm -R $ROOT_DIR/$1/* - sletter alt i root directory under given bruger,
> $1 tager argumentet fra din kommando (newuser brugernavn), altså brugernavn
> chmod 0770 $ROOT_DIR/$1 - ændre rettigheder på mappen "brugernavn"
>
> Du er meget velkommen til at mail mig direkte hvis det volder dig
> problemer.
>
> Med venlig hilsen
> René Mølsted
> molsted@mac.com
En lille tilføjelse
Kommandoen skal lyde sådan: chmod 700 /sbin/scriptnavn
| |
Lone Schmidt (18-03-2004)
| Kommentar Fra : Lone Schmidt |
Dato : 18-03-04 19:46 |
|
Rene Molsted <molsted@mac.com> wrote:
> Rene Molsted wrote:
> >
> > Hej René
> > Forståe jeg dig ret i at foideren [user] ikke skal slettes?
> > Du kan gøre følgende:
> > [KLIP]
> > #!/bin/bash
> >
> > ROOT_DIR=/Users/Kunder
> >
> > if [ $USER != "root" ]; then
> > echo "Du skal være root for at afvikle dette script."
> > exit
> > fi
> >
> > rm -R $ROOT_DIR/$1/*
> > chmod 0770 $ROOT_DIR/$1
> >
> > [KLIP]
> >
> > cp scriptnavn /sbin
> > chmod 700 /sbin
> >
> > Hvis du vil bruge scriptet SCRIPT USER kan du lægge det i /sbin.
> >
> > En lille forklaring
> >
> > #!/bin/bash - angiver hvilken shell du vil benytte
> > ROOT_DIR=/Users/Kunder – Angiver dit root directory
> > rm -R $ROOT_DIR/$1/* - sletter alt i root directory under given bruger,
> > $1 tager argumentet fra din kommando (newuser brugernavn), altså brugernavn
> > chmod 0770 $ROOT_DIR/$1 - ændre rettigheder på mappen "brugernavn"
> >
> > Du er meget velkommen til at mail mig direkte hvis det volder dig
> > problemer.
> >
> > Med venlig hilsen
> > René Mølsted
> > molsted@mac.com
>
> En lille tilføjelse
>
> Kommandoen skal lyde sådan: chmod 700 /sbin/scriptnavn
René, min Jyllands guru!!
--
Venlige hilsner
og grumme go´hygge
Lone ;-D
| |
René Frej Nielsen (26-03-2004)
| Kommentar Fra : René Frej Nielsen |
Dato : 26-03-04 14:18 |
|
In dk.edb.mac Rene Molsted <molsted@mac.com> wrote:
>> #!/bin/bash
>>
>> ROOT_DIR=/Users/Kunder
>>
>> if [ $USER != "root" ]; then
>> echo "Du skal være root for at afvikle dette script."
>> exit
>> fi
>>
>> rm -R $ROOT_DIR/$1/*
>> chmod 0770 $ROOT_DIR/$1
Jeg har nu endelig fundet ud af en god opsætning af serveren. Det
voldte lidt besvær med rettigheder, da vi skal have åbent for både FTP
og AFP.
Dit script udfylder sit job fint, men jeg har dog et par ting, som
gerne måtte rettes:
1. Hvis man fyrer scriptet af uden en variabel, så tømmer det istedet
ROOT_DIR... Det er ikke så heldigt! Kan det undgås? Det er ufikst hvis
vi får slette alle kundemapperne!
2. Min Mac OS X Server vil af en eller anden grund nu ikke oprette
brugermapperne automatisk. Det er ikke noget problem i dette tilfælde,
da scriptet jo bare kan oprette dem. Det har jeg hittet ud af, men der
er en ting til:
Jeg har rettet i scriptet nu, så det ser sådan ud:
#!/bin/bash
ROOT_DIR=/Kunder
if [ $USER != "root" ]; then
echo "Du skal være root for at afvikle dette script."
exit
fi
mkdir $ROOT_DIR/$1
chmod 0770 $ROOT_DIR/$1
chown $1:$1 $ROOT_DIR/$1
Det virker fint nu, men hvis serveren pludselig begynder at oprette
mapper automatisk igen, vil jeg gerne have at scriptet tjekker for
det. Altså, at det først tjekker om mappen allerede eksisterer. Altså
nogen ligndende dette:
#!/bin/bash
ROOT_DIR=/Kunder
if [ $USER != "root" ]; then
echo "Du skal være root for at afvikle dette script."
exit
fi
# Her indsættes tjek for om $ROOT_DIR/$1 eksisterer, hvis det er
tilfældet
# springes næste linie over
mkdir $ROOT_DIR/$1
# Nedenstående skal sikres, så det ikke tømmer $ROOT_DIR ved en tom
variabel
rm -R $ROOT_DIR/$1/*
chmod 0770 $ROOT_DIR/$1
# Næste linie springes også over, hvis $ROOT_DIR/$1 eksisterer for så er
# ejer/gruppe allerede opsat (det skader dog ikke at køre det igen)
chown $1:$1 $ROOT_DIR/$1
Jeg håber, at du gidder kigge på det.
--
Mvh.
René Frej Nielsen
PowerMac G4 MDD Dual 867 Mhz
| |
Jonas Voss (26-03-2004)
| Kommentar Fra : Jonas Voss |
Dato : 26-03-04 18:09 |
|
In dk.edb.mac, spam@rfn.dk wrote:
> 1. Hvis man fyrer scriptet af uden en variabel, så tømmer det istedet
> ROOT_DIR... Det er ikke så heldigt! Kan det undgås? Det er ufikst hvis
> vi får slette alle kundemapperne!
Indsæt dette i toppen lige under #!/bin/bash:
if [ $# -ne 1 ]; then
echo -e "Dette script gør noget, og kræver 1 argument"
exit 1
fi
Nu kunne jeg ikke lige huske hvad det var scriptet skulle kunne, så jeg
kunne ikke skrive en mere passende tekst til hvad scriptet gjorde, og
hvilket slags argument det krævede (:
--
| Jonas @ 55.68 , 12.57 | < http://blog.verture.net/> |
BOFH-excuse: Dyslexics retyping hosts file on servers
| |
René Frej Nielsen (28-03-2004)
| Kommentar Fra : René Frej Nielsen |
Dato : 28-03-04 21:23 |
|
In dk.edb.mac Jonas Voss <hexley@spymac.com> wrote:
>> 1. Hvis man fyrer scriptet af uden en variabel, så tømmer det istedet
>> ROOT_DIR... Det er ikke så heldigt! Kan det undgås? Det er ufikst hvis
>> vi får slette alle kundemapperne!
>
> Indsæt dette i toppen lige under #!/bin/bash:
>
> if [ $# -ne 1 ]; then
> echo -e "Dette script gør noget, og kræver 1 argument"
> exit 1
> fi
>
> Nu kunne jeg ikke lige huske hvad det var scriptet skulle kunne, så jeg
> kunne ikke skrive en mere passende tekst til hvad scriptet gjorde, og
> hvilket slags argument det krævede (:
Takker for ovenstående og det er noteret. René Mølsted har dog lavet
en revideret udgave af scriptet, som bl.a. inkluderer noget lignende
ovenstående, og det skal jeg have testet af i morgen.
--
Mvh.
René Frej Nielsen
PowerMac G4 MDD Dual 867 Mhz
| |
René Frej Nielsen (19-03-2004)
| Kommentar Fra : René Frej Nielsen |
Dato : 19-03-04 00:13 |
|
In dk.edb.mac Rene Molsted <molsted@mac.com> wrote:
> Forståe jeg dig ret i at foideren [user] ikke skal slettes?
Helt rigtigt.
> Du kan gøre følgende:
[snip]
> Du er meget velkommen til at mail mig direkte hvis det volder dig problemer.
Jeg forsøger mig med det i morgen, men jeg har i samarbejde med Morten
Reippuert Knudsen fundet en løsning, der måske ikke kræver dette
arbejde, men det ser ellers ud til at være smukt arbejde.
--
Mvh.
René Frej Nielsen
PowerMac G4 MDD Dual 867 Mhz
| |
|
|