
Ich versuche, meine Linux-Box dazu zu bringen, Active Directory-Authentifizierung zu verwenden. Ich glaube, ich habe fast alles richtig eingerichtet. Ich kann alle Gruppen und Benutzer anzeigen wbinfo -g
und ausgeben.wbinfo -u
Kurze Einführung in mein Setup:
Der Benutzername, den ich auf meiner Linux-Box für Administratoraufgaben verwende, ist nick
. Mein Active Directory-Benutzername ist nwalke
. Sie haben zwei verschiedene Passwörter. Ich kann mich mit dem Passwort dieses Benutzers bei der Box anmelden und ich kann mich auch mit dem Passwort nick
von anmelden . nwalke
nwalke
Das Kuriose daran:
Beim Erstellen des Stammverzeichnisses des Active Directory-Benutzers führe ich ein Skript aus, das Root-Zugriff erfordert. Dies dient dazu, einige systemweite Dinge wie eine Samba-Freigabe für sie einzurichten. Wenn ich mich als anmelde nwalke
, gebe ich mein nwalke
Passwort ein und es funktioniert. Ich werde dann mit begrüßt [sudo] password for nick:
. Wenn ich nwalke
hier mein Passwort eingebe, heißt es Sorry, try again.
. Wenn ich nick
das Passwort von eingebe, heißt es Sorry, user nick is not allowed to execute scriptname as root
.
Wenn ich groups
dies tue nwalke
, sehe ich, dass meinem Benutzer wie durch Zauberhand die Gruppe zugewiesen wurde nick
.
Jetzt dachte ich versehentlich, dass nick
die UID 100 und nicht 1000 sei. Also smb.conf
hatte ich ursprünglich in meinem idmap uid 1000-10000
. Das Einzige, was mir einfällt, ist, dass ich mich mit angemeldet habe, nwalke
als das noch eingestellt war, und jetzt wird mir nur eine UID von 1000 angezeigt, wodurch Linux gezwungen ist zu denken, dass ich bin nick
.
Ich bin mir nicht wirklich sicher, wie es weitergehen soll. Wie gesagt, ich bin ziemlich sicher, dass Active Directory ordnungsgemäß mit meinem Server kommuniziert, aber auf der Linux-Seite stimmt etwas nicht richtig.
Irgendwelche Gedanken?
Hier ist mein smb.conf
:
[global]
security = ads
netbios name = hostname
realm = COMPANY.COM
password server = adshost.company.com
workgroup = COMPANY
idmap uid = 10000-90000
idmap gid = 10000-90000
winbind separator = +
winbind enum users = no
winbind enum groups = no
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
Muss ich mich irgendwie an einen Benutzer auf der Linux-Box binden?
Antwort1
Es klingt, als ob Sie eine UID-Überschneidung haben.
Wenn nwalke
und nick
dieselbe numerische UID haben, gewinnt die erste nsswitch-Übereinstimmung für Dinge wie id
, sudo
, ls
, usw. (und die erste Übereinstimmung stammt normalerweise aus der Passwd-Datei, sofern Sie die Reihenfolge nicht geändert haben /etc/nsswitch.conf
oder etwas Entsprechendes).
(Die Anmeldung funktioniert mit beiden Namen, da bei der Anmeldung der Benutzer anhand seines Namens gesucht wird. Zwei Benutzer mit demselben Namen können allerdings zu interessantem Chaos führen …)
Ihre lokalen ( /etc/passwd
, /etc/group
) und Remote-UIDs/GIDs (NIS, Samba, LDAP, was auch immer) sollten sich nicht überschneiden. Beheben Sie dieses Kernproblem und der Rest wird sich von selbst lösen.
Antwort2
Ich habe den Wert in meiner smb.conf auf 10.000 geändert und es fühlt sich immer noch so an, als würde nwalke mit 1000 gepaart. Wie löse ich das?
Ich kann mich nicht erinnern, um welche Datei es sich handelt, und ich habe derzeit kein System, um dies zu überprüfen.
Wenn sich ein Benutzer zum ersten Mal verbindet, wird ihm eine ID zugewiesen und diese dann in einer der Samba-Datenbanken gespeichert. /var/lib/samba/
Schauen Sie in diesem Ordner nach, vielleicht ist es offensichtlich, um welche Datei es sich handelt. Sie könnten möglicherweise versuchen, Samba zu stoppen und einfach alle Dateien dort zu verschieben/löschen. Sie müssten der Domäne jedoch erneut beitreten, da die Anmeldeinformationen des Computerkontos auch in einer dieser Datenbanken gespeichert sind.