Package: samba
Version: 3.0.14a-3
Severity: grave
Justification: causes non-serious data loss

When upgrading from Debian Woody (with Samba 2.x) to Debian Sarge (with
Samba 3.x), /var/lib/dpkg/info/samba.postinst attempts to convert the
smbpasswd database to the new TDB format, with the following commands:

        umask 066
        pdbedit -i smbpasswd -e tdbsam
        rm /etc/samba/smbpasswd
        umask 022

Unfortunately if the user accounts are provided by, eg, LDAP (or NIS, or
some other external password database), and that password database is
down (due, eg, to being in the process of upgrading from Debian Woody
to Debian Sarge...) then there will be a large number of errors reported
of the form:

build_sam_account: smbpasswd database is corrupt!  username ewen with
uid 1024 is not in unix passwd database!

and the resulting TDB password database will contain few, if any, of
the original users because these are omitted since they're "missing"
(temporarily due to, eg, slapd being down).

samba.postinst then removes the original /etc/samba/smbpasswd file with
out making any backup copy or asking the user for permission to do so.
This prevents the administrator from rerunning the migration once the 
LDAP/NIS/etc database has been restarted during the upgrade.  

IMHO it is inexcusible to deliberately destroy the old version of the
password database simply on the assumption that the conversion command
"must" have worked.  The old password database should be renamed to
something which makes it obvious that it is not used any longer (eg,
/etc/samba/smbpasswd.pre-migration-to-tdb), but left in place to allow
the administrator to recover from any issues that might occur.

It would also be an extrememly good idea to delay running the smbpasswd
conversion script until the end of the sequence of upgrades so that
there is the most chance that LDAP/NIS/etc will be functional again.

FWIW, the sole reason that I didn't mark this a critical bug was that,
fortunately, smbpasswd is backed up daily into /var/backups.  So I
don't have to resort to last nights tape backup to recover from this
destructive postinst script.

Ewen


-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.4.26-wavelength-amd-via
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages samba depends on:
ii  debconf [debconf-2.0]      1.4.30.13     Debian configuration management sy
ii  libacl1                    2.2.23-1      Access control list shared library
ii  libattr1                   2.4.16-1      Extended attribute shared library
ii  libc6                      2.3.2.ds1-22  GNU C Library: Shared libraries an
ii  libcomerr2                 1.37-2sarge1  common error description library
ii  libcupsys2-gnutls10        1.1.23-10     Common UNIX Printing System(tm) - 
ii  libkrb53                   1.3.6-2sarge2 MIT Kerberos runtime libraries
ii  libldap2                   2.1.30-8      OpenLDAP libraries
ii  libpam-modules             0.76-22       Pluggable Authentication Modules f
ii  libpam-runtime             0.76-22       Runtime support for the PAM librar
ii  libpam0g                   0.76-22       Pluggable Authentication Modules l
ii  libpopt0                   1.7-5         lib for parsing cmdline parameters
ii  logrotate                  3.7-5         Log rotation utility
ii  netbase                    4.21          Basic TCP/IP networking system
ii  samba-common               3.0.14a-3     Samba common files used by both th

-- debconf information:
  samba/nmbd_from_inetd:
* samba/run_mode: daemons
* samba/log_files_moved:
* samba/tdbsam: true
* samba/generate_smbpasswd: false


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to