estou montando uma unidade de rede usando o seguinte em /etc/fstab:
$ sudo nano /etc/fstab
//XXX.XXX.XXX.XXX /mnt/bilder cifs auto,username=XXXX,password=XXXX,vers=3.0,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 0 0
O que funciona perfeitamente. Quando agora verifico as permissões em /mnt
$ ls -la /mnt
total 8
drwxr-xr-x 3 root root 4096 Jun 23 13:37 .
drwxr-xr-x 22 root root 4096 Jul 12 14:16 ..
drwxrwxrwx 2 pi pi 0 Aug 1 15:04 bilder
então parece que o usuário pi (onde estou logado) tem permissões rwx como proprietário. Na verdade, todos deveriam ter rwx.
Mas quando tento tocar em /mnt/bilder, estou sendo negado
$ touch /mnt/bilder/test
touch: cannot touch '/mnt/bilder/test': Permission denied
Como e por que isso acontece?
Responder1
As permissões reais de arquivo do Windows não são mostradas quando você monta um compartilhamento SMB. O que você vê é apenas o que suas file/dir_mode
opções fstab dizem ao cliente CIFS paramostrar, mas essas opções não permitem ignorar a segurança.
(As permissões de arquivo do Windows/SMB são um pouco mais extensas do que apenas rwx
e precisariam de ferramentas diferentes, como 'getcifsacl', para serem exibidas corretamente.)
As verificações de acesso reais, no entanto, ainda são feitas pelo servidor de acordo com as permissões de arquivo definidas no Windows e são verificadas na conta de usuário ( username=
) usada para montar o compartilhamento.
Mesmo que o servidor execute o Samba no Linux, a mesma coisa se aplica: todas as verificações de acesso são baseadas em contas, e embora o clientepoderiamostrar as permissões reais de arquivo do Linux (se tiver um kernel recente o suficiente que suporte esta extensão SMBv3), ele não poderá substituí-las.