Permissões do compartilhamento cifs montado (compartilhado do FreeNAS)

9

Eu tenho uma instalação do FreeNAS em execução no VirtualBox. Quando tento montar um dos meus compartilhamentos do FreeNAS no Ubuntu 12.10, as permissões no compartilhamento me impedem de entrar no diretório, listar ou criar arquivos.

Minha intenção era fornecer um compartilhamento em que a johnconta do FreeNAS tenha autoridade total e as contas barbarae marktenham acesso somente leitura. No entanto, as permissões do compartilhamento montado me impedem de listar o diretório, sem falar em criar ou ler qualquer arquivo lá.

Estou fazendo algo errado ao montar o compartilhamento?

Vou tentar fornecer mais informações abaixo.

Configurei meu FreeNAS de acordo com as instruções encontradas aqui . O armazenamento resultante possui permissões, como mostrado aqui:

insira a descrição da imagem aqui

(Eu sei que preciso ajustar as permissões de gravação para o grupo.)

No Windows7, não tenho problemas para montar o compartilhamento:

C:\Users\John>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : Orion
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : dibnatri.net


Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . : dibnatri.net
   Description . . . . . . . . . . . : Intel(R) Centrino(R) Wireless-N 1030
   Physical Address. . . . . . . . . : [redacted]
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 192.168.1.100(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Tuesday, May 14, 2013 6:47:24 AM
   Lease Expires . . . . . . . . . . : Friday, June 20, 2149 1:24:02 PM
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DNS Servers . . . . . . . . . . . : 192.168.1.1
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : dibnatri.net
   Description . . . . . . . . . . . : Realtek PCIe FE Family Controller
   Physical Address. . . . . . . . . : [redacted]
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

  [snip]

C:\Users\John>net use
New connections will be remembered.

There are no entries in the list.


C:\Users\John>net use y: /user:john \\192.168.1.20\Tunes
The password is invalid for \\192.168.1.20\Tunes.

Enter the password for 'john' to connect to '192.168.1.20':
The command completed successfully.

Y:\>net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           Y:        \\192.168.1.20\Tunes      Microsoft Windows Network
The command completed successfully.


C:\Users\John>y:

Y:\>dir
 Volume in drive Y is Tunes
 Volume Serial Number is 1D20-98EC

 Directory of Y:\

05/14/2013  06:54 AM    <DIR>          .
05/13/2013  02:58 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  6,131,715,282,944 bytes free

Y:\>copy con test1
sss
^Z
        1 file(s) copied.

Y:\>dir
 Volume in drive Y is Tunes
 Volume Serial Number is 1D20-98EC

 Directory of Y:\

05/14/2013  06:56 AM    <DIR>          .
05/13/2013  02:58 PM    <DIR>          ..
05/14/2013  06:56 AM                 5 test1
               1 File(s)              5 bytes
               2 Dir(s)  6,131,715,447,808 bytes free

Y:\>type test1
sss

No entanto, tentar fazer o mesmo no Ubuntu não funciona tão bem:

[johnd:~] $ ifconfig
eth0      Link encap:Ethernet  HWaddr [redacted]  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:215 errors:0 dropped:0 overruns:0 frame:0
          TX packets:215 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:20073 (20.0 KB)  TX bytes:20073 (20.0 KB)

wlan0     Link encap:Ethernet  HWaddr [redacted]  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4e80:93ff:fe0c:f3a0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2287 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1669164 (1.6 MB)  TX bytes:761260 (761.2 KB)

[johnd:~] $ sudo mount -l
[sudo] password for johnd: 
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
/dev/sda6 on /home type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfsd-fuse on /run/user/johnd/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=johnd)
[johnd:~] $ ls /mnt/
[johnd:~] $ sudo mkdir /mnt/tunes
[johnd:~] $ ls -l /mnt/
total 4 
drwxr-xr-x 2 root root 4096 May 14 07:04 tunes
[johnd:~] $ ls -l /mnt/
total 4
drwxr-xr-x 2 root root 4096 May 14 07:04 tunes

Observe as permissões e o proprietário /mnt/tunesacima. Está prestes a mudar, embora eu não saiba se isso é esperado / correto.

[johnd:~] $ sudo mount -t cifs //192.168.1.20/Tunes /mnt/tunes -o rw,user=john
Password: 
[johnd:~] $ ls -l /mnt/
total 0
drwxrwx--- 2 1001 1003 0 May 14 06:56 tunes

1001é o uid johnno meu FreeNAS e 1003é o gid por userslá. johndeve ter acesso total.

[johnd:~] 1 $ ll /mnt/tunes
ls: cannot open directory /mnt/tunes: Permission denied
[johnd:~] 1 $ cat>/mnt/tunes/test2
bash: /mnt/tunes/test2: Permission denied
[johnd:~] 2 $ 

O que eu estou fazendo errado aqui?

John Dibling
fonte
Observe que me sinto confortável no Linux, mas não sou especialista em nada. Há muito eu não sei sobre permissões, ações, etc.
John Dibling
Você pode precisar passar credenciais CIFS em montar chamada (já faz um tempo desde que eu trabalhei com CIFS montagens), mas verificar este link askubuntu.com/questions/72471/...
rtmie
se você tentar como superusuário, pode listar? cópia de ? rm?
codeScriber
@ John Dibling Por que não criar um compartilhamento CIFS e NFS no mesmo diretório? Em seguida, você pode definir permissões para grupos específicos e adicionar John ao grupo gravável e Barbara e Mark ao grupo somente leitura?
BsdHelper
@BsdHelper: Suponho que funcionaria para clientes * nix, mas o Windows não fala NFS e eu precisaria de acesso de leitura / gravação de qualquer lugar do mundo. Desde que publiquei essa pergunta, abandonei completamente o FreeNAS e adotei uma abordagem DIY. Agora tenho um servidor linux executando uma matriz de 5 TB RAID 5 com as permissões corretas definidas em todos os lugares. Acontece que eu não precisava do FreeNAS. Obrigado por sua sugestão.
John Dibling

Respostas:

2

escreva o mount (/ etc / fstab neste caso) com o parâmetro noperm para instruir o cliente local a ignorar as verificações de permissão. É assim (funciona para mim, uma vez que eu tinha ignorado os direitos de permissão local)

//remote-ip/share /local-path/dir/ cifs  credentials=/your-credential-file,iocharset=utf8,uid=local-user-uid,gid=local-group-id,**noperm** 0 0
palo73
fonte
1

Você precisa adicionar opções para forçar o uid e o gid aos valores desejados em sua máquina cliente, em vez dos valores do servidor. Isso pode ser feito adicionando as opções

uid=xxxx forceuid gid=xxxx forceguid

ao seu comando de montagem.

Solicitar
fonte
Foi isso que experimentei ao montar um compartilhamento CIFs na minha máquina fstab - o ponto de montagem localmente deve ter o usuário local de acesso uid e gid atribuído. As permissões no NAS são secundárias, desde que a combinação correta de usuário / passe para o compartilhamento seja apresentada durante a montagem.
Douggro 26/12/13
0

Isto funciona bem para mim:

  • acesso de gravação para um usuário específico
  • acesso de leitura para todos os outros usuários via conta de convidado

Lembre-se de que, no Unix, os usuários precisam da permissão executável definida para os diretórios que precisam atravessar .

Jan-Philip Gehrcke
fonte
-1

O FreeNAS é baseado em unix e você deseja montá-lo em uma máquina Linux.

Eu acho que você precisa montá-lo com NFS, porque isso também é baseado em Linux, Unix, em vez de CIFS, que foi escrito para máquinas Windows.

sudo mount -t nfs //192.168.1.20/Tunes /mnt/tunes -o user=john
Bart.a
fonte
Você tem certeza sobre isso? Este é um compartilhamento CIFS no lado FreeNAS e deve ser usado por máquinas Windows e Linux.
John Dibling 14/05
Tenho certeza que isso vai funcionar? Não, mas você pode tentar .. Sim, o freeNAS também funcionará no Windows. Mas veja a sua própria imagem da guia de permissões, que permite a escolha entre unix e Windows. Com unix selecionado por que não usar o padrão de montagem protocolo para unix
Bart.a
A imagem que publiquei refere-se a uma seleção entre Windows e Linux ACL . Ainda é um compartilhamento CIFS.
John Dibling 14/05
Isto não é verdade . Se for um compartilhamento CIFS / Samba, tentar montá-lo como um compartilhamento NFS não fará nada. O Linux realmente tem clientes para montar esse tipo de compartilhamento.
esmail