Como configurar o compartilhamento do nfs para usuários com permissões de gravação

2

Usamos o ubuntu linux em desktops com autenticação ldap. Tanto no servidor quanto nos clientes, temos usuários e grupos idênticos.

Eu configurei o servidor nfs com compartilhamento público, que deve estar disponível para todos os usuários com permissões de gravação. Por exemplo, um arquivo criado pelo usuário, outro pode remover esse arquivo por padrão.

Eu tenho os seguintes requisitos:

  1. Eu não quero alterar umask padrão (0022) nas máquinas dos clientes.
  2. Eu não quero usar o inotify para permissões de alteração quando os arquivos são alterados no servidor, porque ele diminui o acesso à rede com um compartilhamento nfs e não funciona estável.

Como reproduzir:

Eu crio uma pasta inicial com acl padrão com as seguintes permissões para a pasta diretório de propriedade do grupo inoffice

$ setfacl -m default:g:inoffice:rwx directory/
$ setfacl -m g:inoffice:rwx directory/
$ getfacl directory/

# file: directory/
# owner: root
# group: root
user::rwx
group::r-x
group:inoffice:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:inoffice:rwx
default:mask::rwx
default:other::r-x

Em teoria: 1. Esse diretório deve ser gravável para usuários no grupo inoffice . 2. Todos os novos arquivos e diretórios herdam group:inoffice:rwx permissions

Suponha que tenhamos dois usuários (clientes):

user1 with primary group __USERS__ and supplementary group inoffice 
user2 with primary group __USERS__ and supplementary group inoffice 

Suponha que user1 entrou na pasta nfs directory em sua própria máquina e criou uma pasta chamada 'folder_user1'

getfacl folder_user1
# file: folder_user1
# owner: user1
# group: user1_group
user::rwx
group::r-x
group:inoffice:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:inoffice:rwx
default:mask::rwx
default:other::r-x

Em seguida, o usuário2 pode excluir essa pasta devido a default:group:inoffice:rwx permissions

Mas se o diretório de cópias user1 (em vez de criar) for directory . As permissões resultantes serão:

$ getfacl folder_copied_by_user1
# file: folder_copied_by_user1
# owner: user1
# group: user1_group
user::rwx
group::r-x
group:inoffice:rwx      #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:inoffice:rwx
default:mask::rwx
default:other::r-x

Eu sei sobre a diferença nas chamadas de método abertas quando copiamos e criamos arquivos no linux. Eu também sei sobre o umask, que é aplicado após a criação da operação do arquivo.

Não consigo encontrar uma solução para compartilhar arquivos na rede com o protocolo nfs no meu caso.

Ajude-me a encontrar uma solução alternativa.

    
por vskubriev 30.04.2014 / 14:05

1 resposta

0

Eu encontrei uma solução simples neste artigo .

Se usarmos um grupo primário separado para cada usuário, poderemos usar umask = 002. As permissões do grupo não serão cortadas pela umask. E podemos definir permissões usando setgid ou acl.

Mas a solução proposta complica o gerenciamento de usuários, ou seja, a criação e exclusão. Sendo administartor LDAP você precisa criar um grupo primário para todos os usuários do ldap. Excluir o grupo do usuário principal, quando excluir um usuário desnecessário.

Além disso, gostaria de observar que:

Eu tenho devido a migração do zentyal no openldap usa o mesmo grupo principal ( USERS ) para todos os usuários recém-criados.

Por um lado, simplifica o gerenciamento de usuários, por outro lado, não resolve o problema com uma pasta compartilhada para eles.

    
por 06.05.2014 / 08:07