Samba, zapis tak, nadpisanie / usuwanie nie.

Instalacja i konfiguracja oprogramowania sieciowego.
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 238
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Samba, zapis tak, nadpisanie / usuwanie nie.

Post autor: mes mariusz » 14 lis 2018, 07:20

Cześć.

Jest sobie ogólnodostępny zasób Samby (postawiony dla wszystkich domowników):

[Wszyscy]
comment = /mnt/Users/Users/Wszyscy
guest ok = yes
path = /mnt/Users/Users/Wszyscy
read only = no
create mask = 0777
directory mask = 0777
browseable = no
hosts allow = 192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5


Widać, że wszyscy mają dostęp RW.

W tym jednak udziale /mnt/Users/Users/Wszyscy będąc do tej maszyny zalogowanym jako root tworzę folder /mnt/Users/Users/Wszyscy/Skaner (właściciel=grupa=root). Zatem nikt z domowników nie będzie w stanie "ruszyć" (usunąć) tego folderu.

Dodatkowo chciałbym, by wszyscy mogli do tego folderu zapisywać, ale jak już jakiś plik tam zostanie zapisany, żeby nikt nie mógł go ruszyć (nadpisać, usunąć, cokolwiek). Czyli póki pliku nie ma, userzy mają mieć prawo zapisu, ale jak już plik się tam znajdzie to nic więcej nie można z tym konkretnym plikiem zrobić.

Idea jest taka, że do tego zasobu będą pisały skanery (stacjonarne i z telefonów z Androidem). Zasób ma być wspólny: userzy mają mieć możliwość skorzystania / zobaczenia tego, co ktoś inny zeskanuje (odczyt), ale nie mogą tego zepsuć (usunąć, nadpisać, zmienić nazwy). Dodatkowo chciałbym, by user, który skanował nie mógł nic z takim plikiem zrobić (np. usunąć przez pomyłkę) - plikami będzie się opiekował / w pełni zajmował opiekun, dajmy na to root (lub inny stworzony w tym celu user).

Pytanie jest takie jak stworzyć zasób / folder, do którego każdy będzie mógł pisać, ale jak już zapisze, ten plik stanie się dla wszystkich plikiem read only ?
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 238
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Re: Samba, zapis tak, nadpisanie / usuwanie nie.

Post autor: mes mariusz » 14 lis 2018, 10:09

W ramach ćwiczeń potestowałem sobie (i wyciągnąłem wnioski):


Samba postawiona na maszynie z ext4.

Definicja zasobu:

[Wszyscy]
comment = /mnt/Users/Users/Wszyscy
guest ok = yes
path = /mnt/Users/Users/Wszyscy
read only = no
create mask = 0777
directory mask = 0777
browseable = no
hosts allow = 192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5

Łączę się teraz z zasobem z maszyny z systemem Ubuntu, powiedzmy 192.168.1.2 (dowolnej przewidzianej w hosts allow) za pomocą fstab:

Kod: Zaznacz cały

//192.168.1.11/Data-Mariusz /media/NAS/E_Mariusz    cifs guest,uid=1000,iocharset=utf8 0 0


1). Z poziomu klienta Samby (będąc zwykłym userem) tworzę folder: katalog_testowy.

Wracam na maszynę z sambą, by sprawdzić właściwości założonego katalogu

Z punktu widzenia maszyny z Sambą:

Kod: Zaznacz cały

# ls -l /mnt/Users/Users/Mariusz
drwxrwxrwx  2 nobody nogroup  4096 lis 14 09:23 katalog_testowy
To by znaczyło, że to co tworzy user samby tworzone jest na userze nobody i grupie nogroup maszyny na której postawiony jest serwer Samby.

Wracam na klienta. Z punktu widzenia klienta Samby (maszyny która widzi zasób Samby)

Kod: Zaznacz cały

# ls -l /media/NAS/E_Mariusz
drwxr-xr-x 2 mariusz root    0 lis 14 09:23  katalog_testowy
Widzę, że zasób widziany jest: właściciel: mariusz, grupa: root.


2). Z poziomu maszyny z serwerem Samby (będąc rootem) tworzę folder: katalog_roota_serwera_Samby.

Z punktu widzenia maszyny z Sambą:

Kod: Zaznacz cały

# ls -l /mnt/Users/Users/Mariusz
drwxr-xr-x  2 root root  4096 lis 14 09:47 katalog_roota_serwera_Samby 

Z punktu widzenia klienta Samby:

Kod: Zaznacz cały

# ls -l /media/NAS/E_Mariusz
drwxr-xr-x 2 mariusz root    0 lis 14 09:47  katalog_roota_serwera_Samby
Widzę, że zasób widziany jest: właściciel: mariusz, grupa: root.

Wniosek: Niezależnie od tego, czy katalog założony z klienta Samby, czy przez roota na maszynie z sambą, z punktu widzenia klienta będzie on widziany jako: user: mariusz, grupa: root.

Jednak, gdy był zakładany przez roota na maszynie z serwerem Samby klient nie może do niego pisać (nie ma uprawnień).


3. Katalog aaa założony przez klienta Samby, a z poziomu roota na maszynie z Sambą utworzony (wewnątrz katalogu aaa) plik lock (user: root, grupa: root)

Klient samby może podejrzeć zawartość pliku lock ale nie może zapisać wprowadzonych zmian. Może jednak plik lock usunąć.

Z jednej strony plik tylko do odczytu, z drugiej da się go usunąć.
ODPOWIEDZ

Wróć do „Sieci, serwery, Internet”