Como faço para montar um compartilhamento CIFS via FSTAB e dar RW completo para Convidado

26

Eu quero criar uma pasta pública que tenha acesso total ao RW. O problema com a minha configuração é que os usuários do Windows não têm problemas como convidados (eles podem RW e Delete), meu cliente Ubuntu não pode fazer o mesmo. Nós só podemos escrever e ler, mas não criar ou apagar.

Aqui está o meu smb.conf do meu 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

A seguinte entrada FSTAB não produz acesso total de R / W ao compartilhamento.

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

Isso não funciona

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

Usar o seguinte local no Nemo / Nautilus sem o compartilhamento que está sendo montado funciona:

smb://192.168.0.5/storage/

Informação extra. Acabei de notar que, se eu copiar um arquivo para o compartilhamento após a montagem, meu cliente Ubuntu imediatamente fará com que "nobody" não seja o proprietário e o grupo "no group" tenha lido e escrito, com todos os demais como somente leitura. >

O que estou fazendo de errado?

    
por Kendor 26.06.2013 / 22:17

4 respostas

41

Acontece que preciso adicionar um UID local (cliente) à linha de montagem no FSTAB para que isso funcione. Eu cheguei a isso através da força 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
    
por Kendor 27.06.2013 / 16:15
5

O CIFS geralmente não possui nenhum conceito de usuário e grupo, portanto, a montagem de um compartilhamento cifs será padronizada para mostrar usuário e grupo como 'nobody':

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

Como você não é 'nobody', o Linux não permitirá que você grave nada que não possua a permissão 0777, a menos que você use o sudo. Para corrigir isso, adicione uid = mylogin, gid = mygroup ao fstab e ele fará com que o compartilhamento apareça como se fosse seu próprio diretório:

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

Agora você tem controle total sem a necessidade de sudo.

Isso não está realmente alterando nada no servidor, já que o servidor não está impondo nada. Está dizendo ao Linux para fingir que você é o dono e lhe dá acesso irrestrito.

    
por maharvey67 29.09.2015 / 18:52
3

Você está quase lá. Abra o FSTAB usando:

sudo nano /etc/fstab

Na última linha (ou nas últimas linhas) coloque:

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

*** (isso é tudo uma linha longa)

Ctrl - X para fechar, Y para salvar e Enter para selar o acordo.

Agora reinicie por:

sudo reboot

E você deve ter controle total do compartilhamento de rede no seu dispositivo Linux!

    
por AndyShap 28.04.2016 / 00:46
1

Eu tive esse problema e foi porque o usuário do compartilhamento não o possuía. Eu corrigi-lo com "sudo chown {nome de usuário}: {username} / {share} / {path}" depois que eu poderia mover e excluir arquivos.

    
por Andrew Cleveland 31.05.2017 / 00:17