Tengo una ruta en una máquina Linux (Debian 8) que quiero compartir con Samba 4 en computadoras con Windows (Win7 y 8 en un dominio). En mi smb.conf
hice lo siguiente:
[myshare]
path = /path/to/share
writeable = yes
browseable = yes
guest ok = yes
public = yes
Tengo acceso de lectura perfecto desde Windows. Pero para tener acceso de escritura, debo hacerlo chmod -R 777 /path/to/share
para poder escribir desde Windows.
Lo que quiero es acceso de escritura desde Windows después de proporcionar las credenciales de Linux del propietario de Linux /path/to/share
.
Ya probé:
[myshare]
path = /path/to/share
writeable = yes
browseable = yes
Luego, Windows solicita credenciales, pero no importa lo que ingrese, siempre es denegado.
¿Cuál es la forma correcta de obtener acceso de escritura a los recursos compartidos de Samba desde una computadora con dominio de Windows sin otorgar 777?
fuente
force user = defaultUser
hizo el trabajo por mí.smb.conf
. La documentación de Google e incluso sambas dijo que el archivo debería estar en,/usr/local/samba/lib
pero en realidad está en/etc/samba
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 unawrite list = ...
línea.Ejemplo:
Luego, deberá usar el
smbpasswd
comando para configurar una contraseña para autenticarsemy_linux_username
para Samba: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 soloyour_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 nombradoWINDOWS_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).
fuente
Estaba buscando esto porque tenía prisa y ni siquiera tuve tiempo para concentrarme en crear usuarios y así ...
Solo tenía que sacar los datos de una máquina Debian 9 lo antes posible y esta fue la forma más rápida que pensé, si desea evitar omitir comandos, también puede hacerlo, pero obviamente no se recomienda a menos que esté en un darse prisa .
fuente