Les bits d'autorisation ne sont pas appliqués sur le partage samba

12

J'ai un problème où les bits d'autorisation ne sont pas appliqués sur un partage samba à l'aide d'un client Linux. J'ai samba configuré sur le serveur pour forcer un certain utilisateur, groupe et bits d'autorisation et cela fonctionne comme prévu jusqu'à ce que je touche le fichier ou qu'il devienne la cible de la redirection d'E / S.

Voici ce qui se passe:

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

Remarquez que lorsque je touche le fichier existant, ses bits d'autorisation sont 0777. Ils sont censés être 0664 comme lors de sa création. Comment puis-je appliquer 0664 sur le fichier existant?

J'ai la version 3.0.24 sur le serveur et la version 3.4.7 sur le client. Voici mon 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
la source
Que contient votre smb.conf?
Grizly
J'ai mis le contenu de mon smb.conf. Franchement, je ne sais pas si j'ai besoin de tous les bits de mode explicite et de masque.
Jonathon Watney du
@Jonathon tout votre touching semble être sur un système * nix ... est le système que vous créez le fichier sur Windows? ou créez-vous le fichier à partir d'un système Windows? ou est-ce * nix à * nix via samba (auquel cas pourquoi samba et non nfs)
xenoterracide
@xenoterracide, je touche un fichier sur le partage en utilisant un client Linux; Je vais * nix à * nix dans ce cas. Il existe un mélange de machines Windows, Mac et Linux se connectant à ce service samba.
Jonathon Watney du
Êtes-vous sûr que vos masques sont bons? créer un masque, un masque de sécurité, un masque de répertoire. Les documents ne sont pas clairs sur la météo, un «0» en lui-même est valable pour les masques. A part ça ... c'est bizarre.
gabe.

Réponses:

2

Les autorisations samba ne fonctionnent que sur les clients réseau SMB (c'est-à-dire Windows). Si vous souhaitez appliquer cela sur le serveur (et tous les clients NFS), vous devez définir le bit collant sur tous les répertoires.

corrigez d'abord les fichiers qui s'y trouvent:

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

puis appliquer cela avec le bit collant de groupe

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

Ce n'est pas infaillible mais résout 99% de ce type de problème.

Cordialement DaveF

Résultat sur ma box 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
la source
Merci. J'ai enfin eu l'occasion de l'essayer, mais malheureusement, le problème demeure.
Jonathon Watney du
Je me demande si ça pourrait être ton umask?
David Allan Finch du
Mon umask est 0022. D'autres idées? :)
Jonathon Watney
Je dois l'essayer sur ma box Linux. Pas encore eu le temps. BTW nous utilisons NFS Unix pour Linux etc pas SMB.
David Allan Finch