Bity uprawnień nie są egzekwowane przy udostępnianiu samby

12

Mam problem polegający na tym, że bity uprawnień nie są wymuszane na udziale samby za pomocą klienta Linux. Mam skonfigurowaną sambę na serwerze, aby wymuszać określone bity użytkownika, grupy i uprawnień, i działa to zgodnie z oczekiwaniami, dopóki nie dotknę pliku lub nie stanie się celem przekierowania We / Wy.

Oto co się dzieje:

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

Zwróć uwagę, że kiedy dotknę istniejącego pliku, jego bity uprawnień to 0777. Powinny być one 0664, tak jak w momencie pierwszego tworzenia. Jak wymusić 0664 na istniejącym pliku?

Mam wersję 3.0.24 na serwerze i wersję 3.4.7 na kliencie. Oto mój 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
źródło
Co znajduje się w pliku smb.conf?
Grizly,
Umieściłem zawartość mojego pliku smb.conf. Szczerze mówiąc, nie jestem pewien, czy wymagam wszystkich trybów jawnych i bitów maski.
Jonathon Watney
@Jonathon touchwydaje się, że cały twój system jest w systemie * nix ... czy system, w którym tworzysz plik w systemie Windows? czy tworzysz plik z systemu Windows? lub jest to * nix do * nix za pośrednictwem samby (w takim przypadku dlaczego samba, a nie nfs)
ksenoterracid
@ xenoterracide, dotykam pliku w udziale za pomocą klienta Linux; W tym przypadku idę z * nix do * nix. Istnieje połączenie komputerów Windows, Mac i Linux łączących się z tą usługą samby.
Jonathon Watney
Czy jesteś pewien, że twoje maski są dobre? utwórz maskę, maskę bezpieczeństwa, maskę katalogu. Dokumenty nie są jasne w pogodzie, sama „0” jest ważna dla masek. Poza tym ... jakie to dziwne.
Gabe.

Odpowiedzi:

2

Uprawnienia do samby działają tylko na klientach sieciowych SMB (tj. Windows). Jeśli chcesz wymusić to na serwerze (i dowolnych klientach NFS), musisz ustawić lepki bit dla wszystkich katalogów.

Najpierw popraw pliki, które tam są:

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

następnie wymusz to za pomocą kleju grupowego

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

Nie jest to nieomylne, ale rozwiązuje 99% tego rodzaju problemów.

Pozdrawiam DaveF

Wynik na moim polu 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
źródło
Dzięki. W końcu miałem okazję to wypróbować, ale niestety problem pozostaje.
Jonathon Watney
Zastanawiam się, czy to może być twój umask?
David Allan Finch
Mój umask to 0022. Jakieś inne pomysły? :)
Jonathon Watney
Muszę spróbować na moim Linux-ie. Nie miałem jeszcze czasu. BTW używamy NFS Unix do Linuksa itp., A nie SMB.
David Allan Finch