Nie mogę uzyskać samby, aby ustawić odpowiednie uprawnienia do utworzonych katalogów

17

Mam serwer Ubuntu współdzielący niektóre foldery przy użyciu samby. Gdy klient tworzy nowy folder lub plik, uprawnienia nie są ustawiane zgodnie z ustawieniami w pliku smb.conf.

Moje bieżące ustawienia dla określonego udziału:

[share]
    path = /mnt/share
    browsable = yes
    guest ok = no
    writable = yes
    read only = no
    create mask = 0774
    directory mask = 0774
    write list = netuser

Gdy klient samby (okno systemu Windows 7) używa konta „netuser” do utworzenia pliku lub katalogu, uprawnienia stają się

drwxr-sr-- 2 netuser sambashare      4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare         0 2012-01-22 21:07 New Text Document.txt

Katalog nadrzędny ma ustawioną flagę id grupy, a zatem właściciel grupy sambashare. Chodzi o to, że zarówno użytkownicy samby, jak i użytkownicy serwera należą do grupy sambashare, a zatem mają możliwość edytowania, usuwania i tworzenia plików i katalogów. Ponieważ jednak utworzone foldery nie mają flagi zapisu dla grupy, użytkownicy serwera nie mogą tworzyć nowych plików lub folderów w tych folderach bez sudo.

Przetestowałem dodawanie i usuwanie maski katalogu, trybu wymuszania katalogu, trybu zabezpieczeń katalogu i trybu zabezpieczeń katalogu siły, ale zachowania nadal pozostają. Nowo utworzone pliki i foldery nie mają zamierzonego uprawnienia 774, ale odpowiednio 764 i 754.

czego mi brakuje? Dlaczego samba nie ustawia odpowiednich uprawnień?

Zaz
źródło

Odpowiedzi:

19

Myślę, że musisz użyć następujących parametrów:

# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664

# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775

Szukałem dobrego wyjaśnienia, jak działają te ustawienia, ale nie mogłem znaleźć nic lepszego niż man smb.conf

Będziesz musiał trochę przewinąć w dół, aby zobaczyć te opcje.

Zasadniczo, w skrócie, uprawnienia systemu Windows nie są takie same jak unix (linux) i trochę dziwne jest, jak samba mapuje uprawnienia.

Pantera
źródło
1
Tak, wydaje się, że jest to w przybliżeniu ta sama strona podręcznika, co samba.org/samba/docs/man/manpages-3/smb.conf.5.html, na który patrzyłem, problem polega na tym, że nie ma znaczenia, jaki ósemkowy wartości, które ustawiłem, nadal otrzymuję takie same uprawnienia ustawione dla utworzonego pliku lub folderu.
Zaz
Czy ustawiłeś wszystkie opcje, które ci dałem? Jeśli tak, zaktualizuj swój pierwszy post i w tym miejscu sugeruję złożenie zgłoszenia błędu.
Panther
1
Powiedziałem już ... ale po dokładniejszym zbadaniu i przetestowaniu dodanie 2 do masek katalogu naprawiło problem. Wielkie dzięki. : D
Zaz
Fantastycznie, dziękuję za oznaczenie tego jako zaakceptowanej odpowiedzi, pomaga innym z podobnym problemem.
Panther
Konfiguracja Samby jest zbyt skomplikowana i bardzo trudna do zrozumienia. Na przykład, jaka jest logiczna różnica między tworzeniem siły a tworzeniem po prostu ... nie ma sensu. Twoja wskazówka jest jednak ratunkiem dla życia - dziękuję!
Matthias Hryniszak
8

Po wielu próbach i błędach jest to poprawny kod do udostępniania katalogu samby za pomocą SGID i grup unix. Jeśli użytkownik łączy się anonimowo, dostaje r / w, jeśli się zaloguje i jest członkiem przypisanej grupy, otrzymuje r / w.

Mam grupę o nazwie „admin” ustawioną jako podstawowa grupa dla użytkowników z uprawnieniami do zapisu, wszyscy inni mają uprawnienia tylko do odczytu.

Zmuszam użytkownika do nikogo, więc różni ludzie pracujący nad tymi samymi plikami nie przeszkadzają sobie nawzajem.

Ustawiłem chmod 2755 na katalog współdzielony, więc dziedziczy on utworzone katalogi z tą samą grupą „admin”

$ chmod -R 2755 /home/shares/test

Sprawdzanie, czy wszystko jest w porządku:

$ stat /home/shares/test
Access: (2755/drwxr-sr-x)  Uid: (65534/  nobody)   Gid: ( 1001/   admin)

Odpowiednia część pliku /etc/samba/smb.conf:

[test]
        comment = test
        path = /home/shares/test
        force user = nobody
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 02775
        force directory mode = 02775

Ten post postawił mnie na dobrej drodze, ale testparm ujawnił 4 niepoprawne dyrektywy, więc dzielę się tutaj ustaloną konfiguracją. W sambie, im mniej dyrektyw podasz, tym lepiej działa.

Andrius K.
źródło
7

Miałem ten sam problem, ale wszystko jak dyrektywy dotyczące maski nie działało dla mnie (Samba 4.3.11):

 create mask = 0664
 force create mode = 0664
 directory mask = 02775
 force directory mode = 02775

Jedyną działającą opcją była sekcja [globalna] lub udostępnij:

 inherit permissions = yes

Po prostu zmień wszystkie uprawnienia do folderów i plików zgodnie z potrzebami, aby przyszłe foldery i pliki odziedziczyły te same uprawnienia.

Medox
źródło
Używam Samby w wersji 4.7.6-Ubuntu. I to też działa dla mnie.
Andi S.,
prawdziwa odpowiedź na 4.8.11na freebsd, też :)
jitter
Proste i idealne na 18.04.3
Merritt
3

Istnieje bardzo podobny problem podczas łączenia z innymi urządzeniami Unix / Linux / OSX / MacOS: wszystkie ustawienia są ignorowane, chyba że określono

[global]

unix extensions = no

I połącz się z smb://<serverhost>zamiast cifs://<serverhost>.

Erik Carlseen
źródło
0
 Here add this code to the sudo nano smb.conf
 and restart sudo service smbd restart  and access from another local PC/computer using connect with smb://<serverhost>  to create or edit files/folder   html is folder name 

 [html]
   comment = admin access
   path = /var/www/html
   browsable = yes
   guest ok = no
   writable = yes
   valid users = @admin
   create mask = 664
   force create mode = 664
   security mask = 664
   force security mode = 664
   directory mask = 2775
   force directory mode = 2775
   directory security mask = 2775
   force directory security mode = 2775
Ghanshyam Nakiya
źródło