LinuxForum.Fans
Тема

[РЕШЕНО] CentOS Samba не пускает нового доменного пользователя

Автор: gberc 7 сообщений 6198 просмотров
#260102

Имеется:
- CentOS

Показать
text
# uname -a
Linux z-data.nex.local 2.6.32-220.17.1.el6.x86_64 #1 SMP Wed May 16 00:01:37 BST 2012 x86_64 x86_64 x86_64 GNU/Linux

- Samba

Показать
text
# yum list installed | grep samba
samba.x86_64           3.5.10-116.el6_2 @updates
samba-client.x86_64    3.5.10-116.el6_2 @updates
samba-common.x86_64    3.5.10-116.el6_2 @updates
samba-winbind.x86_64   3.5.10-116.el6_2 @updates
samba-winbind-clients.x86_64

Samba настроена как член домена, вот так http://linuxforum.ru/viewtopic.php?id=20997 и http://linuxforum.ru/viewtopic.php?id=21432
Несколько дней назад произошел сбой на контроллере домена WinSer2008x32. КД был восстановлен из бекапа, а все рабочие станции были заново внесены в домен. Был заново внесен и сервер Samba. Всё работает нормально, проблем/жалоб не наблюдается.

Завел нового доменного пользователя. Но Samba не пускает его даже к списку шар - запрашивает логин/пароль. При этом ввод аутентификационных данных нового пользователя не проходит.

Проверяю настройку Samb`ы:
1. klist

Показать
text
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: TROSHIN_DADMIN@NEX.LOCAL

Valid starting Expires Service principal 06/15/12 01:38:57 06/15/12 11:39:18 krbtgt/NEX.LOCAL@NEX.LOCAL renew until 06/16/12 01:38:57

2. testparm

Показать
text
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
...
-шары-
...
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions

3. net ads testjoin

Показать
text
Join is OK

4. wbinfo -u

Показать
выводит список доменных пользователей

5. wbinfo -g

Показать
выводит список доменных груп

6. wbinfo -t

Показать
text
checking the trust secret for domain NEX via RPC calls succeeded

7. getent passwd

Показать
выводит список ТОЛЬКО локальных пользователей, доменные отсутствуют

8. getent group

Показать
выводит список локальных и ДОМЕННЫХ груп

Что было сделано:
- проверены все конфигурационные файлы, учавствующие в настройке Samb`ы.
- выполнен перезапуск служб: smb, winbind, nmb.

К сожалению нет возможности сейчас перезагрузить сервер, да и не хотелось бы делать перезагрузку при каждом добавлении пользователя в домен.

Логи:
1. cat /var/log/samba/log.smbd

Показать
text
[2012/06/20 11:24:18.231611,  1] smbd/service.c:1251(close_cnum)
  __ffff_192.168.3.18 (::ffff:192.168.3.18) closed connection to service archive_unit_retail
[2012/06/20 11:24:18.997796,  1] smbd/sesssetup.c:454(reply_spnego_kerberos)
  Username NEX\popov.d is invalid on this system
[2012/06/20 11:24:19.558457,  1] smbd/sesssetup.c:454(reply_spnego_kerberos)
  Username NEX\popov.d is invalid on this system
[2012/06/20 11:24:31.286865,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/06/20 11:24:31.286970,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.

2. cat /var/log/samba/log.winbindd

Показать
text
[2012/06/19 20:17:04.532077,  0] winbindd/winbindd.c:195(winbindd_sig_term_handler)
  Got sig[15] terminate (is_parent=1)
[2012/06/19 20:17:04,  0] winbindd/winbindd.c:1102(main)
  winbindd version 3.5.10-116.el6_2 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2010
[2012/06/19 20:17:04.975278,  0] winbindd/winbindd_cache.c:3076(initialize_winbindd_cache)
  initialize_winbindd_cache: clearing cache and re-creating with version number 1
[2012/06/20 09:48:37.927042,  0] winbindd/winbindd.c:195(winbindd_sig_term_handler)
  Got sig[15] terminate (is_parent=1)
[2012/06/20 09:48:39,  0] winbindd/winbindd.c:1102(main)
  winbindd version 3.5.10-116.el6_2 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2010
[2012/06/20 09:48:39.116225,  0] winbindd/winbindd_cache.c:3076(initialize_winbindd_cache)
  initialize_winbindd_cache: clearing cache and re-creating with version number 1

Очевидно, что проблема в том, что Samba не видит доменных пользователей.
Как быть?
Пока на ум приходит только перезагрузка сервера и переввод в домен. Но хотелось бы избежать этих действий.

#260193

А что показывает

text
wbinfo -n DOMAIN\\user 

и

text
id user
#260217

Macumazan, сделал

text
# wbinfo -n NEX\\popov.d
S-1-5-21-926604562-1521242566-298935221-3624 SID_USER (1)

# id popov.d id: popov.d: Такого пользователя нет

Перезагрузка сервера не помогла.
Заново ввел в домен Samb`у (перед этим удалил из домена и ДНС записи о сервере) - getent passwd так и не показывает доменных пользователей. Samb`а не пускает к просмотру шар.

#260229

Нашел я решение. помогла очистка кеша Samb`ы.
в каталоге /var/lib/samba/ я удалил все файлы, оставил только каталоги (ос)

text
# ls -l
итого 2016
-rw------- 1 root root    36864 Апр 27 17:52 account_policy.tdb
-rw-r--r-- 1 root root    40200 Июн 20 22:14 brlock.tdb
-rw-r--r-- 1 root root      213 Июн 20 22:44 browse.dat
-rw-r--r-- 1 root root   110592 Июн 20 22:25 connections.tdb
-rw-r--r-- 1 root root    32768 Июн 20 22:36 gencache_notrans.tdb
-rw-r--r-- 1 root root   135168 Июн 20 22:34 gencache.tdb
-rw------- 1 root root   110592 Апр 27 17:54 group_mapping.ldb
-rw-r--r-- 1 root root    73728 Июн 20 22:16 locking.tdb
-rw------- 1 root root    12288 Июн 20 22:16 messages.tdb
-rw------- 1 root root      696 Апр 27 17:52 mutex.tdb
-rw------- 1 root root    65536 Июн 20 22:20 netsamlogon_cache.tdb
-rw-r--r-- 1 root root      696 Июн 20 22:16 notify_onelevel.tdb
-rw-r--r-- 1 root root      696 Июн 20 22:16 notify.tdb
-rw------- 1 root root     8192 Апр 27 17:52 ntdrivers.tdb
-rw------- 1 root root      696 Апр 27 17:52 ntforms.tdb
-rw------- 1 root root     8192 Апр 27 17:52 ntprinters.tdb
drwxr-xr-x 2 root root     4096 Апр 27 17:52 perfmon
drwxr-xr-x 2 root root     4096 Апр 27 17:52 printing
drwx------ 2 root root     4096 Апр 30 22:44 private
-rw------- 1 root root    36864 Апр 27 17:52 registry.tdb
drwxr-xr-x 2 root root     4096 Апр 30 22:44 scripts
-rw-r--r-- 1 root root   204800 Июн 20 22:16 sessionid.tdb
-rw------- 1 root root    36864 Апр 27 17:52 share_info.tdb
drwxr-xr-x 2 root root     4096 Июн 20 22:14 smb_krb5              (если я правильно понял, то здесь лежит файлик билета кербероса. его нельзя удалять)
-rw-r--r-- 1 root root    32768 Июн 20 22:44 unexpected.tdb
-rw------- 1 root root   991232 Июн 20 22:37 winbindd_cache.tdb
-rw-r--r-- 1 root root    81920 Июн 18 11:59 winbindd_idmap.tdb
drwxr-x--- 2 root wbpriv   4096 Июн 20 22:14 winbindd_privileged

getent passwd теперь отображает и доменных пользователей. И на шару стало пускать "нового" доменного пользователя.
только нужно перед этим остановить winbind, удалить файлы. а потом снова запустить.

#260276

Вскорости обнаружилась следующая проблема - слетели права на шары. Выглядит это так:
на шару были выставлены права для группы1 и группы2, а так же пользователю3 и пользователю4 . А стали права у группы6 и группы7, а так же пользователю05 и пользователю78.

Если я правильно понимаю, то winbind при первом получении групп/пользователей присваивает им некие номера. В конфиге Samb`ы это строки

Показать
text
 # Опции сопоставления доменных пользователей и виртуальных пользователей в системе через Winbind.
   idmap uid = 10000 - 40000
   idmap gid = 10000 - 40000

А Samba использует эти номера для назначения прав доступа. Т.е. Samba оперирует этими номерами, а winbind сопоставляет дальше эти номера с доменными учетками/группами.
А после того, как я удалил файлы кеша Samb`ы, то winbind назначил новые номера пользователям. И произошла подмена пользователей.

#260366

Это можно исправить маппингом SID в UID/GID руками. wbinfo --set-uid-mapping=UID,SID

#260387

спс. буду иметь ввиду

Войдите или зарегистрируйтесь, чтобы ответить.