Strona 1 z 2

Profile mobilne w sambie jako kontroler domeny

: 07 grudnia 2010, 15:06
autor: Delleg
Po pierwsze mój konfig:

Kod: Zaznacz cały

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[homes]"
Processing section "[profiles]"
Processing section "[files]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

[global]
        dos charset = CP852
        unix charset = ISO8859-2
        workgroup = PCPR
        netbios name = DEBIAN
        server string = Samba PDC
        interfaces = eth1
        passdb backend = ldapsam:ldap://127.0.0.1
        passwd program = /usr/sbin/smbldap-passwd %u
        passwd chat = *New*password* %nn *Retype*new*password* %nn
        log level = 2
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 50
        name resolve order = wins lmhosts host bcast
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
        add user script = /usr/sbin/smbldap-useradd -m "%u"
        delete user script = /usr/sbin/smbldap-userdel "%u"
        add group script = /usr/sbin/smbldap-groupadd -p "%g"
        delete group script = /usr/sbin/smbldap-groupdel "%g"
        add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
        delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
        set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
        add machine script = /usr/sbin/smbldap-useradd -w "%u"
        logon script = netlogon.bat OR %U.bat
        logon path = \profil - %U
        logon drive = U:
        logon home = \%U.profil
        domain logons = Yes
        os level = 65
        preferred master = Yes
        domain master = Yes
        dns proxy = No
        wins support = Yes
        ldap admin dn = cn=admin,dc=pcpr,dc=lan
        ldap delete dn = Yes
        ldap group suffix = ou=groups
        ldap machine suffix = ou=machines
        ldap passwd sync = yes
        ldap suffix = dc=pcpr,dc=lan
        ldap ssl = no
        ldap user suffix = ou=users
        read only = No
        guest ok = Yes
        hosts allow = 192.168.16., 127.
        hide unreadable = Yes
        vfs objects = fake_perms

[netlogon]
        comment = Network Logon Service
        path = /home/samba/netlogon
        read only = Yes
        guest ok = No
        browseable = No

[homes]
        comment = Katalogi domowe użytkowników
        path = /home/%U
        valid users = %S
        inherit permissions = Yes
        browseable = No

[profiles]
        path = /home/samba/profiles
        valid users = %U, "@Domain Admins"
        create mask = 0600
        directory mask = 0700
        case sensitive = No
        preserve case = No
        short preserve case = No
        hide files = /desktop.ini/ntuser.ini/NTUSER.*/
        browseable = No
        csc policy = disable

[files]
        path = /home/files&drivers
root@SERWER:~#
Wytłumaczcie mi jak chłopu na miedzy o co chodzi z tymi profilami mobilnymi? Najpierw moja interpretacja. Profil mobilny to taki, który można zainicjować na każdym komputerze w sieci. to taki, który podąża za użytkownikiem, a co za tym idzie musi znajdować się w całości na serwerze z którego jest kopiowany po wywołaniu/wpisaniu hasła przez właściciela profilu. Mam bazę LDAP-a, z której pobieram informacje o użytkownikach. wymyśliłem sobie to w ten sposób że pliki każdego użytkownika będą kopiowane na serwer w postaci profilu po wylogowaniu i nadpisywane w katalogu, ale gubię się w zrozumieniu tego całego mechanizmu. Poprawcie mnie jeśli się mylę.
  1. Dodaję komputer do domeny.
  2. Loguje się na konto Administratora (lokalny profil) w tym momencie zakładam w systemie dodatkowego użytkownika o danych identycznych jak te z bazy danych LDAP, tj. nazwa użytkownika i (login) i przypisuje go do domeny dodatkowo zmieniam jego typ profilu na mobilny.
  3. Następnie Start -> Uruchom -> mmc -> tu skrócę bo nie ma sensu tego opisywać -> Nie sprawdzaj czy, użytkownik jest właścicielem folderów profilów mobilnych.
  4. Wylogowuje się i tym razem loguje się do domeny podając stworzonego użytkownika (login) i hasło. Jak rozumiem Windows XP powinien skopiować profil użytkownika do katalogu /home/samba/profiles zamiast tego tworzy katalog na dysku C:\ Windowsa według schematu zapisanego w SAMB-ie.

Kod: Zaznacz cały

logon path = \profil - %U
        logon drive = U:
        logon home = \%U.profil
        domain logons = Yes
Pytanie kolejne po co w takim razie muszę zamontować katalogi home w Windowsie. Rozumiałem to tak, że jak profil się tworzy to jest kopiowany właśnie na ten zamontowany dysk U:, w ten sposób robię kopię plików. Ale nie mam dostępu do tego udziału mimo parametru %S. proszę o logiczne wyjaśnienie kogoś kto z tym walczył.

: 07 grudnia 2010, 15:36
autor: mariaczi
Jeśli pracujesz w środowisku domenowym wystarczy że dany komputer jest dodany do domeny. Jesli chcesz centralnie zarządzać kontami użytkowników to nie dodajesz ich kont lokalnych. Wystarczy że masz konto danego użytkownika utworzone w ldapie a użytkownik przy logowaniu podaje, że loguje się do domeny a nie na lokalną maszynę.
Kilka linków aby rozjaśnić, jak skonfigurować profile mobilne:
http://technet.microsoft.com/en-us/libr ... 10%29.aspx - jak to działa w ogóle. Opisane są konta w windows, a Ty będziesz miał w ldapie.
http://en.wikipedia.org/wiki/Roaming_user_profile
I jak to można z SAMBĄ: http://www.linuxhelpzone.com/roaming-pr ... omain.html

: 07 grudnia 2010, 17:36
autor: Delleg
Rozumiem kiedy się i jak loguje użytkownik problem główny to jak rozwiązać problem profili mobilnych jak one działają w połączeniu z SAMBĄ

: 08 grudnia 2010, 13:28
autor: Cyphermen
Tak jak sobie sam odpowiedziałeś. Po wylogowaniu wszystkie dane użytkownika są kopiowane na serwer przez co nie ma znaczenia, z którego kompa zaloguje się użytkownik bo i tak zawsze otrzyma te same ikonki, tapetę, skróty, które miał na innym komputerze. Problemem z profilami mobilnymi jest to, że użytkownicy kochają ładować masę plików na pulpit i teraz wyobraź sobie, że to wszystko po wylogowaniu musi się na serwer wgrać, a gdy ktoś się loguje to musi zostać przesłane.
Gdy rano przyjdzie do pracy 200 pracowników i każdy zacznie się logować do domeny to możesz mieć niemiłe doświadczenia.

: 08 grudnia 2010, 23:13
autor: Delleg
Może inaczej, ja rozumiem jak to działa jakie są założenia, ale nie mogę ich wdrożyć bo coś robię źle. Potrzebuje żeby mi ktoś wyjaśnił jak to skonfigurować jeśli chodzi o ustawienia od strony Windowsa. Są to moje przypuszczenie być może wina leży po stronie Samby albo jednego i drugiego, nie wiem. I proszę nie odsyłajcie mnie na forum Windowsa bo na takowych dowiedziałem się że muszę zaopatrzyć się w Windows Serwer a przecież nie o to chodzi. W obecnym stanie działa mi baza LDAP-a, działa Samba jako kontroler domeny bo mogę się do niej zalogować, ale profile nie są kopiowane na serwer, nie rozumiem dlaczego. Tak jak napisałem tworzone są na dysku C: podłączanego komputera do domeny. Krótko mówiąc co powinien zrobić gdzie zajrzeć według osób które rozwiązały podobny problem żeby rozwiązać tę zagadkę.

: 09 grudnia 2010, 09:18
autor: mariaczi
Nie zakładaj konta lokalnego dla użytkownika, który ma pracować w domenie. W LDAPie, we właściwościach konta użytkownika poszukaj parametru wskazującego na ścieżkę do profilu (w windows nazywa się on profile path). Ustaw tą zmienną jako ścieżkę, gdzie znajduje się zasób z profilami. I przeczytaj raz jeszcze treść z ostatniego linka, którego podałem w poprzednim swoim poście.

: 09 grudnia 2010, 09:51
autor: Cyphermen
Ja ci wytłumaczę jak ja to robię:

Kod: Zaznacz cały

adduser -s /bin/false -d /home/jarek jarek

Kod: Zaznacz cały

smbpasswd -a jarek
i mam założone konto, i teraz gdy mam podpięty komputer do domeny to loguje się na to konto nie zakładając go uprzednio na lokalnym komputerze.

Nie wiem jak to w ldap działa, ale pewnie podobnie.

: 10 grudnia 2010, 00:11
autor: Delleg
No dobrze, jutro sprawdzę bo dzisiaj nie miałem jak tego zrobić w pracy - remont mały. W między czasie zapytam o mój skrypt, który samba wywołuje, bo z tego co napisaliście to może być problem mojej konfiguracji.

Kod: Zaznacz cały

cat /home/samba/netlogon/netlogon.bat
# Skrypt logowania do domeny
echo Mapuje katalog domowy użytkownika na serwerze "Debian"
net use U: \\Debian\homes
root@SERWER:~#
Czy ja przypadkiem w takim układzie nie powinienem zmapować pod literę dysku U: zasobu /home/samba/profiles?

Kod: Zaznacz cały

net use U: \\Debian\profiles
Zamiast katalogów domowych jak sugerują poradniki dostępne w internecie. Biorę to na logikę, Windows loguje się do domeny i w "profile path" ma podany wspomniany zasób sieciowy, z którego i na który kopiuje pliki, które tym samym lądują na serwerze, tak?

Edycja:

A guzik prawda bo po pierwsze zmieniłem udział [profile] w sambie:

Kod: Zaznacz cały

[profile]
path = /home/samba/profile
valid users = %U, "@Domain Admins"
profile acls = yes
writeable = yes
browseable = no
default case = lower
preserve case = no
short preserve case = no
case sensitive = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
create mask = 0600
directory mask = 0700
csc policy = disable
oraz trzeba było zmienić

Kod: Zaznacz cały

logon path = \profil - %U
logon drive = U:
logon home = \%U.profil
domain logons = Yes
na:

Kod: Zaznacz cały

logon home = \\%L\%U
logon path = \\%L\profile\%U
logon drive = U:
Nic dziwnego, że Windows tworzył profil na dysku C: skoro ścieżka wskazywała na \. Niby ładnie pięknie, ale dalej nie kopiuje profilu na serwer zamiast tego Windows tworzy profil tymczasowy. Oznaczałoby to, że są nieodpowiednie prawa do folderu /home/samba/profile, ale nadałem mu następujące prawa.

Kod: Zaznacz cały

chmod 1755
Teraz na temat "profile patch", gdzie to u licha się znajduje. Bo jeśli nie mam dodawać użytkownika domenowego o tym samych dany co w LDAP-ie to jak mam zmodyfikować jego dane skoro nie ma go w liście użytkowników w Windowsie?
Tak sobie pomyślałem że wzucę jeszcze użytkownika z bazy LDAP-a

Kod: Zaznacz cały

ldapsearch -x -b "uid=testuser,ou=people,dc=pcpr,dc=lan"
# extended LDIF
#
# LDAPv3
# base <uid=testuser,ou=people,dc=pcpr,dc=lan> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# testuser, people, pcpr.lan
dn: uid=testuser,ou=people,dc=pcpr,dc=lan
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
cn: testuser
sn: testuser
givenName: testuser
uid: testuser
uidNumber: 3016
gidNumber: 513
homeDirectory: /home/testuser
loginShell: /bin/bash
gecos: Test User
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: testuser
sambaSID: S-1-5-21-3946501231-293034350-4217055208-7032
sambaPrimaryGroupSID: S-1-5-21-3946501231-293034350-4217055208-513
sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: 0CB6948805F797BF2A82807973B89537
sambaPwdLastSet: 1291967553
sambaPwdMustChange: 1294559553

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

: 10 grudnia 2010, 10:15
autor: Cyphermen
Tu masz mój działający konfig tylko bez ldap, działa na 100% z profilami mobilnymi.

Kod: Zaznacz cały

[global]
        workgroup = ED2
        netbios name = DC
        server string = PDC
        log level = 2
        log file = /var/log/samba_%m.log
        name resolve order = lmhosts host wins bcast
        time server = Yes
        add machine script = /usr/sbin/useradd -d /dev/null -g machines -c 'Konto Maszyny %I' -s /bin/false %u
        logon script = logon.bat
        domain logons = Yes
        os level = 90
        preferred master = Yes
        domain master = Yes
        wins support = Yes

[netlogon]
        path = /home/samba/netlogon
        browseable = No

[homes]
        read only = No
        browseable = No

[test]
        path = /etc/samba/test
        read only = No
        vfs objects = recycle, default_quota
        default_quota:uid nolimit = no
        default_quota:uid = 1003
        recycle:exclude_dir = /tmp|/temp|/cache
        recycle:exclude = *.tmp|*.o|*.obj|~$*|*.ba0
        recycle:touch = True
        recycle:versions = True
        recycle:keeptree = True
        recycle:repository = /etc/samba/test/KOSZ

: 13 grudnia 2010, 13:46
autor: Delleg
Dla wszystkich męczących się z LDAP-em i SAMBĄ. Polecenie ldap-populate, tworzy bazę na podstawie pliku konfiguracyjnego samby, jeśli w pliku konfiguracyjnym smbldap.conf nie wskażemy inaczej. Ja w swojej konfiguracji wybrałem właśnie ten sposób czyli oparłem wszystko na SAMBIE. Okazało się że w bazie brakowało najważniejszego rekordu - sambaProfilePath:. Zmodyfikowałem plik smbldap.conf z:

Kod: Zaznacz cały

userProfile=""
na:

Kod: Zaznacz cały

userProfile="\\Debian\profile\%U"
Użytkownik w bazie wygląda następująco:

Kod: Zaznacz cały

 ldapsearch -x -b "uid=testuser,ou=people,dc=pcpr,dc=lan"
# extended LDIF
#
# LDAPv3
# base <uid=testuser,ou=people,dc=pcpr,dc=lan> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# testuser, people, pcpr.lan
dn: uid=testuser,ou=people,dc=pcpr,dc=lan
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
cn: testuser
sn: testuser
givenName: testuser
uid: testuser
uidNumber: 1000
gidNumber: 513
homeDirectory: /home/testuser
loginShell: /bin/false
gecos: Test User
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: testuser
sambaSID: S-1-5-21-3946501231-293034350-4217055208-3000
sambaPrimaryGroupSID: S-1-5-21-3946501231-293034350-4217055208-513
sambaProfilePath: \\Debian\profile\testuser
sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: 0CB6948805F797BF2A82807973B89537
sambaPwdLastSet: 1291983708
sambaPwdMustChange: 1294575708

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Problem pozostał, profil jak się nie kopiuje tak się nie kopiuje. Co ciekawe Windows nie sygnalizuje że nie może odnaleźć profilu, ale mimo wszystko na serwerze jest pusto.

Dodane:
Ten wątek to mój monolog zaczyna być, jeszcze chwilę to rzucę komputerem w okno i odetchnę z ulgą tracąc przy tym pracę. Zajmę się szydełkowaniem... taki żart.
Słuchajcie, poprawcie mnie jeśli się mylę, proszę. Żeby skopiować profil na serwer Windows musi mieć zamontowany dysk sieciowy w moim przypadku pod literą U:, który w sambie to /home/samba/profile?