Los bits de permisos no se aplican en samba share

12

Tengo un problema en el que los bits de permiso no se aplican en un recurso compartido de samba con un cliente Linux. He configurado samba en el servidor para forzar ciertos bits de usuario, grupo y permiso, y esto funciona como se esperaba hasta que toco el archivo o se convierte en el objetivo de la redirección de E / S.

Esto es lo que está sucediendo:

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 cuando toco el archivo existente, sus bits de permiso son 0777. Se supone que son 0664 como cuando se creó por primera vez. ¿Cómo puedo aplicar 0664 en el archivo existente?

Tengo la versión 3.0.24 en el servidor y la versión 3.4.7 en el cliente. Aquí está mi 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
fuente
¿Qué hay en tu smb.conf?
Grizly
He puesto el contenido de mi smb.conf. Francamente, no estoy seguro si necesito todo el modo explícito y los bits de máscara.
Jonathon Watney
@Jonathon todo lo que touchparece estar en un sistema * nix ... ¿es el sistema que está creando el archivo en Windows? o estás creando el archivo desde un sistema Windows? o es * nix a * nix a través de samba (en cuyo caso por qué samba y no nfs)
xenoterracide
@xenoterracide, estoy tocando un archivo en el recurso compartido usando un cliente Linux; Voy de * nix a * nix en este caso. Hay una combinación de máquinas Windows, Mac y Linux conectadas a este servicio de samba.
Jonathon Watney
¿Estás seguro de que tus máscaras son buenas? crear máscara, máscara de seguridad, máscara de directorio. Los documentos no son claros sobre el clima, un '0' en sí mismo es válido para las máscaras. Aparte de eso ... qué extraño.
Gabe.

Respuestas:

2

Los permisos de samba solo funcionan en los clientes de red SMB (es decir, Windows). Si desea aplicar esto en el servidor (y en cualquier cliente NFS), debe establecer el bit fijo en todos los directorios.

primero corrija los archivos que están allí:

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 {} \;

luego hacer cumplir esto con el grupo pegajoso

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

Esto no es infalible pero resuelve el 99% de este tipo de problema.

Saludos DaveF

Resultado en mi caja de 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
fuente
Gracias. Finalmente tuve la oportunidad de probar esto, pero desafortunadamente el problema persiste.
Jonathon Watney
Me pregunto si podría ser tu umask?
David Allan Finch el
Mi umask es 0022. ¿Alguna otra idea? :)
Jonathon Watney
Necesito probarlo en mi caja de Linux. Aún no he tenido tiempo. Por cierto, utilizamos NFS Unix para Linux, etc., no SMB.
David Allan Finch el