Bits de permissão não sendo impingidos no compartilhamento samba

12

Eu tenho um problema em que os bits de permissão não estão sendo impostos em um compartilhamento de samba usando um cliente Linux. Eu tenho o samba configurado no servidor para forçar um certo usuário, grupo e bits de permissão, e isso funciona conforme o esperado até eu tocar no arquivo ou ele se tornar o destino do redirecionamento de entrada / saída.

Aqui está o que está acontecendo:

user@linuxbox:~-->ls -l ~/archive/foo.txt
ls: cannot access /home/user/archive/foo.txt: No such file or directory
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rw-rw-r-- 1 archive archive 0 2010-09-13 20:29 /home/user/archive/foo.txt
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rwxrwxrwx 1 archive archive 0 2010-09-13 20:30 /home/user/archive/foo.txt

Observe que quando toco no arquivo existente, seus bits de permissão são 0777. Eles deveriam ser 0664 como quando foram criados. Como posso aplicar 0664 no arquivo existente?

Eu tenho a versão 3.0.24 no servidor e a versão 3.4.7 no cliente. Aqui está o meu smb.conf:

[global]
interfaces = egiga0
unix charset = UTF8
workgroup = workgroup
netbios name = foo
server string = Foo
security = USER
map to guest = bad user
host msdfs = no
encrypt passwords = yes

[archive]
comment = File Archive
path = /home/archive
force user = archive
force group = archive
read only = yes
write list = @archive
guest ok = yes
create mask = 0
force create mode = 0664
security mask = 0
force security mode = 0664
directory mask = 0
force directory mode = 0775
directory security mask = 0
force directory security mode = 0775
Jonathon Watney
fonte
O que há no seu smb.conf?
Grizly 14/09/10
Coloquei o conteúdo do meu smb.conf. Francamente, não tenho certeza se preciso de todo o modo explícito e bits de máscara.
Jonathon Watney
@ Jonathon todo o seu touching parece estar em um sistema * nix ... é o sistema que você está criando o arquivo no Windows? ou você está criando o arquivo a partir de um sistema Windows? ou é este nix * a * nix via samba (caso em que isso não e samba NFS)
xenoterracide
@xenoterracide, estou tocando em um arquivo no compartilhamento usando um cliente Linux; Eu vou * nix para * nix neste caso. Há uma mistura de máquinas Windows, Mac e Linux conectadas a este serviço de samba.
Jonathon Watney
Tem certeza de que suas máscaras são boas? criar máscara, máscara de segurança, máscara de diretório. Os documentos não são claros sobre o clima e um '0' por si só é válido para as máscaras. Fora isso ... que estranho.
Gabe.

Respostas:

2

As permissões do samba funcionam apenas nos clientes de rede SMB (ou seja, Windows). Se você deseja aplicar isso no servidor (e em qualquer cliente NFS), é necessário definir o valor em todos os diretórios.

primeiro corrija os arquivos que estão lá:

chown -R archive /home/archive 
chgrp -R archive /home/archive 
find /home/archive -type d -exec chmod 0775 {} \;
find /home/archive -type f -exec chmod 0664 {} \;

então imponha isso com o grupo sticky bit

find /home/archive -type d -exec chmod g+s {} \;

Isso não é infalível, mas resolve 99% desse tipo de problema.

Atenciosamente DaveF

Resultado na minha caixa Solaris:

davef@dalek[10]$ cd /proj/ftptmp
davef@dalek[11]$ ls -ld .
drwxrwsr-x  60 root     ftpusers     377 Oct  5 09:31 ./
davef@dalek[12]$
davef@dalek[12]$ ls -l foo.txt
foo.txt: No such file or directory
davef@dalek[13]$ touch foo.txt
davef@dalek[14]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[15]$ touch foo.txt
davef@dalek[16]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[17]$
davef@dalek[17]$ umask
2
davef@dalek[18]$
David Allan Finch
fonte
Obrigado. Finalmente tive a chance de tentar isso, mas infelizmente o problema permanece.
Jonathon Watney
Gostaria de saber se pode ser o seu umask?
David Allan Finch
Meu umask é 0022. Alguma outra idéia? :)
Jonathon Watney
Eu preciso experimentá-lo na minha caixa Linux. Ainda não tinha tempo. BTW usamos NFS Unix para Linux etc não SMB.
David Allan Finch