Configurando permissões para pasta comum

2

Estou tentando configurar uma pequena rede doméstica usando o Linux como o servidor de arquivos e tive alguns problemas com isso. para permissões de pasta que não consigo resolver. A configuração:

  1. Um servidor de arquivos Linux do Ubuntu 14.04 com o Samba configurado.
  2. Algumas máquinas clientes do Windows 7.

Todas as pessoas da casa receberam um nome de usuário / senha para o servidor de arquivos Linux e podem fazer login no servidor usando SSH / Putty / qualquer outra coisa.

O Samba no servidor de arquivos Linux foi configurado para compartilhar alguns diretórios em modo gravável para o Windows, e todas as máquinas clientes podem ver isso e ler e gravar arquivos. Como exemplo, digamos que / media / data / photos é compartilhado como \ fs01 \ photos. Todos os usuários do Windows podem escrever para este diretório de fotos e funciona muito bem. Eles podem criar subdiretórios, colocar fotos, qualquer coisa, tudo funciona.

O problema é que eu quero que esses compartilhamentos (e todos os diretórios abaixo deles) sejam gratuitos para todos. Qualquer usuário deve ser capaz de editar / renomear / mover / copiar / excluir qualquer arquivo dessas pastas. O problema surge quando um usuário tenta mover / organizar / remover / renomear arquivos criados por outros usuários. Então, vamos dizer que o usuário A cria / media / data / photos / 2014NewYearsEve e o usuário B decide que deveria ter sido / media / data / photos / 2014 / NewYearsEve. Da maneira que eu configurei agora, continuo recebendo erros de permissão.

Eu entendo que por padrão no Linux, o usuário que criou o arquivo é o dono do arquivo, então eu entendo de onde os erros estão vindo, e eu sei como corrigi-lo manualmente (chown e chmod, e então qualquer usuário pode manipular os arquivos bem). Mas, como os compartilhamentos (por exemplo, / media / data / photos) são "comuns", desejo que as permissões reflitam isso automaticamente quando o arquivo e os diretórios forem criados. Vindo de um plano de fundo do Windows (esta é minha primeira configuração real do Linux), estou bastante confuso sobre como corrigir isso.

Aqui está o que eu tentei (baseado em um monte de artigos na internet, stackexchange e outras coisas):

Mudei o grupo do diretório / media / data / photos para "nogroup" (sudo chown nobody: nogroup / media / data / photos) Eu defino o sinalizador setgid no diretório / media / data / photos (sudo chmod g + s / mídia / data / photos).

Depois disso, os arquivos colocados nos compartilhamentos parecem obter a atribuição de grupo correta (ls -l mostra nogroup para os novos arquivos e subdiretórios). Mas o direito de executar necessário (acho que é necessário certo?) Para mover arquivos parecem estar faltando do grupo (a permissão em ls -l é -rwxrw-rw- para arquivos e drwxr-sr-x + para diretórios).

Como obtenho o Linux para adicionar automaticamente o bit x para o grupo para arquivos e diretórios? Ou, mais geralmente, como faço para liberar as ações para todos?

    
por syazdani 01.01.2015 / 19:38

1 resposta

1

Crie um novo grupo chamado Família. Conceda permissões de família RWX, ou seja, 777, para todas as pastas anexadas ao compartilhamento de samba e torne a família o grupo proprietário das pastas. Em seguida, adicione cada membro da família à família do grupo.

  1. groupadd family
  2. chown -Rv root:family /linux/path/to/samba/share
  3. useradd -G family *username for mom*
  4. useradd -G family *username for dad*
  5. Repita as etapas 3 e 4 até que todos os membros da família estejam na família.
  6. chmod -Rv 0777 /linux/path/to/samba/share

Novos itens herdarão as permissões do proprietário, mas se o proprietário for um membro em family , não importará

    
por 01.01.2015 / 19:44