Sowohl die UID des LDAPS als auch die UID der lokalen Benutzer beginnt bei 1000. So das z. B. der erste lokale Benutzer und der erste LDAP-Benutzer1) die gleiche UID und GID haben. Loggt man sich z. B. mit dem ersten LDAP-Benutzer ein und wieder aus, und versucht dann mit dem ersten lokalen Benutzer einen sudo
-Befehl auszuführen, so wundert man sich, dass man hier das Passwort des LDAP-Benutzers eingeben muss.
Dieses stört solange nicht, wie man die lokalen Benutzer nicht benötigt. Will man aber auch die lokalen Benutzer verwenden, so muss man
Der Bereich aus dem die UID's und GID's verwendet werden ist in der /etc/adduser.conf
durch die Parameter FIRST_UID
und LAST_UID
bzw. FIRST_GID
und LAST_GID
festgelegt. Die vier Befehle
sudo sed -i '/^FIRST_UID/ s/1000/500/' /etc/adduser.conf sudo sed -i '/^LAST_UID/ s/29999/999/' /etc/adduser.conf sudo sed -i '/^FIRST_GID/ s/1000/500/' /etc/adduser.conf sudo sed -i '/^LAST_GID/ s/29999/999/' /etc/adduser.conf
ändern die Parameter entsprechend ab.
Dann kann man mit den Kommandos
usermod -u 500 <benutzername> groupmod -u 500 <gruppenname>
die einzelnen Benutzer und die zugehörige Gruppe auf die neuen UID's und GID's setzen (im Beispiel oben ist die UID und GID jeweils 500). Da funktioniert aber nicht bei dem eingeloggten Benutzer, so dass man sich z. B. mit einem sudoer aus dem LDAP einloggen muss. Um diesen Prozess zu automatisieren, kann man die folgende for-Schleife nutzen:
count=500 for dir in /home/*; do user=$(basename $dir); usermod -u $count $user; groupmod -g $count $user; count=`expr $count + 1`; done;
Oder alles in einer Zeile zum direkten ausführen:
count=500; for dir in /home/*; do user=$(basename $dir); usermod -u $count $user; groupmod -g $count $user; count=`expr $count + 1`; done;
Auf einem Skolelinux-Client haben die Homeverzeichnisse die Berechtigung 0755. Auch dieses kann man in der Datei /etc/adduser.conf
durch den Parameter DIR_MODE
einstellen.
sudo sed -i '/^DIR_MODE/ s/0755/0700/' /etc/adduser.conf
Es ist auch möglich, gosa so einzurichten, damit die ID's bei einem größeren Wert beginnen. Dazu ändert man in der Datei /etc/gosa/gosa.conf
im Element <location name=„default“>
die Werte von uidNumberBase
und gidNumberBase
auf entsprechend höhere Werte ab, so dass es zu keiner Überlappung kommen kann.
Man muss dann die bereits mit gosa angelegte Benutzer (das ist zumindest der bei der Installation angelegte Benutzer) die jeweilige UID und GID ändern. Dies geschieht auf dem Reiter Unix im Bereich Erzwinge UID/GID (siehe Abb. rechts).
Geht man davon aus, dass nur ein Benutzer auf den Clients angelegt wird (der Benutzer, der bei der Installation angelegt wird), so reicht es auch aus, eine höhere UID und GID für den ersten LDAP-Benutzer zu erzwingen (siehe Abb. rechts), alle danach angelegten LDAP-Benutzer erhalten dann UIDs und GIDs die hinter dieser sind.
Ggf. muss man über den Menüpunkt Gruppe die GIDs der einzelnen Gruppen auf einen höheren Wert setzen.
Für diese Einstellungen siehe auch Paket debian-edu-config/cf/cf.adduser.
Diskussion