Samba

Samba SMB CIFS

W poniższym przykładzie opisana jest instalacja i konfiguracja serwera Samba pod Debianem (udostępnianie plików w protokole SMB). Tak udostępione zasoby można przeglądać w systemach Windows.

Proste udostępnianie bez uwierzytelniania

Instalacja usługi Samba

Korzystamy z pakietów z repozytorium Debiana i polecenia apt apt-get install samba

Konfiguracja Samby

Plik konfiguracyjny serwera SMB to /etc/samba/smb.conf. Przykładowy plik udostępnia katalog /media/smb z serwera jako zasób public, należy pamiętać by katalog miał prawa dostępu dla wszystkich użytkowników. W innym przypadku pojawią się problemy z dostępem do danych w nim zawaratych.

[global]
workgroup = WORKGROUP
security = user
map to guest = Bad Password

[homes]
comment = Home Directories
browsable = no
read only = no
create mode = 0750

[public]
path = /media/smb/ 
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes

Wprowadzanie zmian w życie

Po edycji pliku konfiguracyjnego należy wydać jak administrator polecenie przeładowujące serwer Samba celem wczytania zmienionych ustawień systemctl restart smbd.service

Montowanie zasobu pod Linuxem

Konieczne jest posiadania odpowiednich narzędzi dostępych w paczce cifs-utils (kiedyś smbfs) apt-get install cifs-utils

Zasób publiczny możemy zamontować używając poniższego polecenia mount -t cifs //<IP_SERWERA>/public /media/smb -o user=nobody Przy pytaniu o hasło należy wcisnąć od razu klawisz Enter podający tym samym puste hasło.

Udostępnianie z uwierzytelnianiem

Poniższy plik konfiguracyjny serwera SMB udostępnia katalog /media/gienek jako zasób do którego dostęp ma tylko użytkownik gienek.

[global]
workgroup = WORKGROUP
security = user
map to guest = never

[homes]
comment = Home Directories
browsable = no
read only = no
create mode = 0750

[restricted]
#Ograniczenie dostępu tylko dla użytkownika ''gienek"
valid users = gienek
#valid users = @smbusers
#Alternatywnie uprawnienia mogą zostać ograniczone dla całej grupy użytkowników
path = /media/gienek/
public = no
writable = yes
comment = smb restricted share
printable = no
guest ok = no
create mask = 0600
directory mask = 0700

Katalog /media/gienek powinien mieć ustawione prawa dostępu o wartości 700 dzięki czemy tylko on (i root) będzie mógł modyfikować pliki zawarte w tym katalogu.

Dodawanie użytkownika

Dodajemy użytkownika gienek w systemie serwującym zasób SMB useradd -s /bin/false gienek

Następnie dodajemy hasło dla tego użytkownika używając smbpasswd smbpasswd -a gienek

Teraz należy przeładować serwer Samby systemctl restart smbd.service

Montowanie zasobu z uwierzytelnieniem pod Linuxem

Używamy do tego celu polecenia mount -t cifs //<<IP_SERWERA>>/restricted /media/gienek -o user=gienek,pass=<HASŁO>

Montowanie zasobu ze specyficznymi uprawnieniami

mount -t cifs //<<IP_SERWERA>>/restricted /media/gienek -o user=gienek,pass=<HASŁO> dir_mode=0755,file_mode=0755

Montowanie zasobu z konkretnym UID/GID:

mount -t cifs //<<IP_SERWERA>>/restricted /media/gienek -o user=gienek,pass=<HASŁO> uid=1001,gid=1001

Automatyczne montowanie zasobu przy starcie systemu

W pliku /etc/fstab dodajemy linię:

////<<IP_SERWERA>>/restricted /media/gienek cifs username=gienek,uid=1001,password=<HASŁO>,iocharset=utf8,_netdev,x-systemd.after=network-online.target 0 0

Następny wpis