Strona 1 z 1

[+] Samba - różne uprawnienia dla użytkowników w podkatalogach

: 30 października 2013, 20:16
autor: mhl
Witam.

Męczę się z problemem już jakiś czas ale bez rezultatów. Problem jest następujący.

Jest katalog "public", który ma być dostępny dla wszystkich użytkowników z grupy ,,users'' do odczytu i zapisu, i to działa bez zarzutów.

Kod: Zaznacz cały

/home/users/samba/public
drwxrws--- 3 root   users  4096 paź 30 18:52 pub

[public]
comment = All Users
path = /home/samba/public
valid users = @users   
create mask = 0660
directory mask = 0770
writable = yes

Katalog pub zawiera katalogi (żeby łatwiej zobrazować posłużę się nazwami działów) marketing i it.

Kod: Zaznacz cały

drwxrws--- 2 root it        4096 paź 30 19:33 it
drwxrws--- 2 root marketing 4096 paź 30 19:33 marketing

Są użytkownicy
użytkownik1, użytkownik2, marketing1, marketing2 - w grupach ,,users'' i marketing
it1, it2 - w grupach ,,users'' i it.

Chciałbym aby:
[INDENT]/pub - wszyscy mieli pełen dostęp do
/pub/marketing - marketing1, marketing2 - pełen dostęp, użytkownik1 i użytkownik2 - tylko do odczytu, it1 i it2 - brak dostępu
/pub/it - it1 - pełen dostęp, it2 tylko do odczytu, reszta - brak dostępu[/INDENT]

Żadnym problemem nie jest dać taki sam dostęp danej grupie użytkowników do podkatalogu i ograniczyć go całkowicie reszcie poprzez polecenie chmod. Ustawiamy 770 dla podkatalogu z odpowiednią grupą i dodajemy do grupy użytkowników, którzy mają mieć dostęp.

Problem jest, jeśli chcemy w podkatalogach dać różne dostępy dla różnych użytkowników.

Opcje samby ,,write list'', ,,read list'', ,,valid users'' okazują się działać tylko na nadrzędny katalog /pub.

Jeśli do samby dodamy:

Kod: Zaznacz cały

[marketing]
comment = All Users
path = /home/samba/public/marketing
valid users = @marketing
create mask = 0660
directory mask = 0770
writable = yes
write list = marketing1 marketing2
read list = user1 user2
browsable = no
To do podkatalogu marketing dostęp będą mieli wszyscy użytkownicy grupy marketing nie, ze względu na:

Kod: Zaznacz cały

valid users = @marketing
Tylko ze względu na przynależność katalogu do tej grupy, dodatkowo opcje:

Kod: Zaznacz cały

write list = marketing1 marketing2, read list = [b]użytkownik[/b]1 [b]użytkownik[/b]2
Nie zadziałają i wszyscy użytkownicy grupy marketing będą mieli pełne prawa, ze względu na uprawnienia katalogu 770.

Kod: Zaznacz cały

[it]
comment = All Users
path = /home/samba/public/it
valid users = @it
create mask = 0660
directory mask = 0770
writable = yes
write list = it1
read list = it2
browsable = no

Analogiczna sytuacja w przypadku drugiego podkatalogu.

Przy ustawieniach:

Kod: Zaznacz cały

browsable = no, subfoldery
widoczne są tylko w lokalizacji:

Kod: Zaznacz cały

//server/public

Jeśli z kolei zmienimy na:

Kod: Zaznacz cały

browsable = yes
pod:

Kod: Zaznacz cały

//server
będziemy mieli widoczne katalogi public, marketing oraz it.

Wchodząc z tego poziomu, ustawienia:

Kod: Zaznacz cały

write list
oraz:

Kod: Zaznacz cały

read list
jak najbardziej działają na podkatalogi marketing oraz it.

Wchodząc z kolei przez:

Kod: Zaznacz cały

//server/public/it
oraz:

Kod: Zaznacz cały

//server/public/marketing
Opcje ,,write list'' oraz ,,read list'' jaka na nie działa, pochodzi z ustawień:

Kod: Zaznacz cały

 [public]

Ze względów estetycznych i praktycznych tworzenie wszystkich katalogów dostępnych z jednej głównej lokalizacji:

Kod: Zaznacz cały

//server
nie jest rozwiązaniem.

Czy istnieje możliwość nadawania różnych uprawnień użytkownikom na zasadzie pełen dostęp grupie1, tylko odczyt grupie2, reszta brak dostępu jak w przypadku Windowsa?

Za wszelką pomoc z góry dziękuję.

Pozdrawiam, Michał

: 31 października 2013, 07:48
autor: franek4always
Popróbuj z ACL

: 31 października 2013, 14:54
autor: Unit
Przyklej tutaj:

Kod: Zaznacz cały

testparm

: 31 października 2013, 17:30
autor: mhl
franek4always pisze:Popróbuj z ACL
Dziękuję Ci dobry człowieku, właśnie o to mi chodziło.
Nie myślałem, że to może być aż takie proste.
Temat zamknięty.