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.
Korzystamy z pakietów z repozytorium Debiana i polecenia apt
apt-get install samba
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
Po edycji pliku konfiguracyjnego należy wydać jak administrator polecenie przeładowujące serwer Samba celem wczytania zmienionych ustawień
systemctl restart smbd.service
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.
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.
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
Używamy do tego celu polecenia
mount -t cifs //<<IP_SERWERA>>/restricted /media/gienek -o user=gienek,pass=<HASŁO>
mount -t cifs //<<IP_SERWERA>>/restricted /media/gienek -o user=gienek,pass=<HASŁO> dir_mode=0755,file_mode=0755
mount -t cifs //<<IP_SERWERA>>/restricted /media/gienek -o user=gienek,pass=<HASŁO> uid=1001,gid=1001
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