Arquivo criado em pasta no Samba sem acesso de escrita

Iniciado por tiagouepa, 27 de Julho de 2022, 14:11

tópico anterior - próximo tópico

tiagouepa

Olá boa tarde!

Estou rodando o Samba 4.15.5-Ubuntu no Ubuntu Server 22.04, acessos aos mapeamentos e restrições de acessos por grupos estão normais na rede .. acontece que quando o usuário cria um arquivo ele é criado com as permissões  -rwxrwxr-x 1 tiago tiago  0 jul 27 13:16 'teste.txt' dessa forma outros usuários do mesmo grupo e pasta não conseguem editar .. a exemplo uma planilha Excel. Então estou rodando script para modificar os arquivos para -rwxrwxrwx

Estou utilizando as opções no compartilhamento do smb.conf
   read only = no
   writable = yes
   force create mode = 0777
   force directory mode = 0777
   create mask = 0777
   directory mask = 0777
   browseable = yes

Já pesquisei vários config do samba mas não achei nada além do force no smb.conf ...

Alguém pode ajudar? Muito obrigado!!

zekkerj

Crie um grupo cujo nome faça sentido para esses usuários, faça com que todos os usuários dessa pasta pertençam a esse grupo.

Adicione as diretivas abaixo às configurações da pasta:

force group = nomeDoGrupo
force create mode = 0660
force directory mode = 0770

Retire também as diretivas "create mask" e "directory mask" que vc adicionou, elas não fazem o que você espera.

Observe também que isso só vai resolver para os arquivos/pastas criados de agora em diante; arquivos e pastas já existentes precisam ter seu grupo corrigido, e ganhar permissão de serem lidos e alterados por esse grupo. Para isso, abra uma janela de comandos e execute os comandos abaixo:

cd /caminho/da/pasta
chgrp -R nomeDoGrupo .
chmod -R g+rw .
find . -type d -exec chmod g+x \{\} \;


Atenção: os comandos acima são recursivos, ou seja, eles vão alterar todos os arquivos e pastas dentro e abaixo do diretório corrente. Certifique-se de executá-los na pasta correta, ou o resultado pode ser desastroso.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tiagouepa

Bom dia zekkerj obrigado por ajudar..

Testei as configurações (exceto force group) mas o novo arquivo gerado ficou com as permissões  -rwxrw-r--

Desculpe pois acabei não detalhando melhor o cenário aqui:
A estrutura das pastas no servidor contém um raiz extensa e por isso não tenho como colocar o force group, pois na configuração do Samba tenho apenas a pasta raiz .. para todas as pastas dos níveis abaixo, cada uma possui seu grupo e seus respectivos usuários ..assim todo controle de acesso estão vinculados aos grupos nas pasta,  eu imagino que a melhor opção para meu caso seria apenas conseguir forçar as permissões na criação de arquivos para 777 -rwxrwxrwx

Pesquisei sobre umask para alterar de forma geral, mas talvez não apliquei de forma correta ..

zekkerj

OK.
Não é o melhor dos cenários, e no meu entendimento também não é a melhor escolha de estrutura; mas tem como contornar.

O problema está acontecendo pois cada usuário tem seu próprio grupo pessoal como grupo primário; a solução seria alterar os usuários de forma que seus grupos primários fossem os grupos organizacionais. Assim, os arquivos e pastas criados por eles passariam a pertencer ao grupo organizacional, e não ao grupo do usuário.

Se não me engano, há uma configuração que faz com que isso aconteça automaticamente, não tenho de cabeça no momento qual é.

Outra solução seria você passar a usar uma autenticação externa, como AD ou LDAP. Isso inclusive te levaria mais perto do que parece ser seu ambiente.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tiagouepa

boa tarde,

Entendi, vou rever com o pessoal aqui e tentar melhorar essa estrutura que temos .. assim conseguimos fazer pelas regras do Samba mesmo..

Sobre o grupo é complicado pq os usuários que são corporativos pertencem a mais de 1 grupo, quanto a autenticar via AD ou LDAP, e intenção futura aqui é migrar o AD para o Samba e aposentar o Windows Server rss...

Muito obrigado pela ajuda!!

zekkerj

É, se os usuários pertencem a mais de um grupo, não tem o que fazer --- só mesmo usando um compartilhamento por grupo, e forçando o grupo certo em cada um deles.

O problema aí é que os arquivos são armazenados no Linux, e portanto seguem as regras do Linux para acesso, não do Samba. Assim, quando o arquivo ou pasta são criados, eles ganham acesso conforme o UID/GID do usuário, sem levar em conta grupos secundários, a menos que seja definido manualmente.

Se você me garante que os arquivos estão organizados em pastas, podemos tentar usar o bit de SETGID na pasta mais alta, assim os arquivos criados dentro dela vão ganhar acesso automático para o mesmo grupo da pasta; mas não sei se é possível fazer isso de forma automática com mais de um grupo.

Seria mais ou menos assim:

cd /caminho/da/pasta

chgrp -R grupo1 pastaDoGrupo1
chmod -R g+s pastaDoGrupo1
chmod -R g+rw pastaDoGrupo1
find pastaDoGrupo1 -type d -exec chmod g+x \{\} \;

chgrp -R grupo2 pastaDoGrupo2
chmod -R g+s pastaDoGrupo2
chmod -R g+rw pastaDoGrupo2
find pastaDoGrupo2 -type d -exec chmod g+x \{\} \;

...

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tiagouepa

Bom dia,

Cara vc é fera, resolveu o problema usando o bit de SETGID.

Muito obrigado mesmo!!