En la configuración del recurso compartido smb.conf
, deberá especificar los nombres de los usuarios y / o grupos que pueden escribir en el recurso compartido, utilizando una write list = ...
línea.
Ejemplo:
[myshare]
...
write list = my_linux_username
Luego, deberá usar el smbpasswd
comando para configurar una contraseña para autenticarse my_linux_username
para Samba:
sudo smbpasswd -a my_linux_username
Este paso es necesario porque las contraseñas estándar del sistema /etc/shadow
están en algoritmos hash que son incompatibles con los algoritmos hash de contraseña utilizados en el protocolo SMB. Cuando un cliente envía un paquete de autenticación SMB, incluye una contraseña hash. Solo se puede comparar con otro hash de contraseña que use el mismo algoritmo.
(Las instrucciones muy antiguas del milenio anterior pueden recomendar deshabilitar el cifrado de contraseñas en Samba y usar ciertos hacks de registro para permitir que Windows emita contraseñas no encriptadas a la red. Este consejo es obsoleto : esos hacks de registro ya no funcionan en las versiones actuales de Windows, y permita que cualquiera que pueda monitorear el tráfico de su red capture su contraseña de manera trivial).
Hay una cosa más que puede tener que hacer del lado del cliente. Cuando su sistema cliente de Windows está unido a un dominio de Active Directory y ha iniciado sesión con una cuenta AD, automáticamente antepone todos los nombres de usuario no calificados con el nombre del dominio AD del usuario, es decir, se autenticará como AD_DOMAIN\your_username
, no solo your_username
.
Si ha iniciado sesión con una cuenta local (o su sistema cliente no está unido a un dominio AD), Windows puede prefijar automáticamente el nombre de usuario con el nombre de host del cliente a menos que especifique otro nombre de dominio.
Para iniciar sesión con éxito en un servidor Samba independiente desde un cliente Windows independiente, es posible que deba especificar su nombre de usuario como SAMBA_SERVER_HOSTNAME\your_username
.
De lo contrario, Samba verá el nombre de usuario como WINDOWS_CLIENT_HOSTNAME\your_username
, concluirá que no tiene forma de verificar ningún usuario que pertenezca al dominio nombrado WINDOWS_CLIENT_HOSTNAME
y rechazará el inicio de sesión.
(Las versiones más recientes de Samba pueden tener una verificación incorporada para esta situación específica, y pueden permitirle acceder de todos modos. Pero así es básicamente cómo funciona la autenticación SMB "bajo el capó", y si necesita lidiar con versiones antiguas de Samba , podría ser útil aún).
force user = defaultUser
hizo el trabajo por mí.