PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : user administration leicht gemacht....



phoris
25.12.02, 12:01
ho ho ho!
also ich hab einen fileserver und viele probleme! ich möchte auf den fileserver mit samba zugreifen. jeder benutzer(ca. 500) soll einen eigenen benutzernamen und ein eigenes passwort haben. die benutzer sollen in unterschiedlichen gruppen sein. ich hab mehere listen mit den benutzern.

der benutzername sollte sich so gestallten: die ersten 3 buchstaben aus dem vornamen und die ersten 3 buchstaben aus den nachnamen, umlaute werden ausgeschrieben: (ä=ae ö=oe....). akzente werden ignoriert (ê=e è=e à=a .....) alle namenteile werden kleingeschrien (Franz=franz)

also mal ein beispiel:

aus Franz Kafka wird als loginname frakaf
aus Helmut Kohl wird als loginname helkoh
aus Söhren Wernersen wird als loginame soewer
aus Ölegere Äâter wird oelaea

ich habe listen von den benutzern, die benutzer sollen in listenspezifischen gruppen. den benutzern soll jeweils ein unterschiedliches passwort zugewiesen werden. jeder benutzer soll ein homeverzeichnis auf dem serverbekommen. dieses darf max. 5mb gross werden und zum schluss will ich einen brief für jeden user haben, indem sein passwort und sein benutzername steht.

und jetzt nich bis ostern vor der eingabe der user zu sitzen, würd ich gern nen tip haben, wie man das vereinfachen kann!

bis denne & danke

dauni
25.12.02, 12:08
Die Listen sind auf Papier?

phoris
25.12.02, 12:11
ne exel dateien dateien!

dauni
25.12.02, 12:16
Naja, die Umlaute usw. kannst dann ja im Excel mit "Suchen&Ersetzen" hinbiegen. Der Rest sollte mit einem Script zu bewerkstelligen sein. Vielleicht derbieg ich ja was hin, wenn nicht schoin vorher einer von den Profis antwortet ...

phoris
25.12.02, 12:24
das wär spitze!

achja nochwas, kennt jemand nen tool, mit dem man samba- und useradministration bequem übern browser ändern kann? (ausser webmin)

spunz
25.12.02, 12:29
ich würde die user nicht unbedingt auf echten namen aufbauen, sonst mußt oft neue user anlegen (zb bei kündigung)

wir machen es so:

wiekf222 = username

wi = standortname, in diesem fall "wien"
ekf = abteilung "einkauf"
222 = telefonnummer

das hat den vorteil das du nur mit dem namen nebenbei gleich den standort, das büro und die richtige telefonnummer hast. mit namenskürzel kannst nicht wirklich was anfangen.
kündigt ein user, bekommt der nachfolger gleich seinen namen, telefon und mail adresse. so muß man nur minimale änderungen durchführen.

die gruppen würde ich nicht viel anders anlegen. jeder user bekommte ein home => wiekf222$

-jede abteilung einen abteilungsordner => wiekf (wien / einkauf) wo nur die abteilung lesen und ändern kann
-es gibt einen ordner wo alle schreiben und lesen können (zb ordner all)
-es gibt spezielle ordner wo zugriffe auf wunsch eingerichtet werden (zb für spezielle abteilungsübergreifende zugriffe)

spunz
25.12.02, 12:30
Original geschrieben von phoris
das wär spitze!

achja nochwas, kennt jemand nen tool, mit dem man samba- und useradministration bequem übern browser ändern kann? (ausser webmin)

swat

phoris
25.12.02, 12:48
Original geschrieben von spunz

wir machen es so:

wiekf222 = username

wi = standortname, in diesem fall "wien"
ekf = abteilung "einkauf"
222 = telefonnummer



also der server soll inner schule als fileserver stehen. jede klassenstufe hat unterschiedliche rechte in verschiedenen verzeichnissen. diese sollen durch die verschieden gruppen gegeben sein. denkbar wäre im benutzname der abi-jahrgang oder das einschulungsjahr. am anfang des neuen schuljahres müsste das verhältnis zwischen benutzern und gruppen geändert werden

Jasper
25.12.02, 12:52
Original geschrieben von phoris
ho ho ho!
also ich hab einen fileserver und viele probleme! ich möchte auf den fileserver mit samba zugreifen. jeder benutzer(ca. 500) soll einen eigenen benutzernamen und ein eigenes passwort haben. die benutzer sollen in unterschiedlichen gruppen sein. ich hab mehere listen mit den benutzern.

der benutzername sollte sich so gestallten: die ersten 3 buchstaben aus dem vornamen und die ersten 3 buchstaben aus den nachnamen, umlaute werden ausgeschrieben: (ä=ae ö=oe....). akzente werden ignoriert (ê=e è=e à=a .....) alle namenteile werden kleingeschrien (Franz=franz)

also mal ein beispiel:

aus Franz Kafka wird als loginname frakaf
aus Helmut Kohl wird als loginname helkoh
aus Söhren Wernersen wird als loginame soewer
aus Ölegere Äâter wird oelaea

ich habe listen von den benutzern, die benutzer sollen in listenspezifischen gruppen. den benutzern soll jeweils ein unterschiedliches passwort zugewiesen werden. jeder benutzer soll ein homeverzeichnis auf dem serverbekommen. dieses darf max. 5mb gross werden und zum schluss will ich einen brief für jeden user haben, indem sein passwort und sein benutzername steht.

und jetzt nich bis ostern vor der eingabe der user zu sitzen, würd ich gern nen tip haben, wie man das vereinfachen kann!


da wirst du wohl um ein skript nicht drumrum kommen. :)

hier schon mal die funktion um die loginnamen zu generieren (namensliste ist der name des files mit den namen in der form 'vorname nachname'):

#!/bin/bash

function convert_name {
t=$1
t=${t//ä/ae}
t=${t//ö/oe}
t=${t//ü/ue}
t=${t//â/a}
t=${t//ô/o}
t=${t//û/u}
echo $t | cut -c1-3
}

function create_name {
a=$1
b=$2
a=$(convert_name $a)
b=$(convert_name $b)
echo $a$b
}


tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ' 'abcdefghijklmnopqrstuvwxyzäöü' < namensliste | \
while read vn nn; do

a=$(create_name $vn $nn)

echo "loginname=$a"
done


-j

phoris
25.12.02, 13:46
perfekt! das script geht! :) danke!

da ich von der script-schreibung keinen schimmer habe, muss ich ma durchfragen:

kann man die usernames inne datei tun (zb. username-gen), aus der dann ein anderes script die name ausliest, und dann irgendwie sowas macht wie:
--->
useradd [erster name in der datei username-gen] -G guppe1,guppe2,gruppe3(die gruppen würd ich dann manuell im srcipt eintragen) -p [passwort = username]

useradd [zweiter name in der datei username-gen] -G guppe1,guppe2,gruppe3 -p [passwort = username]

useradd [dritter name in der datei username-gen] -G guppe1,guppe2,gruppe3 -p [passwort = username]

usw....
<---

so das alle benutzer die in der datei username-gen drin mitglider in den selben gruppen sind. das mit dem passwort ist erstmal nich so wichtig.

um die homeverzeichnise zu machen bräuchte ich dann ein zweites script:

--->
mkdir /home/[erster name in der datei username-gen]
chown [erste name in der datei username-gen]:users /home/[erster name in der datei username-gen]

mkdir /home/[zweiter name in der datei username-gen]
chown [zweiter name in der datei username-gen]:users /home/[zweiter name in der datei username-gen]

mkdir /home/[dritter name in der datei username-gen]
chown [dritter name in der datei username-gen]:users /home/[dritter name in der datei username-gen]
<---






---------> erm... gibt es irgenwo ne gute anleitung für shell-script-prgrammirung

Jasper
25.12.02, 21:46
Original geschrieben von phoris
kann man die usernames inne datei tun (zb. username-gen), aus der dann ein anderes script die name ausliest, und dann irgendwie sowas macht wie:



das ist die idee von meinem codeschnipsel:

tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ' 'abcdefghijklmnopqrstuvwxyzäöü' < namensliste | \
while read vn nn; do

a=$(create_name $vn $nn)

# hier können irgendwelche befehle stehen, die irgendetwas mit $a (dem usernamen) machen

done

'while; do; done' ist ein schleifenkonstrukt, der für jede zeile aus 'namensliste', also pro user einmal durchlaufen wird.



useradd [erster name in der datei username-gen] -G guppe1,guppe2,gruppe3(die gruppen würd ich dann manuell im srcipt eintragen) -p [passwort = username]

useradd [zweiter name in der datei username-gen] -G guppe1,guppe2,gruppe3 -p [passwort = username]

useradd [dritter name in der datei username-gen] -G guppe1,guppe2,gruppe3 -p [passwort = username]


diese befehle brauchst du eigentlich nur noch syntaktisch korrekt in den schleifenkörper reinzuschreiben.



um die homeverzeichnise zu machen bräuchte ich dann ein zweites script:


kein zweites skript, schreibs mit in die schleife rein.



---------> erm... gibt es irgenwo ne gute anleitung für shell-script-prgrammirung

'man bash' bzw. 'man <name_deiner_shell' oder im fall von bash: http://www.digitaltoad.net/docs/guide/advshell/

-j

phoris
26.12.02, 13:01
also ich habs nen bischen umgebastelt:
------------->
#!/bin/bash

mv log2 log3
mv log log2

function convert_name {
t=$1
t=${t//ä/ae}
t=${t//ö/oe}
t=${t//ü/ue}
t=${t//â/a}
t=${t//ô/o}
t=${t//û/u}
echo $t | cut -c1-3
}

function create_name {
a=$1
b=$2
a=$(convert_name $a)
b=$(convert_name $b)
echo $a$b
}


tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ' 'abcdefghijklmnopqrstuvwxyzäöü' < userliste | \
while read vn nn; do

a=$(create_name $vn $nn)

echo "$a" | tee -a log

mkdir /home/"$a" | tee -a log

useradd "$a" -g users | tee -a log

chown "$a":users /home/"$a"

done
<------

jedoch funktioniert das mit dem "| tee -a log" in der zeile mkdir und useradd nicht! ich würd gern die ausgabe dieser befehle in die datei log schreiben, jedoch schreibt er nichts rein! hat jemand ne idee?

wenn ich fertig bin, kommt auch noch ne zeile:
--->
smbpasswd -a "$a" "$a"
<----

aber erst wenn ich samba zuende aufgesetzt hab!

und wie kann man bei linux die größe von verzeichnissen beschränken?

achja die anleitung ist spitze!

Jasper
26.12.02, 16:57
Original geschrieben von phoris

jedoch funktioniert das mit dem "| tee -a log" in der zeile mkdir und useradd nicht! ich würd gern die ausgabe dieser befehle in die datei log schreiben, jedoch schreibt er nichts rein! hat jemand ne idee?


'mkdir' gibt nichts aus, wenn das verzeichnis erfolgreich angelegt wurde. probiers mal so:

mkdir -v /home/"$a" 2>&1 | tee -a log

für grössenbeschränkungen sieh dir quota (man quota) an.

-j

phoris
16.01.03, 14:23
danke!
also ich hab jetz andere userlisten:

die sind im txt format und sehen so aus:

Kohl Helmut 16.4.82
Urlaub Farin 5.12.78
Christiansen Sabine 6.9.68

das mit der login-name generierung sollte so bleiben, jedoch möchte ich gern die lezte spalte (das geburtsdatum) als eine variable haben, sodass ich sie als password bei samba einsetzen kann:

smbpasswd -a "$a" "$p"

wobei "$p" das passwort/geburtsdatum ist