Univention Corporate Server (UCS) » Univention Directory Manager (UDM)

ID #1009

Übergabe von Werten an den Univention Directory Manager mittels Import einer CSV Datei

Problem:

Das Anlegen oder Bearbeiten von Objekten im LDAP mit dem Univention Directory Manager Webinterface, kann bei einer größeren Anzahl von Änderungen sehr aufwändig sein.

 

Lösung:

Eine effektive Bearbeitung vieler Objekte im LDAP ist mittels des Kommandozeilenfrontend Univention Directory Manager CLI möglich. Im folgenden wird am Beispiel von Sambafreigaben das Skriptbasierte anlegen von Objekten aus einer CSV Datei beschrieben.
Für das Erstellen eines Sambashares kann mit dem Kommandozeilenfrontend Univention Directory Manager CLI folgender Befehl verwendet werden.

univention-directory-manager shares/share create \
--set name=<Name> \
--set host=<FQDN> \
--set path=<Pfad> \
--set sambaWriteable=1 \
--set owner=<UID> \
--set group=<GID> \
--set directorymode=<Rechte>

 

Hierbei ist zu beachten, dass "owner" und "group" in ID-Form angegeben werden müssen. Die IDs können entweder an der Webadministration am jeweiligen Objekt abgelesen, oder an der Kommandozeile abgefragt werden.

id root
uid=0(root) gid=0(root) groups=0(root)

getent group "Domain Users"
Domain Users:x:5001:

Der Wert "directorymode" entspricht dem Linux-Mode. Im Beispiel: schreiben für Eigentümer und User, lesen für Andere.

Um ein automatisiertes Anlegen zu ermöglichen, können die Einstellungen in einer Datei definiert werden.

Datei-Inhalt (Trenner ist Leerzeichen und/oder TAB):

<NAME> <FQDN> <PFAD> <uid> <gid> <Rechte>


z.B.

 

Datei: shares.def

share1 host.domain.com /home/share1 0 5001 0775
share2 host.domain.com /home/share2 0 5001 077
5


Ein Aufruf dazu wäre:

cat shares.def | while read name host path uid gid rights; do \
univention-directory-manager shares/share create \
--set name=$name \
--set host=$host \
--set path=$path \
--set sambaWriteable=1 \
--set owner=$uid \
--set group=$gid \
--set directorymode=$rights ; done


Dieser Aufruf kann als Skript geschrieben werden, "shares.def" wird dem Skript dann als Parameter übergeben. Die Datei hätte folgenden Inhalt :

Skript: import_shares.sh

#!/bin/sh
cat $1 | while read name host path uid gid rights; do \
univention-directory-manager shares/share create \
--set name=$name \
--set host=$host \
--set path=$path \
--set sambaWriteable=1 \
--set owner=$uid \
--set group=$gid \
--set directorymode=$rights ; done


Ist diese Datei per

chmod u+x <Dateiname>

ausführbar, können durch die Auswertung der Datei shares.def Shares angelegt werden.

./import_shares.sh shares.def

 

Das erfolgreiche Anlegen der Shares wird im genannten Beispiel, vom Univention Directory Manager CLI mit folgenden Meldungen bestätig:

 

Object created: cn=share1,dc=domain,dc=com
Object created: cn=share2,dc=domain,dc=com

Tags: csv, kommandozeile, udm

Verwandte Artikel:

Letzte Änderung der FAQ: 2011-01-24 16:42
Autor: Tobias Scherer
Revision: 1.2

Digg it! Share on Facebook FAQ ausdrucken FAQ weiterempfehlen Als PDF-Datei anzeigen
Übersetzungsvorschlag für Übersetzungsvorschlag für
Bewertung der Nützlichkeit dieser FAQ:

Durchschnittliche Bewertung: 3 (2 Abstimmungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren nicht möglich