Как предотвратить «повреждение» базы данных Samba?

Как предотвратить «повреждение» базы данных Samba?

У меня проблемы с конфигурацией Samba. Я использую Samba уже около 12 или 13 лет, и никогда не видел этого раньше. Было время, когда я был довольно хорошо осведомлен о доменах Windows, но мир Windows прошел мимо меня, и различные аспекты Samba, которые выросли вместе с Active Directory, сбивают меня с толку.

Моя настройка очень проста. У меня есть только один сервер с некоторым дисковым пространством и принтер, который я хочу предоставить для совместного использования 4 другими компьютерами. Все эти годы я использовал простой домен с одним PDC. В последнее время что-то изменилось. Я не могу понять, перешло ли это на Lucid или это было определенное обновление Samba, но что-то постоянно ломается в моей базе данных.

Время от времени пароль моей учетной записи становится «неправильным». Я смогу войти в систему — используя кэшированные учетные данные, я полагаю — но я не смогу монтировать диски или печатать на принтере. Я думаю, это происходит примерно каждые 30 дней. Может быть, каждые 45. Я справлялся с этим, просто сбрасывая пароль на сервере, но это стало действительно раздражать. Кроме того, я замечаю по журналам, что пароли машин также становятся запутанными.

Я наконец догадался, что моя база данных, которую я переносил и обновлял уже около дюжины лет, просто слишком устарела, поэтому я удалил ее и начал с нуля на новом домене. Теперь это происходит снова, так что проблема явно была не в этом.

Я думал, что это касается только моего компьютера с Windows 7, но теперь то же самое происходит и с моими компьютерами с XP.

Я бы не подумал, что это связано с политикой истечения срока действия пароля. Если бы это было так, я бы получил сообщение о том, что пора сменить пароль, верно? Когда я пытаюсь разобраться в этом, я теряюсь во всех этих различных перестановках команд netи pdbeditи wbinfo. Я привык, что они мне вообще не нужны. Кажется, я добавил свою учетную запись в группу «Администраторы домена» с одним из них в какой-то момент, но я не помню, как это делается.

Я особенно запутался в документации относительно того, должен ли я вообще запускать winbind в моей конфигурации. Я не думаю, что должен, но очевидно, что запуск wbinfoдля диагностики требует этого, и я полагаю, что я ничему не повредил, запустив его. Он запускается по умолчанию в Ubuntu, поэтому я хотел оставить его и работать с ним, если это возможно. Winbind НЕ упоминается в моем /etc/nsswitch.conf.

Я получаю много интересных сообщений об ошибках в своих журналах, но Google не приводит меня к пониманию ни одного из них. Вот одно из них в smb.conf, сообщающее мне, что одна из моих рабочих станций подключена неправильно:

[2011/08/27 19:02:04,  0] rpc_server/srv_netlog_nt.c:603(_netr_ServerAuthenticate3)
  _netr_ServerAuthenticate3: netlogon_creds_server_check failed. Rejecting auth request from client PROXIMA machine account PROXIMA$

Много этого из log.winbindd-idmap в Google, без четкого указания на то, что может быть не так или нужно ли это вообще исправлять. (И, да, мне нужен idmapd для NFSv4.) Кажется, это особенность Ubuntu. Я понятия не имею, что может быть "неполным" в моей "конфигурации".

[2011/08/27 19:02:04,  0] winbindd/idmap_tdb.c:287(idmap_tdb_open_db)
  Upgrade of IDMAP_VERSION from -1 to 2 is not possible with incomplete configuration
[2011/08/27 19:02:04,  1] winbindd/idmap.c:321(idmap_init_domain)
  idmap initialization returned NT_STATUS_UNSUCCESSFUL

ядуматьэтот из log.winbindd безвреден, так как winbindd просто выясняет, является ли мой сервер PDC или чем-то еще:

[2011/08/27 17:55:46,  0] libsmb/namequery.c:75(saf_store)
  saf_store: refusing to store 0 length domain or servername!
[2011/08/27 17:55:46,  1] rpc_client/cli_pipe.c:949(cli_pipe_validate_current_pdu)
  cli_pipe_validate_current_pdu: RPC fault code DCERPC_FAULT_OP_RNG_ERROR received from host EXCELSIOR!

Наконец, вот мой smb.conf:


[global]
        workgroup = STARFLEET
        map to guest = Bad User
        obey pam restrictions = yes
        smb passwd file = /var/lib/samba/passdb.tdb
        private dir = /var/lib/samba
        pam password change = yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        unix password sync = yes
        log level = 2
        load printers = yes
        printcap name = cups
        add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
        add group script = /usr/sbin/addgroup --force-badname %g
        add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
        logon script = %U.bat
        logon path =
        logon drive = Z:
        logon home =
        domain logons = yes
        os level = 65
        preferred master = yes
        domain master = yes
        wins support = yes
        usershare allow guests = yes
        use sendfile = yes

[homes]
        comment = Home Directories
        path = /data/Users/%U
        valid users = %S
        read only = no
        create mask = 0700
        directory mask = 0700

[netlogon]
        comment = Network Logon Service
        path = /var/lib/samba/netlogon
        guest ok = yes
        browseable = no
        browsable = no
        share modes = no

[printers]
        comment = All Printers
        path = /var/spool/samba
        create mask = 0700
        printable = yes
        browseable = yes
        browsable = yes

[data]
        path = /data
        read only = no
        guest ok = yes

[temp]
        path = /data/Temp
        read only = no
        guest ok = yes
[homes]
        comment = Home Directories
        path = /data/Users/%U
        valid users = %S
        read only = no
        create mask = 0700
        directory mask = 0700

Итак... Что происходит и как это исправить?

Связанный контент