Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:samba:samba_fajlmegosztas

< Samba

Samba fájlmegosztás

  • Szerző: Sallai András
  • Copyright © Sallai András, 2011, 2016, 2017, 2018, 2019
  • Licenc: GNU Free Documentation License 1.3

Bevezetés

A Samba egy programgyűjtemény, amely Unix, Linux rendszereken megvalósítja az SMB protokollt. Az SMB a Server Message Block szavakból alkotott betűszó. Szokás még CIFS néven is említeni, amely a Common Internet File System szavakból alkotott betűszó.

Az SMB a Windowsos világ terméke, segítségével fájlokat, nyomtatókat tudunk megosztani Windowsok között. A unixos, linuxos rendszerek részt vehetnek a fájl és nyomtatómegosztásban a Samba segítségével.

Telepítés

A samba csomagban három démon található, amelyből telepítés után kettő indul el. A telepítendő csomag neve a samba, ezek utána telepítés:

apt install samba

2017-ben a Debian 9.2.1-es rendszerben a Samba 4 verziója telepszik.

A samba vezérlélse

A samba telepítésével két démon kerül telepítésével, amelyek azonnal el is indulnak:

  • smbd
  • nmbd

A samba a systemd vezérlő parancsaival kezelhető. Nézzük meg a milyen állapotban van az smbd démon:

systemctl status smbd
# systemctl status smbd
● smbd.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-10-27 19:23:49 CEST; 6min ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 373 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/smbd.service
           ├─373 /usr/sbin/smbd
           ├─376 /usr/sbin/smbd
           ├─377 /usr/sbin/smbd
           └─387 /usr/sbin/smbd

okt 27 19:23:47 iskolazo systemd[1]: Starting Samba SMB Daemon...
okt 27 19:23:49 iskolazo systemd[1]: smbd.service: Supervising process 373 which is no
okt 27 19:23:49 iskolazo systemd[1]: Started Samba SMB Daemon.

Újraindítás:

systemctl restart smbd nmbd

Leállítás:

systemctl stop smbd nmbd

Indítás:

systemctl start smbd nmbd

Megosztás beállítása

A példa kedvéért legyen egy szerver, ami a 192.168.10.2 IP címen érhető el.

Hozzunk létre egy könyvtárat a következő helyen: /home/samba/info

mkdir -p /home/samba/info

Ez lesz a hálózaton megosztott könyvtár.

Nevezzük át az eredeti konfigurációs állományt:

# cd /etc/samba
# mv smb.conf smb.conf.backup

Megjegyzések nélkül szeretnénk egy konfigurációs állományt, a mentésből állítsunk össze egy alapot:

# cat smb.conf.backup | egrep -v "(#|;)" | grep . > smb.conf

Vegyük fel a saját megosztásunkat, ehhez írjuk a /etc/samba/smb.conf állomány végére:

[info]
path = /home/samba/info
comment = Teszt Info csoport megosztas
guest ok = yes

Ellenőrzéshez telepítsük az smbclient programot:

# apt install smbclient

Ellenőrzés:

$ smbclient -L localhost
$ smbclient -N //192.168.10.2/info

A -N opció hatására a program nem kér jelszót. Nincs is rá szükség, mivel a megosztásunknak guest ok = yes beállítás van megadva. A -N helyett használható a --no-pass is.

A testparm paranccsal lekérdezhetők a beállított kapcsolók.

testparm

Vagy:

testparm -v

Felhasználó kezelése

Felhasználó felvétele

Felvesszük Linuxon a felhasználót:

adduser mari

Felvesszük a Samba számára is:

smbpasswd -a mari

A jelszavak a következő helyen tárolódnak:

/var/lib/samba/private/passdb.tdb

Régebben: /var/lib/samba/private/sam.ldb

A fenti info megosztással teszt:

smbclient -U mari //192.168.10.2/info

A samba-tool user add joska parancs itt nem alkalmazható. Ezt csak AD tartományvezérlő esetén használjuk.

Törlés, engedés

Törlés:

# smbpasswd -x joska

Letiltás:

# smbpasswd -d joska

Engedélyezés:

# smbpasswd -e joska

Felhasználó jelszavának cseréje

A létező linuxos felhasználónak külön Samba jelszót kell beállítani:

# smbpasswd joska

vagy:

# smbpasswd -U joska

Felhasználók és adatainak megtekintése

Felhasználók listázása (rendszergazdaként):

pdbedit -L

Több info:

pdbedit -L -w

Felhasználók több információval:

pdbedit -L -v

Jogosult felhasználók

A megosztásokat az /etc/samba/smbd.conf fájlban állítjuk be. Egy megosztáshoz érvényes felhasználók megadása a valid users kulcsszavakkal történik. A felhasználók helyett megadható csoport neve is, de a csoportok neve elé tegyünk egy @ karaktert.

Felhasználó és csoport példa:

valid users = joska mari @info

Szeretnék egy olyan megosztást, amelyet csak felhasználóval és jelszóval lehet elérni.

[iroda]
path = /home/samba/iroda
comment = Irodai dolgozok
guest ok = no
read only = no
valid users = mari kati @iroda

Módok beállítása

Milyen joggal jöjjön létre egy könyvtár:

force directory mode = 770
force create mode = 770

Milyen csoporttal jöjjön létre fájl vagy könyvtár:

force group = bureau

Milyen felhasználóval és csoporttal jöjjön létre fájl vagy könyvtár:

force user = joska

Szimbolikus linkek követése

/etc/samba/smb.conf
[global]
...
  allow insecure wide links = yes
 
[megosztas]
...
  follow symlinks = yes
  wide links = yes

Fájlok szemetesbe helyezése törlés helyett

vfs objects = recycle

A törölt fájlok egy .recycle nevű könyvtárba kerülnek a megosztás gyökerében. Ha töröltünk egy akarmi.txt nevű fájlt, és újra töröljük azt, akkor a .recycle nevű könyvtárban felülírja az előzőt. Ha minden verziót szeretnénk megőrizni, akkor a következő beállítás szükséges:

vfs objects = recycle
recycle:versions = Yes

Ha más nevet szeretnénk adni a szemetesnek, akkor a „repository” tulajdonsággal tudjuk megtenni:

vfs objects = recycle
recycle:repository = kuka

Megadhatunk abszolút útvonalat is:

vfs objects = recycle
recycle:repository = /home/kuka

Ekkor a /home/kuka nevű könyvtárnak megfelelő jogok szükségesek:

chmod 777 /home/kuka

Ha néhány kiterjesztés esetén nem szeretnénk a szemetesbe helyezést hanem törlést, akkor azt az „exclude” tulajdonsággal tudjuk megtenni.

recycle:exclude = *.tmp *.temp *.swp

Könyvtárstruktúra megtartása

recycle: keeptree = yes

Verziók megtartása ne legyen néhány kiterjesztésnél:

recycle: noversions = *.doc|*.ppt|*.xls

Fájlok törlésének, változtatásának naplózása

Az extd_audit modul lehetővé teszi a felhasználók nyomonkövetését.

vfs objects = extd_audit

Létezik még az audit és a full_audit modul.

Ha extd_audit és a recycle modult is szeretnénk használni, akkor tegyük így:

vfs objects extd_audit recycle

Az extd_audit használata esetén állítsuk be a global részben a naplózást:

syslog = 0
log file = /var/log/samba/%U.%m.log
log level = 0 vfs:2

A %U hatására a fájnévben a felhasználónév szerepel, a %m hatására pedig a kliens gép neve. A műveletek a /var/log/syslog fájlban is megjelennek, a fájl vagy könyvtár törlése azonban a felhasználó naplóállományában külön kiírásra kerül. A fájl törlése „unlink” kulcsszóval jelenik meg.

VFS trükk

A recycle modul segítségével egy adott állományról, könyvtárról kideríthető ki törölte azt. A beállítás a következő:

/etc/samba/smb.conf
[global]
...
vfs objects = recycle
recycle:repository = /home/kuka/%U
..

A %U megadásával a kuka könyvtárban létrejön egy könyvtár, annak felhasználónak a nevével, aki a törlést végezte. A törölt fájl ebbe a könyvtárba kerül.

Minta

Minta 1

vfs objects = recycle
recycle:repository = .Lomtar
recycle:keeptree = 1
recycle:touch_mtime =true
recycle:versions = 1
recycle:maxsize = 20000000
recycle:exclude = *.tmp *.temp *.o *.obj ~$* *.dat *.zip *.mp3 *.wav
recycle:exclude_dir=*.Lomtar* *xx *ab

Minta 2

vfs objects = recycle
      recycle:repository = .deleted/%U
      recycle:keeptree = Yes
      recycle:touch = Yes
      recycle:versions = Yes
      recycle:maxsixe = 0
      recycle:exclude = *.tmp
      recycle:exclude_dir = /tmp
      recycle:noversions = *.doc

Minta 3

vfs object = recycle
   recycle:repository = .recycle/%u
   recycle:maxsize = 50000000
   recycle:exclude = *.tmp *.temp *.o *.obj ~$*
   recycle:exclude_dir = sdileni/*/profile* tmp temp cache
   recycle:versions = yes
   recycle:touch = yes
   recycle:keeptree = yes

Minta 4

vfs objects = recycle
recycle: repository = .recycle/%u
recycle: version = true
recycle: touch = true
recycle: keeptree = true
recycle: noversion = *.doc|*.xls|*.ppt
recycle: exclude = *.tmp *.temp *.cache
recycle: maxsize = 0

Minta 5

vfs objects = recycle
   recycle:repository = /home/depts
   recycle:keeptree = Yes
   recycle:touch = Yes
   recycle:versions = Yes
   recycle:exclude = *.tmp *.temp *.o *.obj ~$* *.~??
   recycle:excludedir = /tmp /temp /cache

Iptables beállítások

iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT

A 137 és a 138 port az nmbd démonhoz tartozik.

A 139 és a 445 port az smbd démonhoz tartozik.

SMB kliens Linux parancssorból

Telepítsük az smbclient programot:

apt-get install smbclient
smbclient -L localhost
smbclient //server/megosztas

A localhost helyett lehet IP cím. Ügyeljünk a második sorban a a / perjelekre, ne tévesszük össze a \ visszaperjellel.

Grafikus adminisztrációs felület GTK

Telepítés:

apt-get install gadmin-samba

Indítás például:

gksu /usr/sbin/gadmin-samba

Indítás például GNOME felületen:

Alkalmazások -> Rendszereszközök -> GADMIN-SAMBA

Webalapú adminisztrációs felület

Telepítés:

apt install swat

Függelék

IPC$ megosztás

Az IPC$ megosztás a TCP/IP kapcsolatok tallózásához szükséges. A Windowsok csak akkor fogják tudni tallózni a Linuxos samba gépet, ha van egy ilyen nevű mogosztás is.

Megosztás példák

[dokumentumok]
  comment = Dokumentumok
  path = /srv/smb/dokumentumok
  browseable = yes
  writeable = yes
  public = yes

[zene]
  comment = Zene
  path = /srv/smb/zene
  browseable = yes
  writeable = yes
  public = yes

[kepek]
  comment = Kepek
  path = /srv/smb/kepek
  browseable = yes
  writeable = yes
  public = yes

[Videok]
  comment = Videok
  path = /srv/smb/vedeok
  browseable = yes
  writeable = yes
  public = yes

smbtree

Az smbtree az smbclient csomag része.

Megjeleníti az elérhető megosztásokat:

WORKGROUP
	\\PUSZTA         		Samba 4.2.14-Debian
		\\PUSZTA\IPC$           	IPC Service (Samba 4.2.14-Debian)
		\\PUSZTA\torony         	Puszta publikus torony
		\\PUSZTA\data           	Puszta publikus írható megosztás
		\\PUSZTA\pub            	Puszta publikus megosztas
		\\PUSZTA\print$         	Printer Drivers

Irodalom

Linkek

oktatas/linux/samba/samba_fajlmegosztas.txt · Utolsó módosítás: 2022/10/01 08:48 szerkesztette: admin