¿Cómo monto un recurso compartido CIFS a través de FSTAB y le doy RW completo al invitado?


33

Quiero crear una carpeta pública que tenga acceso completo a RW. El problema con mi configuración es que los usuarios de Windows no tienen problemas como invitados (pueden RW y Eliminar), mi cliente Ubuntu no puede hacer lo mismo. Solo podemos escribir y leer, pero no crear o eliminar.

Aquí está mi smb.conf de mi servidor:

[global]
    workgroup = WORKGROUP
    netbios name = FILESERVER
    server string = TurnKey FileServer

    os level = 20
    security = user
    map to guest = Bad Password
    passdb backend = tdbsam
    null passwords = yes

    admin users = root
    encrypt passwords = true
    obey pam restrictions = yes
    pam password change = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

    add user script = /usr/sbin/useradd -m '%u' -g users -G users
    delete user script = /usr/sbin/userdel -r '%u'
    add group script = /usr/sbin/groupadd '%g'
    delete group script = /usr/sbin/groupdel '%g'
    add user to group script = /usr/sbin/usermod -G '%g' '%u'

    guest account = nobody

    syslog = 0
    log file = /var/log/samba/samba.log
    max log size = 1000

    wins support = yes
    dns proxy = no

    socket options = TCP_NODELAY
    panic action = /usr/share/samba/panic-action %d


[homes]
    comment = Home Directory
    browseable = no
    read only = no
    valid users = %S

[storage]
    create mask = 0777
    directory mask = 0777
    browseable = yes
    comment = Public Share
    writeable = yes
    public = yes
    path = /srv/storage

La siguiente entrada de FSTAB no proporciona acceso completo R / W al recurso compartido.

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0

Esto tampoco funciona

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

El uso de la siguiente ubicación en Nemo / Nautilus sin el recurso compartido que se está montando funciona:

smb://192.168.0.5/storage/

Información extra. Acabo de notar que si copio un archivo al recurso compartido después del montaje, mi cliente Ubuntu inmediatamente hace que "nadie" sea el propietario, y el grupo "no group" ha leído y escrito, con todos los demás como de solo lectura.

ingrese la descripción de la imagen aquí

¿Qué estoy haciendo mal?


Entonces, déjame ver: puedes montar el recurso compartido desde tu cliente Ubuntu (como root supongo dadas tus entradas fstab), luego puedes leer y escribir, pero no puedes eliminar o crear. ¿Cómo es que puedes copiar (para copiar, crear un archivo es imprescindible)?
— Enero

Respuestas:


56

Resulta que necesito agregar un UID local (cliente) a la línea de montaje en FSTAB para que esto funcione. Llegué a esto por pura fuerza bruta:

//192.168.0.5/storage /media/myname/TK-Public/ cifs guest,uid=myuser,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

3
Un problema común, y no hay respuesta en absoluto ... ¡Increíble!
— dan3

Ohhh, justo lo que necesitaba ... muchas gracias, ¡buscando esto por horas!
— pkdkk

1
Otro problema: asegúrese de que cifs-utilsesté instalado (para mí no se instaló en 16.04 después de instalar "main" samba pkg). Si no lo tiene instalado, obtendrá el error 'mala fs / mala opción'.
— bshea

Después de instalar eso, utilicé permisos en otra respuesta y agregué: //10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 a /etc/fstabentonces sudo mount -a. Parece montar / escribir bien ahora.
— bshea

Para mí, una versión un poco más simple (sin uid) funcionó para montar correctamente R / W para todos los usuarios de un recurso compartido público desde otra máquina Linux://server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
— woohoo

6

CIFS generalmente no tiene ningún concepto de usuario y grupo, por lo que montar un recurso compartido cifs mostrará por defecto al usuario y al grupo como 'nadie':

drwxdrwxdrwx. 3 nobody nobody 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 nobody nobody 0 Sep 29 09:00 ..

Como no eres 'nadie', Linux no te permitirá escribir en nada que no tenga permiso 0777 a menos que uses sudo. Para solucionar esto, agregue uid = mylogin, gid = mygroup a fstab y hará que el recurso compartido aparezca como si fuera su propio directorio:

drwxdrwxdrwx. 3 mylogin mygroup 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 mylogin mygroup 0 Sep 29 09:00 ..

Ahora tiene control total sin la necesidad de sudo.

En realidad, esto no cambia nada en el servidor, ya que el servidor no aplica nada. Le está diciendo a Linux que finja que usted es el propietario y que le otorgue acceso sin restricciones.


1
Sí, si usa invitado / nadie / etc. Asegúrese de que las carpetas principales tengan lectura / escritura / ejecución completas. Utilizo esta permanente en algunos recursos compartidos de red interna, por lo que no es un problema de seguridad. Upvoted
— bshea

Pero, contrario a su publicación, pude usar userid 'nobody' (para el montaje) cuando tenía las opciones correctas para el montaje. Vea mis otros comentarios ..
— bshea

Esta es una solución mucho mejor que establecer permisos extensos para todos en los archivos montados. Y funciona.
— j08lue

5

Ya casi has llegado. Abra FSTAB usando:

sudo nano /etc/fstab

En la última línea (o una de las últimas líneas) coloque:

//192.168.0.5/storage /media/myname/TK-Public/ cifs username=YOURUSERNAME,password=YOURPASSWORD,iocharset=utf8,file_mode=0777,dir_mode=0777

*** (esto es todo una larga línea)

Ctrl- Xpara cerrar, Yguardar y Entrar para sellar el trato.

Ahora reiniciar por:

sudo reboot

¡Y debe tener el control total de la red compartida en su dispositivo Linux!


1
Es posible que desee reemplazar esa contraseña con una contraseña de ejemplo.
— Spotlight

9
No es necesario reiniciar para montar fstabentradas. Solo mount <DEVICE>o mount <MOUNTPOINT>incluso mount -ahacer el trabajo bien.
— David Foerster

1

Tuve este problema y fue porque el usuario del recurso compartido no era el propietario. Lo arreglé con "sudo chown {nombre de usuario}: {nombre de usuario} / {compartir} / {ruta}" después de eso pude mover y eliminar archivos.

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.