Strona 1 z 1

Samba i prawa dostępu

: 25 kwietnia 2012, 11:07
autor: sallival
Witam.
Nie umiem sobie poradzić z sambą. Mam konfigurację:

Kod: Zaznacz cały

[skaner]
   comment = Dokumenty skanera %U
   read only = no
   browseable = yes
   write list = logistyk
   path = /var/smbshares/skaner/logistyk
   security = user
Wszystko działa, użytkownik logistyk może wszystko robić w udziale ale jak stworze ręcznie katalog w tym udziale np.

Kod: Zaznacz cały

mkdir prywatny
chmod 700 prywatny
chown test.test prywatny
To i tak użytkownik logistyk może usunąć ten katalog. Myślałem, że po to trzeba mieć konto w systemie logistyk i samba będzie respektowała prawa dostępu, a na to wygląda, że samba patrzy tylko na główną ścieżkę udziału, a co jest wewnątrz to już nie (pracuję jako root).
Moim cele jest stworzenie udziału, w którym są pliki (katalogi), które można usuwać a innych nie można.

Może inaczej, jak zrobić taki udział aby pliki, które utworzył jeden użytkownik nie mogły być usuwane (zmieniane) przez drugiego użytkownika.

Pozdrawiam.

Dodane:

Mam taką konfigurację testową:

Kod: Zaznacz cały

[global]
   workgroup = WORKGROUP
   server string = %S server 
   dns proxy = no
   log file = /var/log/samba/log.%m
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
   valid users = %U
[test]
   comment = Samba server's CD-ROM
   read only = no
   locking = no
   path = /var/smb
   guest ok = no

W katalogu udziału wszystko jest poprawnie ustawione:

Kod: Zaznacz cały

drwxrwxrwx  2 root    root    4096 2012-04-23 22:41 ./
drwxr-xr-x 12 root    root    4096 2012-04-23 20:37 ../
-rwxr--r--  1 marcin2 marcin2    0 2012-04-23 22:41 test2.txt*
-rwxr--r--  1 marcin marcin    0 2012-04-23 22:41 test.txt*

A i tak obojętnie na czyje konto się zaloguję w Windows, to dowolny użytkownik może usunąć wszystko. Więc, nie wiem dlaczego samba nie uwzględnia praw dostępu.

Dodane:
Już wszystkie kombinacje wykonałem i raczej nie da się tego wykonać. Włączałem ACL w ext4 i wszystkie możliwe opcje w smb.conf, ale nic to nie dało. Jedyne co doczytałem i zauważyłem to uprawnienia Linuksa odpowiadają windowsowym atrybutom pliku. Czyli lipa.
Więc pozostaje mi ustawiać uprawnienia tylko dla całych udziałów.

Pozdrawiam

: 26 kwietnia 2012, 17:00
autor: kodama
Sprawdź może tutaj: http://debian.linux.pl/threads/26114-Sa ... zeglądania a nuż coś ci się przyda.

: 05 maja 2012, 10:51
autor: dhapollo
To teraz mam pytanie? Logistyk do jakiej grupy należy? Jakie prawa przydziela samba do tego udziału "skaner" nie widzę wpisów?

Opis poniższy pobrany z jakiejś strony w sieci.

Samba wykorzystuje parametr ,,create mask'' w celu ustawienia odpowiednich uprawnień dla nowo utworzonych plików.

Opcja ,,create mask'' określa jakie uprawnienia będą dozwolone przy tworzeniu nowych plików. Podany numer w systemie ósemkowym zostanie połączony z pożądanymi uprawnieniami za pomocą logicznego operatora i. Spowoduje to, że uprawnienia, których nie obejmuje maska bitowa zostaną odrzucone i nie będą dodane do uprawnień nowego pliku.


Przykład użycia opcji ,,create mask''.

Kod: Zaznacz cały

create mask= 0755

Parametr ,,directory mask='' działa analogicznie do parametru ,,create mask=, tylko dotyczy nowo tworzonych katalogów.

Może i to ci się przyda.

W celu ograniczenia dostępu, do niektórych zasobów należy użyć opcji ,,valid users=''. Domyślnie każdy użytkownik, który zostanie uwierzytelniony będzie mógł uzyskać dostęp do zasobu Samby. Aby odwołać się do grupy sieciowej NIS lub grupy systemu Unix, należy dodać znak ,,@'' przed nazwą grupy.

Przykład użycia opcji ,,valid users''.

Poniższa linijka umożliwi dostęp użytkownikowi ,,drobbins'' i członkom grupy ,,wheel'':

Kod: Zaznacz cały

valid users = drobbins @wheel

Tak na szybko wymyśliłem (bez testowania) ograniczasz dostęp do grupy lub użytkownika następnie ustawiasz prawa dla przydziału np. 755 i możesz z poziomu powłoki tworzy pliki, a użytkownik ma dostęp.

Lub inaczej ograniczasz prawa dla użytkownika lub grupy tworzysz pliki i zmieniasz im właściciela też musi działać.

Lub jeszcze inaczej też zabawa na prawach dostępu.
Katalog /media/skaner ma prawa 700 a podkatalogi w nim zawarte mają prawa np.: 777, czyli nikt poza użytkownikiem i rootem się tam nie dostanie. Root może zakładać tam katalogi a dany użytkownik je odczyta.

To są tylko przemyślenia nietestowane. Testy zostawiam Tobie.

: 06 marca 2013, 23:19
autor: sallival
Dla potomnych. Po wielu testach jedyne wnioski do jakich doszedłem to samba tylko respektuje prawa dostępu do katalogów, czyli pliki dziedziczą uprawnienia z folderu nadrzędnego.

: 07 marca 2013, 13:45
autor: sethiel
A gdzie tam. Banialuki jakieś. Acl-ek nie mam żadnych. Przykład, który możesz wykorzystać u siebie:

Kod: Zaznacz cały

[serwis]
        comment = serwisowe pliki
        path = /firma/serwis
        valid users = @serwis
        read only = No
        writable = yes
        browsable =no
        create mask = 0660
        directory mask = 0770
Tutaj możesz jeszcze sprawdzić create mask 640 i directory mask 750 aby było do Twoich potrzeb użytkowników.

/etc/group:

Kod: Zaznacz cały

serwis:x:504:u1,u2,u3,u4
#podkatalogi serwis
serwis-d:x:5033:u1,u2
serwis-e:x:5026:u1,u3
serwis-s:x:5030:u1,u4
chown/chmod

Kod: Zaznacz cały

/firma/serwis  root:serwis, 770
/firma/serwis/digi root:serwis-d, 770
/firma/serwis/serwis-e root:serwis-e,770
Wszyscy użytkownicy mogą buszować po głównym katalogu, ale do podkalogu serwis-e wejdą ci tylko którzy są w grupie serwis-e.
Co do zapisu i odczytu że jedni mogą tylko do zapisu drudzy tylko do odczytu, tutaj trochę inaczej:
robisz prawa 750 na katalogu.

A nie napisałem clue tego że to działa. Wszyscy użytkownicy domyślnie mają ustawioną grupę uzytkownicy.
/etc/passwd

Kod: Zaznacz cały

 u1:x:1034:100::itakdalej
u2:x:1035:100::itakdalej
u3:x:1036:100::itakdalej
W związku z tym jak będą tworzyć pliki/katalogi w katalogu serwis-e to uprawnienia będą u1:uzytkownicy(nr_grupy_100). Czyli zadziała chmod 750 tak jak powinien.