/ Forside / Teknologi / Hardware / Mac / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Mac
#NavnPoint
UlrikB 4810
kipros 1675
Klaudi 1010
myg 920
pifo 907
Stouenberg 838
molokyle 830
Bille1948 815
rotw 760
10  EXTERMINA.. 750
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

Søg
Reklame
Statistik
Spørgsmål : 177512
Tips : 31968
Nyheder : 719565
Indlæg : 6408599
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste