Не удалось добавить пользователя client

Вывод будет большой - можно через wgetpaste. Глючит smbpasswd, пока не понятно почему.

Пропатчил.

calculate # patch /usr/lib/calculate/calculate-server/pym/cl_ldap.py /opt/4334
patching file /usr/lib/calculate/calculate-server/pym/cl_ldap.py
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 1698 with fuzz 1.

Вывод после патча:

calculate # cl-setup samba
Traceback (most recent call last):
  File "/usr/bin/cl-setup-2.7", line 26, in <module>
    import cl_ldap
  File "/usr/lib/calculate/calculate-server/pym/cl_ldap.py", line 1701
    print &quot;RC,PO&quot;,retCode,programOut
          ^
SyntaxError: invalid syntax

Исправьте оба &amp;quot; на двойные кавычки.

Вывод команды: (немного отформатировал для читаемости)

calculate pym # cl-setup samba
 * ПРЕДУПРЕЖДЕНИЕ: Выполнение этой программы изменит конфигурационные файлы Samba сервиса.
Если вы готовы продолжить выполнение программы, введите 'yes', если нет - 'no': yes

RC,PO 0 [' bootmisc | boot \n',
 ' calculate-core | boot \n',
 ' consolefont | boot \n',
 ' cupsd | default \n',
 ' devfs | sysinit\n',
 ' dmesg | sysinit\n',
 ' fbcondecor | default \n',
 ' fsck | boot \n',
 ' hostname | boot \n',
 ' hwclock | boot \n',
 ' keymaps | boot \n',
 ' killprocs | shutdown \n',
 ' local | default nonetwork \n',
 ' localmount | boot \n',
 ' modules | boot \n',
 ' mount-ro | shutdown \n',
 ' mtab | boot \n',
 ' mysql | default \n',
 ' net.eth0 | default \n',
 ' net.lo | boot \n',
 ' netmount | default \n',
 ' procfs | boot \n',
 ' root | boot \n',
 ' savecache | shutdown \n',
 ' slapd | default \n',
 ' sshd | default \n',
 ' swap | boot \n',
 ' sysctl | boot \n',
 ' syslog-ng | boot \n',
 ' termencoding | boot \n',
 ' udev | sysinit\n',
 ' udev-postmount | default \n',
 ' urandom | boot \n',
 ' vixie-cron | default \n']
RC,PO 0 * samba -> stop: smbd ... [ ok ]
RC,PO 0 * Stopping ldap-server ... [ ok ]
RC,PO 0 Setting stored password for "ou=Samba,ou=Services,dc=calculate" in secrets.tdb
RC,PO 0 * Stopping ldap-server ... [ ok ]
 * Удален Samba DN из LDAP базы данных ...[ ok ]
 * Добавлен ldif файл ...[ ok ]
RC,PO 0 * samba -> start: smbd ... [ ok ]
 * Запускается Samba ...[ ok ]
RC,PO 1  * Сервис samba не установлен
 * Не удалось добавить пользователя client
ERROR14
 * не удалось создать samba пользователя 'client'
smbpasswd -a -n usertest

Вывод команды:

calculate # smbpasswd -a -n usertest
 * Сервис samba не установлен
_samr_create_user: Running the command `/usr/bin/cl-useradd "usertest" samba' gave 1
Failed to add entry for user usertest.

Попробуйте перенести /etc/samba/smb.conf и еще раз перенастроить samba. Выводы не нужны, патчи можно отменить.

Всё то же самое.
Меня смущает вот эта строчка в выводе:

RC,PO 0 Setting stored password for "ou=Samba,ou=Services,dc=calculate" 
in secrets.tdb

secrets.tdb - это же не в ldap. Или я ошибаюсь?

Пароль для доступа к ldap хранится в secrets.tdb.

С какими USE флагами собран пакет samba? Какой версии openldap с какими USE он собран?

openldap
Installed versions: 2.4.30(11:10:54 14.03.2012)(berkdb crypt ipv6 samba ssl syslog tcpd -cxx -debug -experimental -gnutls -icu -iodbc -kerberos -minimal -odbc -overlays -perl -sasl -selinux -slp -smbkrb5passwd)
samba
Installed versions: 3.5.15^t(13:29:33 03.05.2012)(acl aio client cups ldap netapi pam quota readline server smbclient -addns -ads -avahi -caps -cluster -debug -doc -examples -fam -ldb -smbsharemodes -smbtav2 -swat -syslog -winbind)

CFLAGS в make.conf
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"

В /etc/calculate/calculate.env
поставил параметр sr_samba_set = on
Было off.

Теперь

calculate # cl-setup  samba
 * ПРЕДУПРЕЖДЕНИЕ: Samba сервер сконфигурирован.

И…

calculate # smbpasswd -a -n usertest

После команды нет ответа. Команда зависла.

До кучи:

calculate # cl-setup samba
 * ПРЕДУПРЕЖДЕНИЕ: Samba сервер сконфигурирован.
calculate calculate # smbpasswd -a -n usertest
^C
calculate calculate # Traceback (most recent call last):
  File "/usr/bin/cl-useradd-2.7", line 43, in <module>
    if obj.addUserSambaServer(optObj.params['user'], optObj.opt):
  File "/usr/lib/calculate/calculate-server/pym/cl_ldap.py", line 178, in ret
    return fun(self, *arg , **argv)
  File "/usr/lib/calculate/calculate-server/pym/cl_ldap.py", line 6132, in addUserSambaServer
    textLine = self.execProg("smbpasswd -a -n %s" %(userName))
  File "/usr/lib/calculate/calculate-server/pym/cl_ldap.py", line 1700, in execProg
    retCode,programOut = cl_utils.runOsCommand(cmdStrProg,inStr,retFull,env)
  File "/usr/lib/calculate/calculate-lib/pym/cl_utils.py", line 296, in runOsCommand
    retcode = pipe.wait()
  File "/usr/lib64/python2.7/subprocess.py", line 1291, in wait
    pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
  File "/usr/lib64/python2.7/subprocess.py", line 478, in _eintr_retry_call
    return func(*args)
KeyboardInterrupt
^C
calculate #

/var/log/message и dmesg не содержат ошибок после выполнения команды?

После обновления выполнялась ли команда dispatch-conf ?

В /var/log/message и dmesg нет ошибок после выполнения данных команд. Там вообще только одна ошибка касающаяся сессии SSH.
После обновления выполнял dispatch-conf. И во время выполнения её система предложила обновление скрипта или конфига касающегося самбы. Я не увидел там чего либо криминального. Мой конфиг самбы это не затрагивало. Я нажал ‘u’. Собственно, после этого всё вышеописанное и произошло. Самба сама не обновлялась в этот раз, обновлялся питон. Моя невнимательность и абсолютное доверие к системе обновления привели к ошибке - это очевидно. Но в линуксе не должно быть фатальных ситуаций. По крайней мере на федоре у меня такого не было ни разу за 10 лет. В calculate-linux я новичёк и ещё не совсем привык к системе обновления, где надо следить за каждым обновляющимся пакетом. Но по любому не должно быть, чтобы нельзя было переустановить любой демон без переустановки всего сервера. Должен же быть механизм переустановки самбы или любого другого компонента системы независимо от других служб, сервисов и т.д.

Выполняли revdep-rebuild и python-updater ? Какие пакеты ставились недавно?

eix '-I*' --format '<installedversions:DATESORT>' | sort -n | cut -f2-3 | tail -20

Попробуйте удалить /etc/conf.d/samba, /etc/init.d/samba и пересобрать samba. Какая версия в системе openrc? Если samba настроить вручную без ldap пользователи будут добавляться через smbpasswd?

python-updater проводил, revdep-rebuild нет.

eix '-I*' --format '<installedversions:DATESORT>' | sort -n | cut -f2-3 | tail -20
17.09.2012 09:54:53     net-im/ejabberd
17.09.2012 09:55:56     net-libs/libpcap
17.09.2012 09:58:19     net-dns/bind
17.09.2012 09:58:42     sys-auth/nss_ldap
17.09.2012 09:58:51     dev-perl/net-server
17.09.2012 09:59:21     www-client/links
17.09.2012 10:00:52     net-misc/curl
17.09.2012 10:01:00     mail-client/mailx
17.09.2012 10:02:42     sys-devel/gettext
17.09.2012 10:03:02     net-analyzer/tcpdump
17.09.2012 10:04:15     sys-apps/util-linux
17.09.2012 10:04:35     net-mail/fetchmail
17.09.2012 10:04:44     sys-apps/portage
17.09.2012 10:05:48     dev-lang/ruby:1.8
18.09.2012 10:03:04     dev-lang/python:3.2
18.09.2012 10:06:47     sys-libs/cracklib
18.09.2012 10:07:33     dev-libs/libxml2
18.09.2012 10:07:59     media-libs/lcms:0
18.09.2012 10:08:28     dev-libs/libxslt
18.09.2012 10:17:19     sys-apps/calculate-lib:3

Удалил…, пересобрал самбу, сделал revdep-rebuild
В smb.conf установил

passdb backend = tdbsam:/etc/samba/passdb.tdb

Закоментировал всё, что касается ldap.

calculate samba # smbpasswd -a testuser
New SMB password:
Retype new SMB password:
Failed to add entry for user testuser.