Estou executando o Samba 4.9.1 no RHEL7, associado a um domínio Win AD. Em um compartilhamento, eu defino
force user = foo
, esperando forçar o usuário local foo. No entanto, o mesmo nome de usuário também existe no AD e o Samba realmente usa o usuário AD, por exemplo, na criação do arquivo.
getent passwd foo
retorna o usuário local, como esperado, já que /etc/nsswitch.conf lê
passwd: files winbind
group: files winbind
Obviamente, eu defino a opção
winbind use default domain = yes
em smb.conf, e prefiro não mudar isso, já que não tenho certeza de quantas coisas precisaria mudar em outro lugar então...
Alguma dica de como forçar o Samba a procurar usuários locais primeiro?
Atenciosamente, Eric
Bem, como Worthweile pediu, postarei minha solução alternativa como resposta.
setfactl -R -m u:foo:rwX <share_dir> setfactl -R -d -m u:foo:rwX <share_dir>
O primeiro comando concederá ao usuário permissões
foo
de leitura, gravação e execução para todos os arquivos e diretórios dentro do compartilhamento. A capitalX
definirá permissões de execução apenas se for um diretório ou outra pessoa já tiver permissão de execução, conforme indicado emman setfactl
.O segundo adicionará a mesma permissão como padrão para novos arquivos dentro do compartilhamento.
Provavelmente, a opção do Samba
force user
é, na maioria dos casos, uma solução alternativa para gerenciamento insuficiente de privilégios, portanto, essa deve ser a maneira mais limpa (o equivalente do Linux a 'pythonic', talvez?). No entanto, provavelmente ainda haverá situações em que as ACLs não são aplicáveis, portanto, a questão sobreforce user
o comportamento de permanece.