contraseña de sincronización samba con contraseña de unix en debian wheezy


11

Instalé samba en mi servidor y estoy tratando de escribir un script para ahorrarme los dos pasos para agregar un usuario, por ejemplo:

adduser username
smbpasswd -a username

Mis smb.confestados:

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

La lectura adicional me llevó a la pdbeditpágina de manual que dice:

   -a     This option is used to add a user into the database.  This  com-
          mand needs a user name specified with the -u switch. When adding
          a new user, pdbedit will also ask for the password to be used.

          Example: pdbedit -a -u sorce
          new password:
          retype new password

          Note

          pdbedit does not call the unix password syncronisation script if
          unix password sync has been set. It only updates the data in the
          Samba user database.

          If you wish to add a user and synchronise the password that  im-
          mediately, use smbpasswd’s -a option.

Entonces ... ahora decidí intentar agregar un usuario con smbpasswd:

Primer intento, el usuario de Unix todavía no existe:

root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.

Segundo intento, existe un usuario de Unix:

root@raspberrypi:/home/pi# useradd mag
root@raspberrypi:/home/pi# smbpasswd -a mag
New SMB password:
Retype new SMB password:
Added user mag.
# switch to user pi, and try to switch to mag
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag
Password: 
su: Authentication failure

Entonces, ahora me pregunto:

  1. ¿Cómo sincronizo las contraseñas de Samba con las contraseñas de Unix?
  2. ¿Dónde se almacenan las contraseñas de samba?

¿Alguien puede ayudarme a iluminarme?


Las contraseñas se almacenan dentro de las bases de datos en /var/lib/samba/, creo que las contraseñas están en secrets.tdbpero no estoy seguro. En cuanto a su pregunta anterior, dudo que haya una manera fácil.
Zoredache

Respuestas:


10

Bueno ... el eslabón perdido era:

 libpam-smbpass

Entonces, después de instalar estos paquetes, funciona como se esperaba. La memoria a largo plazo de Internet solo trae información parcial a veces. Entonces, para combatir esto, estoy publicando aquí el enlace correcto sobre cómo sincronizar las contraseñas de samba con las contraseñas de Unix , y también mi propia prueba.

root@raspberrypi:/home/pi# passwd mag2
passwd: user 'mag2' does not exist
root@raspberrypi:/home/pi# useradd mag2
root@raspberrypi:/home/pi# echo "mag2:12345" | chpasswd
root@raspberrypi:/home/pi# smbclient -L localhost -U mag2
Enter mag2's password: 
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (raspberrypi server)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

    Server               Comment
    ---------            -------
    RASPBERRYPI          raspberrypi server

    Workgroup            Master
    ---------            -------
    WORKGROUP            
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag2
Password: 
Added user mag2.

mag2@raspberrypi:/home/pi$ 

Espero que esto ayude a alguien más.

actualización 2017:

libpam-smbpassestá en desuso . Parece lo que lo reemplazó es pam_winbindd. Puede instalar el paquete libpam-winbindpara obtenerlo. Sin embargo, esto aún no sincroniza las contraseñas de samba con sus contraseñas de Unix. En cambio, le permite autenticarse en Unix con un servidor de autenticación de Windows (AD). Puede encontrar información sobre eso aquí: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller


2
El enlace está roto, por eso ponemos información valiosa en la respuesta: /
ubiquibacon

@ubiquibacon He editado esta respuesta para que el enlace ahora apunte a la versión archivada de Wayback Machine (gracias al buen trabajo realizado por la gente de Internet Archive).
Anthony Geoghegan

1
pam_smbpass parece estar en desuso
alex.forencich

Sí, ya no puedo encontrarlo libpam-smbpassen un sistema Debian 9.1 y tampoco me funciona. ¿Cómo puede ser que esta simple pregunta se haya hecho tantas veces y todavía no tenga respuesta?
Frank Breitling

@ Oz123 Ninguno de los dos libpam-winbindNO se puede encontrar en CentOS7.
CHENJIAN

3

Quería comentar sobre la respuesta anterior, pero no pudo hacerlo por falta de puntos de reputación. Intenté poner el contenido completo en esta respuesta, pero no pude como decía que parecía spam. aquí está el acceso al contenido completo en la máquina wayback, y la siguiente es la breve versión de los puntos principales:

Sincronización de contraseña de Unix y Samba en Debian Etch

Instale los siguientes paquetes:

# apt-get install libpam-smbpass smbclient

Unix -> Samba

Para actualizar la contraseña de Samba cada vez que un usuario cambie su contraseña de Unix, cambie

/etc/pam.d/common-password: desde

password   required   pam_unix.so nullok obscure min=4 max=8 md5

a

password   requisite**  pam_unix.so nullok obscure min=4 max=8 md5
password   required   pam_smbpass.so nullok use_authtok try_first_pass

Cambiar "requerido" a "requisito" para pam_unix asegurará que si falla el cambio de contraseña de Unix, la ejecución de los complementos finaliza inmediatamente.

Para que esto funcione, los usuarios ya deben tener cuentas de Samba, y sus contraseñas de Samba deben coincidir con sus contraseñas de Unix. Debido a que este no es necesariamente el caso, debemos cambiar

/etc/pam.d/common-auth: desde

auth    required        pam_unix.so nullok_secure

a

auth    requisite       pam_unix.so nullok_secure
auth    optional        pam_smbpass.so migrate

Esto creará un usuario de Samba, si aún no existe, y cambiará su contraseña a la contraseña de Unix, siempre que el usuario inicie sesión con SSH o cualquier otro servicio que use la autenticación predeterminada del sistema (autenticación común).

Debería ver un mensaje Usuario agregado al iniciar sesión con SSH con una cuenta que aún no tiene una cuenta Samba.

Debido a que esto también creará una cuenta Samba para root, es posible que desee deshabilitar el acceso root en Samba (Debian Etch lo tiene deshabilitado por defecto):

/etc/samba/smb.conf:

invalid users = root

Advertencia : esto no funcionará si el usuario inicia sesión a través de SSH u otros servicios sin usar una contraseña (por ejemplo, mediante la autenticación de clave pública / privada). En este caso, PAM no tendrá la contraseña de texto sin formato, que es necesaria para crear la contraseña de Samba.

Aviso : cuando modifique la contraseña común para que también requiera actualizaciones de las contraseñas de Samba, los usuarios que hayan iniciado sesión actualmente no podrán cambiar su contraseña usando "passwd" hasta que vuelvan a iniciar sesión, a menos que ya tengan una cuenta de Samba con una contraseña igual a su contraseña de Unix.

Samba -> Unix

Le indicamos a Samba que use PAM al cambiar las contraseñas:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

Reinicie Samba usando /etc/init.d/samba restart.

Configure PAM para admitir el cambio de contraseña por parte de Samba agregando @include contraseña común:

/etc/pam.d/samba:

@include common-auth
@include common-account
@include common-session
@include common-password

Esto usará el mismo mecanismo para cambiar las contraseñas cuando se usa Samba que cuando se usa "passwd". Esto significa que requerirá una actualización de la contraseña de Unix antes de intentar cambiar la contraseña de Samba.

Creando nuevos usuarios

use chpasswd para evitar errores:

# useradd test
# echo “test:newpass” | chpasswd

pam_smbpass parece estar en desuso
alex.forencich

@Joru Al compilar la fuente de samba 4.9.1 en CentOS7, no hay ningún archivo de pam_smbpass.so. ¿Me puedes ayudar? enlace: stackoverflow.com/questions/52932070/…
CHENJIAN

@CHENJIAN SAMBA.ORG eliminó pam_smbpass.so de las fuentes con SAMBA 4. Así que la última versión de Samba que pude encontrar fue samba 3.9.16
Axel Werner
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.