Leí muchas preguntas de usuarios y blogs sobre esta preocupación, pero nada solucionó mi problema.
Tengo un host Linux CENTOS con un invitado de Windows 10 instalado en VirtualBox. En Linux, hay un usuario llamado "myuser" que comparte un directorio (777) y está registrado en la base de datos de usuarios de Samba. Este usuario no tiene restricción de contraseña. Se smb.conf
ve así:
[global]
workgroup = WORKSPACE_SHARE
security = user
map to guest = bad user
[public]
path = /home/myuser/public
public = yes
writeable = yes
comment = smb share
printable = no
guest ok = yes
Windows tiene un usuario local con el mismo nombre ("miusuario", sin contraseña establecida), uso compartido de archivos e impresoras habilitado, Cliente Microsoft habilitado, grupo de trabajo configurado que coincide con el grupo de trabajo Samba y utiliza una red privada.
En el explorador puedo ver el host de Linux que, de hecho, contiene la carpeta compartida ("pública"). Pero cuando intento acceder a esta carpeta compartida, aparece una alerta de error: No tienes permisos para acceder...
En Internet leí cosas como "Windows 10 usa SMBv3 pero Samba aún no lo admite" y cómo desactivar SMBv3, pero no sirvió de nada.
Incluso la modificación de las políticas de seguridad locales en Windows no funcionó:https://superuser.com/a/916835/408191
¿Cómo puedo solucionar este extraño problema?
Respuesta1
Algunas distribuciones de Linux tienen una implementación llamada SELinux en su núcleo. Lo que representa"Linux con seguridad mejorada"y, entre otras cosas, restringe las acciones de Samba. Si desea crear una carpeta compartida, no basta con especificar permisos de acceso convenientes y una definición en formato samba.conf
. También debe configurar el "Contexto de seguridad" correcto de la carpeta compartida.
Seguir la máscara de permiso y el contexto de seguridad debería ser suficiente:
chmod -R 770 yoursharefolder
chcon -R -t samba_share_t yoursharefolder
También se deben cumplir todas las condiciones que ya se conocen en diferentes wikis:
- El usuario de Unix como propietario del recurso compartido debe agregarse a la base de datos de usuarios de Samba:
smbpasswd -a youruser
- Su máquina Windows debe tener un usuario con el mismo nombre y la misma contraseña establecidos en la base de datos Samba.
- Tu
samba.conf
puede verse así:
samba.conf
(todas las partes en mayúsculas deben personalizarse para su entorno específico):
[global]
workgroup = SAME_WORKGROUP_AS_CONFIGURED_IN_WINDOWS
server string = Samba Server %v
netbios name = HOST_NAME_OF_YOUR_LINUX_MACHINE_ON_NETWORK
security = user
map to guest = bad user
dns proxy = no
[yourshare]
path = /PATH/TO/YOURSHARE
valid users = YOUR_WINDOWS_USER_NAME
browsable = yes
writeable = yes
guest ok = no
read only = no
directory mask = 0770
create mask = 0770
Editar:Tenga en cuenta que los cambios vía chcon
no son permanentes. Para realizar cambios permanentes en el contexto de seguridad, utilice el siguiente comando:
semanage fcontext -a -t samba_share_t /full/path/to/your/share/folder
...y para hacerlo efectivo:
restorecon -v /full/path/to/your/share/folder