Como configurar o servidor de arquivos SAMBA para ser uma aparência do Windows?

4

Estou usando um dispositivo openfiler em um ambiente do Active Directory (W2k8R2 DC). Eu gostaria de fazer meus compartilhamentos, tanto quanto possível parecer com o windows compartilha para os meus usuários. A maioria das coisas funciona bem, mas algumas me deixam louco. O meu maior problema é fazer com que as ACLs vistas pelos clientes do Windows sejam claras:

Editor ACL do Windows

Comovocêpodever,háentradasparaTodos,nobody,CRIADOROWNEReCREATORGROUP.EuseiquetodasessasentradassãomapeadasdeminhasACLsPOSIXcomoowner:group:other.ParaamaioriadosusuáriosdoWindows,éumpoucoconfuso,especialmenteTodosassustaalgumaspessoas,poisachamquetodostêmacesso.Comoeupoderiaconseguirmelivrardessasentradaseapenaster:

  • G-PM-PMFS01-ADM=>AcessoTotal
  • L-PM-PMFS01-DEPOT-C=>Alterar/Modificar
  • L-PM-PMFS01-DEPÓSITO-R=>Somenteleitura

L-PM-PMFS01-DEPOT-Réoúnicogrupoqueestácompletamentecerto.G-PM-PMFS01-ADMélistadocomespecial,mastemacessocompletoporqueéo"grupo primário" no POSIX. L-PM-PMFS01-DEPOT-C é listado com acesso total porque ele tem o rwx no POSIX. Tentei alterar acl map full control , mas não obtive resultados diferentes configurando-o para false .

Então, minha pergunta é: o que devo definir no meu smb.conf para fazer com que quase 100% do windows pareça (e sinta) um servidor de arquivos com samba?

Eu sei que isso é de alguma forma possível em produtos comerciais da EMC ou da NetApp, então acho que deve haver um jeito.

parte atual do compartilhamento de smb.conf

[depot]
    comment = depot
    path = /mnt/vg1/v001/depot
    read only = no
    writeable = yes
    oplocks = yes
    level2 oplocks = yes
    force security mode = 0
    dos filemode = yes
    dos filetime resolution = yes
    dos filetimes = yes
    fake directory create times = yes
    browseable = yes
    csc policy = manual
    veto oplock files = /*.mdb/*.MDB/*.dbf/*.DBF/
    veto files = /*:Zone.Identifier:*/
    create mode = 0770
    directory mode = 2770
    printable = no
    guest ok = no
    hosts allow =  172.16.10.0/24 172.16.30.0/24 172.16.10.0/24
    hosts readonly allow =
    store dos attributes = yes
    map acl inherit = yes
    inherit acls = yes
    inherit owner = yes
    inherit permissions = yes

atual getfacl:

# file: mnt/vg1/v001/depot/
# owner: nobody
# group: g-pm-pmfs01-adm
# flags: -s-
user::rwx
group::rwx
group:l-pm-pmfs01-depot-c:rwx
group:l-pm-pmfs01-depot-r:r-x
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:l-pm-pmfs01-depot-c:rwx
default:group:l-pm-pmfs01-depot-r:r-x
default:mask::rwx
default:other::---
    
por Mose 22.11.2012 / 00:54

2 respostas

1

O problema

Você está usando os mapeamentos POSIX ACL para o tratamento da ACL do Samba. Este é o comportamento padrão (e tem sido há muito tempo), mas se você quiser uma experiência de ACL semelhante a Windows, isso está Fazendo errado já que as ACLs POSIX não possuem vários conceitos e direitos de ACLs NTFS, de modo que o mapeamento permaneça sempre incompleto e "pareça errado".

A solução

O que você está procurando é vfs_acl_xattr . Esse é um método de armazenar ACLs NTFS com recursos completos em atributos estendidos em vez de tentar mapeá-los em ACLs POSIX.

A desvantagem é que o xattr correspondente é avaliado apenas pelo Samba, então a interoperabilidade está sofrendo - as ACLs configuradas através do Samba não estão mais sincronizadas com o que seu host Linux veria (e possivelmente expõe por outros meios como o NFS) e vice-versa - manipular as ACLs do Linux não modificaria as ACLs do NTFS.

O Codez

[global]
   vfs objects = acl_xattr
   map acl inherit = Yes
   store dos attributes = Yes

A leitura adicional

link

    
por 16.09.2015 / 22:45
1

Se você quiser ter uma ideia como no Windows, faça o seguinte,

Se você alterar usando o linux acl ou o windows acl, o openfiler irá sobrescrever.

Para listar o acesso completo completo, você não deve ser verificado na opção de grupo principal (para o grupo que você está tentando listar como acesso total) na seção de configuração de acesso de grupo. em vez disso, você apenas verifica a opção RW sozinha. Marque a opção Primary group algum outro grupo (no meu caso eu verifiquei para unix-group local).

Todos, apache, nenhum grupo será padronizado como carregamento do openfiler. Essas pastas não serão acessíveis a todos de verdade. somente grupos permitidos podem acessar, a menos que não seja uma pasta de acesso público.

Caso você use o servidor samba somente em qualquer distro, você pode conseguir isso usando o linux acl

    
por 16.09.2015 / 22:11