PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Home Ordner automatisch erzeugen



Drapo
15.09.05, 08:45
Hallo zusammen

Ich habe hier in einer Windows Domäne meinen Linux Fileserver am laufen mit Suse 9.2 und Samba 3.0.9.
Die Benutzer werden in der Windows Domäne verwaltet und mit meinem Samba über winbind gemappt. Da alle Home Directorys der User auf dem Linux Rechner liegen wollte ich es irgendwie automatisieren die Home Directorys anzulegen. Damit ich das nicht immer von Hand machen muss. Ausserdem sollten diese auch gleich die richtigen Berechtigungen haben 700.

Kann ich das im Samba Share in der smb.conf einrichten dass der Ordner des Users automatisch erstellt wird? wenn ja wie?

Gruss drapo

checkup
15.09.05, 11:59
Ich hab mir dafür ein kleines Skript geschrieben...


smb.conf in der "homes" Sektion das eintragen:

----------- snip----
[homes]
root preexec = bash -c '/usr/bin/homedir.sh "%D" "%u" "%g"'
----------- snip----


das skript sieht bei mir dann so aus:

-- snip ----

#!/bin/bash
#
# homedir tests if homedir is exsitent and creates it.
#

echo "Checking and/or Creating homedir" >> /tmp/homedir_output

domain="$1"
username="$2"
group="$3"

#strip domain
username1=${username:${#domain}+1}
group1=${group:${#domain}+1}

echo "Domain/User/user1/group/group1 : $domain $username $username1 $group $group1" >> /tmp/homedir_output

if [ "$group" = "<DOMÄNE>+domain computers" ]; then
exit 0
fi

#file exists and is a directory
if [ -d /home/$domain/$username1 ]; then
exit 0
else
mkdir -m 0700 /home/$domain/$username1
chown "$username.$group" /home/$domain/$username1
echo "Created a homedir and did set the permissions." >> /tmp/homedir_output
fi

exit 0

-- snip-----



Den Eintrag <DOMÄNE> bitte an Deine Samba-domäne anpassen! (ohne "<>").
Das ganze in /usr/bin/homedir.sh

und ein chmod +x /usr/bin/homedir.sh


Das Skript verhindert auch das für Machinenaccounts dirs angelegt werden.

Gruß
Marco

PS: Ich empfehle eine aktuellere Sambaversion! 3.0.14a oder 3.0.20

emba
15.09.05, 12:17
chmod +x /usr/bin/homedir.sh
am besten chmod 0700 <file>; chown root.root <file>

greez

Drapo
15.09.05, 13:46
vielen dank für eure hilfe.

habe das skript nun so implementiert und auch die smb.conf angepasst:




#!/bin/bash
#
# homedir test if homedir is exsitent and creates it
#

echo "Checking and/or Creating homedir"
>>/tmp/homedir_output

domain="$1"
username="$2"
group="$3"

#strip domain
username1=${username:${#domain}+1}
group1=${group:${#domain}+1}

echo "Domain/User/user1/group/group1 : $domain $username $username1 $group $group1"
>>/tmp/homedir_output

if [ "$group" = "CHSFSMF+domain computers" ] ; then
exit 0
fi

#file exists and is a directory
if [ -d /home/$username1 ] ; then
exit 0
else
mkdir -m 0700 /home/$username1
chown "$username.$group" /home/$username1
echo "Created a homedir and did set the permissions."
>>/tmp/homedir_output
fi

exit 0



Nun habe ich allerdings das Problem, dass die User nicht aus der Domäne abgefragt werden. Woran kann das liegen? wenn ich das skript direkt ausführe sind die abfragen aus der domäne leer:



/usr/bin/homedir.sh
Checking and/or Creating homedir
Domain/User/user1/group/group1 :


weshalb krieg ich die Informationen aus der Domäne nicht zurück.

Drapo
15.09.05, 14:01
ups sorry fehlalarm. wenn ich über windows zugreife funktionierts einwandfrei!!

Vielen dank für die Hilfe!!! :)

Drapo
17.09.05, 13:30
noch ne andere Frage: gibts hier auch die Möglichkeit direkt beim anlegen der Ordner quotas einzurichten so müsste ich wirklich nichts mehr machen bei einem neuen benutzer?

emba
19.09.05, 12:42
dir sind keine grenzen gesetzt, wenn du das shell skript erweitern möchtest
code selbst mal ein bisschen ;)

greez