Como forçar permissões específicas para novos arquivos / pastas no servidor de arquivos Linux?


14

Estou tendo um problema com a minha instalação do Ubuntu 9.10 (servidor de arquivos) e suas permissões de samba. Fazer login e ler funciona bem. No entanto, a criação de novos diretórios pelos usuários restringe o acesso a outros usuários. Por exemplo, se Bob (usuário do Windows que mapeia a unidade) cria uma pasta no diretório, Jane (usuário do Mac que simplesmente monta o SMB) pode lê-lo, mas não pode gravar nele - e vice-versa. Devo então ir no diretório CHMOD 777 para que todos sejam felizes. Eu tentei editar as opções "create / directory mask" e "force" no arquivo smb.conf, mas isso não parece ajudar.

Estou prestes a recorrer ao CRONTABing uma rotina chmod recursiva, embora tenha certeza de que essa não é a solução. Como faço para que todos os novos itens sejam sempre 777? Alguém tem alguma sugestão para corrigir essa situação sempre ocorrente?

Melhor


Grupos de usuários e outras permissões nativas, não chmod 777.
Warner

Respostas:


13

Normalmente, uso a funcionalidade nativa do SAMBA para gerenciamento de permissões e grupos em compartilhamentos. Por exemplo..

force user=user1
force group=sharedgroup
create mask=775

Você especificaria essas configurações no compartilhamento. Certifique-se de recarregar o SAMBA após a alteração na configuração, o que pode ser feito através do script init.


1
No entanto, o post diz que ele fez isso e não funcionou ....
Mistiry

2
Então ele fez errado. Funciona.
Warner

Não tenho certeza do que se passa. Eu tentei manualmente e via Webmin sem sucesso. Talvez minha escolha de grupo esteja errada? Eu tentei usar "usuários", bem como vários grupos criados manualmente, dos quais todos foram feitos membros. Independentemente do que eu faço, os usuários não podem manipular nada que não foram colocados. A única "solução" é fazer com que todos os usuários efetuem login (ou monte) como GUEST, o que gera confusão.
Humble_coder

O SAMBA usa uma combinação de permissões e configurações do sistema de arquivos na configuração. Se os usuários não tiverem write listpermissão para gravar na configuração de compartilhamento ou não, ele não funcionará. Se o usuário no qual o SAMBA executa não puder acessar os diretórios, ele não funcionará. Os usuários devem ser membros do grupo apropriado, os diretórios e os arquivos devem pertencer a esse grupo e ter o bit gravável definido para o grupo. Você também pode verificar os logs do SAMBA.
Warner

2
Estou procurando há muito tempo! Obrigado! :) Está funcionando como esperado.
Nagyi

2

Defina as permissões no diretório como 2777, assim:

chmod 2777 /shared/dir

Isso faz com que todos os arquivos e pastas no diretório '/ shared / dir' herdam as permissões do diretório superior, neste caso 777.

Depois, faça isso para garantir que todos os arquivos tenham as permissões apropriadas:

chmod -R 777 /shared/dir

Sobre a única situação em que publicamente é aceitável é com /tmp.
Warner

1
Sim, provavelmente é melhor usar 774 ou mesmo 770, dependendo da situação. Mas ele perguntou como torná-los todos '777', então apenas o usei no meu exemplo.
Mistiry 8/07

3
Sim, mas como garantir que todos os arquivos futuros copiados para esse diretório pela rede recebam as mesmas permissões, independentemente de suas permissões iniciais? Não tenho problemas ao fazê-lo manualmente, simplesmente o quero automatizado.
Humble_coder

2
Isso não funciona. O sinalizador setgid para pastas define o grupo de novos arquivos e pastas, não permissões, e executar chmod o tempo todo não é aceitável. Preciso de uma solução que não esteja relacionada ao samba, para o Steam no Linux, para que eu possa compartilhar a biblioteca entre os usuários.
Sam Watkins

2

Sei que essa é uma pergunta antiga, mas recentemente tive um problema semelhante e aqui está como resolvi:

[compartilhar]
máscara de segurança = 0770
criar máscara = 0770
forçar modo de criação = 0660
comment = compartilhamento Samba para TI
caminho = / invasão / compartilhamento
navegável = SIM
convidado ok = não
lista de gravação = raiz, @ "DOMAIN + it_nfs"
forçar grupo = DOMAIN + it_nfs

Isso garante que os usuários tenham que estar no grupo de segurança "it_nfs" no AD, todos os arquivos serão gravados com o grupo "it_nfs" e todos os arquivos serão gravados com pelo menos 0660 e no máximo 0770 permissões. Forçar o ID do grupo garante que qualquer pessoa nesse grupo possa ler / gravar os arquivos no compartilhamento. Caso contrário, você terminará com situações em que um arquivo escrito como bob: bob não pode ser escrito por charlie: charlie, mesmo que os dois estejam em "it_nfs".


0

Pelos comentários da resposta aceita, ele realmente não resolveu o problema do OP, e nem as outras respostas, se o OP tivesse o mesmo problema que eu:

Tendo o compartilhamento em uma partição NTFS / FAT.

Lembre-se disso ao conectar seu disco da área de trabalho a um NAS para compartilhar seus álbuns de família: fs monte parâmetros para usuário, grupo, modos de criação etc. substitua o que estiver configurado para o Samba! ;)

(Por exemplo, no meu caso, independentemente de smb.conftudo o que foi criado root, com 777- conforme o fstab defaultspara a montagem do fusível NTFS ...)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.