Es gibt schon HOWTOs wie Sand am Meer zu diesem Thema. Damit ich nicht immer wieder suchen muss, schreibe hier nochmal alles in Kurzform auf
Sinn und Zweck der Aktion ist es, mit einem Samba-Server einer Windows-Domain beizutreten. Die Benutzer können dann ohne erneute Anmeldung für sie freigegebene Verzeichnisse nutzen und sich auch per SSH anmelden.
Umgebung: Ubuntu Hardy und eine Windows Server 2003-Domain namens “NAME.LOCAL” mit einem Domain Controller “server.name.local” an der Adresse 192.168.0.1.
- Benötigte Pakete
- samba
- winbind
- krb5-user
- libpam-krb5
- krb5-config
- libkadm55
- Wichtige Einstellungen der /etc/samba/smb.conf
workgroup = NAME realm = NAME.LOCAL wins server = 192.168.0.1 password server = 192.168.0.1 client use spnego = yes client ntlmv2 auth = yes security = ADS encrypt passwords = true idmap backend = rid:NAME.LOCAL=70000-1000000 idmap uid = 70000-1000000 idmap gid = 70000-1000000 template shell = /bin/bash template homedir = /home/%D/%U winbind use default domain = yes winbind enum groups = yes winbind enum users = yes
- Eine Beispiel-Freigabe mit Berechtigung für eine Windows-Gruppe
[webroot] comment = Verzeichnis des Webservers path = /var/www browseable = yes read only = no create mask = 0664 directory mask = 0775 valid users = @NAME\Webentwickler
- /etc/nsswitch.conf
passwd: compat winbind group: compat winbind
- /etc/pam.d/common-password
password requisite pam_unix.so nullok obscure md5 password optional pam_smbpass.so nullok use_authtok use_first_pass missingok - /etc/pam.d/common-account
account sufficient pam_winbind.so account required pam_unix.so
- /etc/pam.d/common-session
session required pam_unix.so session required pam_mkhomedir.so umask=0022 skel=/etc/skel session optional pam_foreground.so
- /etc/pam.d/common-auth
auth required pam_group.so use_first_pass auth sufficient pam_winbind.so auth sufficient pam_unix.so nullok_secure use_first_pass auth required pam_deny.so
- /etc/pam.d/sudo
#%PAM-1.0 auth sufficient pam_winbind.so auth sufficient pam_unix.so use_first_pass auth required pam_deny.so @include common-account
- /etc/krb5.conf
[libdefaults] default_realm = NAME.LOCAL NAME.LOCAL = { kdc = server.name.local admin_server = server.name.local } [domain_realm] .name.local = NAME.LOCAL
Ob die Kerberos-Verbindung zum Windows-Server klappt, kann dann mit dem Kommando “kinit Administrator@NAME.LOCAL” und einem nachfolgenden “klist” überprüft werden.
Nach dem Neustart der Samba- und Winbind-Dienste muss der Server dann noch in die Domain eingefügt werden. Das geht über das Kommando “net rpc join -S server -U Administrator”. Ob die Windows-Benutzerdatenbank richtig angezapft wird, lässt sich mit “wbinfo -u” und “wbinfo -g” überprüfen.
Nachtrag:
- Das Dateisystem, das die Freigaben beinhaltet, muss mit acl- und user_xattr-Unterstützung eingebunden sein, damit NT-Dateiberechtigungen auch richtig abgebildet werden können. Also in der /etc/fstab “defaults,acl,user_xattr” in die vor-vorletzte Spalte
- Eine Freigabendefinition sieht mit ACL-Unterstützung so aus, ob das optimal ist muss sich noch zeigen:
[share] path = /srv/share browseable = yes read only = no valid users = @NAME\domänen-benutzer admin users = @NAME\domänen-admins nt acl support = yes acl group control = yes inherit permissions = yes map acl inherit = yes