Come si monta una condivisione CIFS tramite FSTAB e si dà RW completo al Guest


33

Voglio creare una cartella pubblica con pieno accesso RW. Il problema con la mia configurazione è che gli utenti Windows non hanno problemi come ospiti (possono RW ed Elimina), il mio client Ubuntu non può fare lo stesso. Possiamo solo scrivere e leggere, ma non creare o eliminare.

Ecco il mio smb.conf dal mio server:

[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 seguente voce di FSTAB non fornisce pieno accesso R / W alla condivisione.

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

Neanche questo funziona

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

L'uso della seguente posizione in Nemo / Nautilus senza la condivisione montata funziona:

smb://192.168.0.5/storage/

Informazioni extra Ho appena notato che se copio un file sulla condivisione dopo il montaggio, il mio client Ubuntu fa immediatamente "nessuno" il proprietario e il gruppo "nessun gruppo" ha letto e scritto, con tutti gli altri in sola lettura.

inserisci qui la descrizione dell'immagine

Che cosa sto facendo di sbagliato?


Quindi, fammi vedere: puoi montare la condivisione dal tuo client Ubuntu (come root presumo date le tue voci fstab), puoi quindi leggere e scrivere, ma non puoi eliminare o creare? Come mai allora è possibile copiare (per la copia, la creazione di un file è un must)?
gennaio

Risposte:


56

Risulta che ho bisogno di aggiungere un UID locale (client) alla linea di montaggio in FSTAB per farlo funzionare. Sono arrivato a questo tramite pura forza 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 comune e nessuna risposta a tutti ... Incredibile!
dan 3

Ohhh, proprio quello di cui avevo bisogno ... grazie mille - cerco questo per ore!
pkdkk,

1
Un altro gotcha: assicurati che cifs-utilssia installato (per me non è stato installato in 16.04 dopo aver installato "main" samba pkg). Se non lo hai installato, otterrai l'errore "bad fs / bad option".
bshea,

Dopo l'installazione ho usato i permessi in altre risposte e ho aggiunto: //10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 a /etc/fstaballora sudo mount -a. Sembra montare / scrivere bene ora.
bshea,

Per me, una versione leggermente più semplice (senza uid) ha funzionato per montare correttamente R / W per tutti gli utenti una condivisione pubblica da un'altra macchina 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 non ha alcun concetto di utente e gruppo, quindi il montaggio di una condivisione cifs mostrerà automaticamente utente e gruppo come "nessuno":

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

Dato che non sei "nessuno", Linux non ti permetterà di scrivere su nulla che non abbia l'autorizzazione 0777 a meno che tu non usi sudo. Per risolvere questo problema, aggiungi uid = mylogin, gid = mygroup a fstab e farà apparire la condivisione come se fosse la tua directory:

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

Ora hai il pieno controllo senza la necessità di sudo.

Questo in realtà non cambia nulla sul server, dal momento che il server non impone nulla. Sta dicendo a Linux di far finta di essere il proprietario e di darti accesso senza restrizioni.


1
Sì se si utilizza guest / nessuno / ecc. Assicurarsi che le cartelle padre abbiano la lettura / scrittura / esecuzione complete. Uso questo perm su alcune condivisioni di rete interne, quindi non è un problema di sicurezza. Eseguito l'upgrade
bshea,

Ma contrariamente al tuo post - Sono stato in grado di utilizzare userid 'nobody' (per il montaggio) quando aveva le opzioni corrette per il montaggio. Vedi i miei altri commenti ..
bshea,

Questa è una soluzione di gran lunga migliore rispetto all'impostazione di autorizzazioni estese per tutti i file montati. E funziona
j08lue,

5

Ci sei quasi. Apri FSTAB usando:

sudo nano /etc/fstab

Nell'ultima riga (o sull'ultima riga) posizionare:

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

*** (questa è tutta una lunga fila)

Ctrl- Xper chiudere, Ysalvare e Invio per sigillare l'affare.

Ora riavvia da:

sudo reboot

E dovresti avere il pieno controllo della condivisione di rete sul tuo dispositivo Linux!


1
Potresti voler sostituire quella password con una password di esempio.
Spotlight

9
Non è necessario riavviare per montare le fstabvoci. Solo mount <DEVICE>o mount <MOUNTPOINT>o addirittura mount -afare il lavoro bene.
David Foerster,

1

Ho avuto questo problema ed era perché l'utente della condivisione non lo possedeva. L'ho corretto con "sudo chown {username}: {username} / {share} / {path}" dopo che ho potuto spostare ed eliminare i file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.