Samba telepítése és beállítása Ubuntu szerveren

A most következő leírásban megtudhatjátok, hogyan hozhattok létre egy Ubuntu Serverből Windows fájl szervert.

Ehhez a legelterjedtebb rendszert a SAMBA -t fogjuk használni. Hogy mi az a SAMBA arról itt olvashatsz egy részletes leírást.

1. Tegyük be az Ubuntu server telepítő lemezt

2. Lépjünk be a saját felhasználónév – jelszó párosunkkal

3. Csatlakoztassuk fel a kötetünket! Ehhez adjuk ki a konzolon a

mount /dev/cdrom

parancsot

4. Ellenőrizzük le, hogy a telepítési forrásaink között szerepel-e a cdrom. Ha nem akkor adjuk meg!
4.1 Készítsünk biztonsági másolatot a /etc/apt/sources.list állományról a konzolon kiadott

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bkp

paranccsal
4.2 Szerkesszük a /etc/apt/sources.list állományt a

sudo vi /etc/apt/sources.list

paranccsal
4.3 Keressük meg a #deb: cdrom [Ubuntu-Server kezdetű sort és töröljük ki a sor elejéről a #-ot. Ha megvagyunk nyomjuk meg az [Esc] -et aztán a :x -szel mentsünk és lépjünk ki a VI alkalmazásból.
4.4 frissítsünk a sudo apt-get update -tel

5. Telepítsük fel a SAMBA és a SAMBA-DOC -ot! Adjuk ki a konzolon a

sudo apt-get install samba samba-doc

parancsot. A megjelenő kérdésre nyugodtan ajuk meg a Y -t

sudo apt-get install samba
sudo apt-get install samba

6. Ha lefutott a telepítő akkor nézzünk néhány alapbeállítást

6.1 Készítsünk biztonsági másolatot a /etc/samba/smb.conf állományról a konzolon kiadott

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bkp

paranccsal

6.2 majd kezdjük el szerkeszteni a /etc/samba/smb.conf- ot

sudo vi /etc/samba/smb.conf

Nyugodtan jelöljünk ki mindent és töröljük (A VI használatához ITT találsz segítséget!)

Gépeljük be az alábbi sorokat:

[global]
workgroup = TARTOMANY
netbios name = GEPNEV
guest ok = yes
read only = no
security = share
guest account = nobody

[megosztas1]
comment = Vendeg megosztas
path = /tmp
browseable = Yes
read only = Yes
guest ok = Yes

6.3 Mentsük el az smb.conf -ot majd indítsuk újra a SAMBA -t a

sudo /etc/init.d/samba restart

paranccsal

6.4 Ha jól dolgoztunk akkor a Windows -os kliens gépünkön a hálózat tallózásakor láthatjuk a Tartomany munkacsoportban a Gepnev -vel megadott Samba szerverünket és gépre kattinva egy megosztást megosztas1 névvel. A megosztas1 -re kattintva pedig a szerveren megosztott /tmp tartalmát

Windows hálózat
Windows hálózat
Megosztott mappa
Megosztott mappa

Nézzük át mit is állítottunk be az smb.conf -ban!
a [global] -ban

workgroup = Tartományunk (munkacsoportunk) neve
netbios name = szerver gépneve
guest ok = vendég hozzáférés engedélyezése (Yes / No)
read only = csak olvasható -ság beállítása (Yes / No)
security = biztonsági szint (user / share / domain / ADS / server) Erről részletesebb dokumentációt ITT találsz
guest account = vendég felhasználó

a [megosztas1] -ben
comment = Megjegyzés a megosztáshoz
path = a megosztott könyvtár / állomány elérési útja a szerveren
browseable = tallózható (Yes / No)
read only =csak olvasható (Yes / No)
guest ok =Vendég is hozzáférhet (Yes / No)

Gyakorlásképpen csináljunk egy új, publikus megosztást ahol a megosztott mappába bárki írhat!

Hozzuk létre a szerveren a /home/public mappát a sudo mkdir /home/public parancssorral.
Állítsunk be 777 (azaz Írás, Olvasás, Futtatás mindenkinek) jogot a mappára a sudo chmod 777 /home/public paranccsal

Az smb.conf -ot egészítsük ki az alábbi sorokkal

[Public]
comment = Ide barki irhat
path = /home/public
browseable = Yes
writeable = Yes
guest ok = Yes

Mentsük el az állományt és nézzük meg a kliens gépről a szerverünk megosztásait. Ha mindent jól csináltunk akkor látnunk kellene a Public megosztást és írni is tudunk a mappába. Hozzunk létre benne egy új szöveges dokumentumot!

Szerveren létrehozott szöveges dokumentum
Szerveren létrehozott szöveges dokumentum

Eddig a SAMBA segítségével csináltunk egyszerű megosztásokat amiket a hálózatunkból mindenki elérhet és a mappára vagy fájlra adott jogokkal tudja a megosztásokat használni. A következő részben rábírjuk Samba szerverünket a felhasználói azonosításra és az ún. HOME könyvtárak kezelésére.

7. Felhasználói azonosítás és Home könyvtár elérés beállítása
7.1 Módosítsuk az smb.conf [global] részét az alábbiakkal:

security = user
encrypt passwords = yes

töröljük ki a guest ok = yes és a read only = No sorokat!

Tehát a security -t share -ról user -re módosítjuk, beállítjuk hogy a jelszavakat titkosítsa és megtiltjuk a vendég elérést valamint. Ha a kliens gépről tallózunk már nem látjuk direktben a megosztásokat mivel kér egy felhasználó nevet és jelszót a szerver.

7.2 Ahhoz, hogy azonosítani tudjon minket a SAMBA létre kell hoznunk a SAMBA felhasználóinkat a Linuxos felhasználókból. Ehhez használjuk az alábbi parancsot
sudo smbpasswd -a felhasznalonev

Adjuk meg a felhasználónak a SAMBA jelszavát, majd ismétejük meg. Ha az added user felhasznalonev -et látjuk akkor minden rendben van. Így a kliens gépről már csak a megadott felhasználónév / jelszó párossal lehet elérni a megosztásokat.
7.3 A Home könyvtárak kezeléséhez és eléréséhez egészítsük ki az smb.conf -ot

[homes]
comment = Sajat mappa
path = /home/%U
browseable = yes
writable = yes

Így a megosztások között tallózva a home megosztás alatt a beléptetett felhasználó a saját mappájának tartalmát fogja látni.

8. Ha a szerverünk egész nap (vagy legalább munkaidőben folyamatosan) úgyis be van kapcsolva ellentétben a kliens gépekkel érdemes megadnunk, hogy a SAMBA legyen a hálózatunkon a főtallózó tehát a helyi master. Ehhez el kell érnünk hogy a “gépek közötti szavazást” a fő tallózó kérdésben mindig megnyerje. Mind mindig most is az smb.conf -ot szerkesztjük és kiegészítjük a [global] szekciót az alábbi sorokkal

os level = 66
local master = yes

Tehát az os levelt jó magasra állítjuk (a Windows NT-s gépeké 33 viszont az újabb XP, Vista stb. operációs rendszerek miatt annál mindenképp nagyobb kell, hogy legyen. Jelenleg a 66 elegendő) és beállítjuk local master -nek a SAMBA -t.

Ha a hálózatunk nagyobb kiterjedésű és a munkacsoport vagy tartomány több alhálózatban is szerepel akkor nem elegendő a helyi főtallózói szerep, hanem a tartomány főtallózást is a szervernek kell adnunk. Ehhez az smb.conf [global] -ját ismét két sorral bővítjük

domain master = yes
preffered master = yes

azaz a Samba lesz a domain master és a preferált master is.

9. A Samba mint elsődleges tartományvezérlő (Primary Domain Controller )

A Windows NT sorozat megjelenésével a Windows kliensek képesek lettek a tartományba lépésre ahol a felhasználó hitelesítési információit nem a helyi gép végzi el, hanem egy tartományvezérlő(PDC azaz Primary Domain Controller).
Régebben csak a Windows szerver változatai voltak erre képesek (mivel ez a szolgáltatás már nem a NetBIOS protokollon alapult). A Samba fejlesztői viszont megoldották, hogy a Samba szerver is képes legyen PDC -ként viselkedni.

9.1 A megoldáshoz az smb.conf -ban a [global] szakaszt kell ismételten kiegészíteni pár egyszerű sorral:

domain logons = yes
wins support = yes

és létre kell hoznunk egy netlogon megosztást is:

[netlogon]
path = /home/netlogon
public = no
writeable = no
browseable = no

A fenti beállítások alapján nem tudják majd írni a felhasználók és sem is látják tallózás közben, tehát csak az képes hozzáférni aki tud a létezéséről. Eután indítsuk újra a SAMBA -t:
sudo /etc/init.d/samba restart

9.2 Ahhoz, hogy a tartományba a klienseink be tudjanak lépni az Ubuntu szerveren el kell végezni az alábbi műveleteket:
Vegyük fel a kliens gépet először a Linux majd a Samba felhasználók közé (shell-re és saját könyvtárra nincs szükség)

sudo useradd -s /bin/false -d /dev/null kliensgepneve$
sudo smbpasswd -a -m kliensgepneve$

(a kliensgepneve = a windowsos gépünknek adott név, amit a start menü -> beállítások -> vezérlőpult -> rendszer -ben a számítógépnév fül alatt a Módosítás gombra kattintva tudunk megnézni)
Adjunk a szerveren a root -nak egy SAMBA jelszót
sudo smbpasswd -a root

9.3 Most pedig állítsuk be a kliensünket, hogy a munkacsoport helyett a tartomány tagja legyen:
start menü ->beállítások -> vezérlőpult -> rendszer -ben a számítógépnév fül alatt a Módosítás gombra kattintsunk és a Tagság résznél jelöljük be a Tartomány -t és írjuk be a tartományunk nevét

Windows tartományba léptetése
Windows tartományba léptetése

Ezután adjuk meg a root -ot mint felhasználó az előzőekben beállított jelszavával

Root felhasználó és jelszó megadása
Root felhasználó és jelszó megadása

Ha mindent jól csináltunk akkor kapunk egy szép kis üdvözlő üzenetet és “természetesen” újra kell indítani a gépünket.

A fenti lépéseknél én eddig 2 hibába futottam bele:

  1. Nem találja a TARTOMANY domain kiszolgálóját a kliens. Mivel az smb.conf -ban engedélyeztük a wins supportot érdemes a kliensünknél is bállítani a WINS címét:
    start menü -> beállítások ->vezérlőpult -> hálózati kapcsolatok -> helyi kapcsolat -> Tulajdonságok -> TCP/IP protokoll -> tulajdonságok -> speciális -> WINS fül -> Hozzáadás -nál írjuk be a szerverünk IP címét
  2. Beléptetésnél azt írja, hogy nem létesíthetünk több kapcsolatot ugyanazon felhasználóval. Ehhez mielőtt a munkacsoportról tartomány -ra állítjuk a klienst jelentkezzünk ki (start menü -> leállítás -> kijelentkezés) majd lépjünk be újra helyi (rendszergazdai jogokkal rendelkező) fiókunkba.
    Újraindítás után a Bejelentkezés ablakban immáron be tudunk lépni a Samba -s felhasználónév / jelszó párosunkkal a tartományba

    Bejelentkezés a Windows rendszerbe
    Bejelentkezés a Windows rendszerbe

9.4 Mivel a Samba konfigurációban nem állítottuk bejelntkezési profilokat ezért egy kis hibaüzenetet kapunk de ettől még be tudunk jelentkezni és a megosztott mappákat (beleértve a home könyvtárunkat is) elérjük csak kilépéskor nem mentődnek el a profilunk beállításai. Természetesen ha már a szerveren vagyunk azonosítva és ott van a home könyvtár akkor tároljuk is ott a profilunkat valamint dokumentumainkat, hogy bármelyik tartományi gépről bejelentkezve a későbbiekben elérjük azokat.

Az smb.conf -ban adjuk meg hogy hol érik el a profilt, csináljunk egy profiles és egy users megosztást is:

[global]

....
logon path = \\%L\profiles\.profile
logon drive = H:
logon home = \\%L\%U

[profiles]
comment = Halozati profilok
path = %H
read only = No
create mask = 0600
directory mask = 0700
hide unreadable = Yes
store dos attributes = Yes

[users]
comment = Felhasznalok
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/

valamint módosítsuk kicsit a homes megosztásunkat is:
[homes]

comment = Sajat mappa
valid users = %S, %D%w%S
read only = no
inherit acls = Yes
browseable = No

Ezek után ha belépünk a tartományba akkor a H: meghajtó a szerveren lévő home könyvtárunkra mutat és elmentődnek a profil beállításaink is. Ahhoz, hogy a Dokumentumok alapértelmezésben a szerveren kerüljenek tárolásra a Windowsban a Dokumentum mappa alapértelmezett helyét meg kell változtatnunk. Ehhez kattintsunk jobb egérrel a Dokumentumok mappára majd a Tulajdonságok -ra. Ezután az Áthelyezés… -re és válasszunk ki egy mappát a szerveren lévő saját (home) könyvtárunkban!

Amennyiben gondod akadt a telepítéssel, beállítással vagy valami hibát találsz a leírásban kérlek jelezd!

116 hozzászólás


  1. kunci: Meglett a megoldas. Kiderult, hogy a kod jo volt, amit irtam, csak a SAMBA4 nem igazan kedvelte, igy most egy regebbi verzioval tesztelek.


  2. Kérdésem a következő :
    Ubuntu 11.04 – es rendszert használok
    Megcsináltam a (smb.conf) -ot úgy ahogy le van írva
    A másik gépen mikor a tartományba bejelentkezem
    nem menti el a beállításokat
    áthelyeztem a dokumentumok könyvtárt
    a H: meghajtóra amit beállítottam
    mégis amkor kijelentkezem és újra bejelentkezem
    kiírja hogy nem találja a profilt tehát mindent újra
    kell állítani.
    A Regedit- ben az NTUSER nél beállitottam
    hogy %LOGONSERVER%\%USERNAME%\Asztal.
    utána a default ot a HKEY_LOCAL_MACHINE alol eltávolítottam
    vagyis a bezárással mentettem a változásokat.

    Mit csináljak hogy jő legyen?
    ksözönettel
    atez73


  3. atez73: Ebbe én is belefutottam. A megoldás az lett, hogy a linux alatt létrehozott domain useremet letöröltem. Ezután:
    1. létrehoztam egy mappát a home könyvtárban a kívánt username-vel.
    2. létrehoztam az új usert [ sudo useradd -d /home/username username ]
    3. újra bejelentkeztem a host gépre, és már működött, ergo elmentette a beállításaimat.

    Viszont nekem is lenne egy kérdésem.
    Miért lehet az, hogy Win7-tel nem tudok belépni a domainbe? Pedig a WINS szervert beállítottam és WinXP-vel simán megy. Ha kell a konfig fájl tartalma, írjatok, és postolom.


  4. kovrobert:
    Megmondom Öszintén hogy windows 7 -tel még nem probáltam
    a témát viszont azt tudom mondani hogy a wiondows7 igen erős biztonsági beálltiásokkal rendelkezik
    Ott kellene valamit inaktiválni legalább is egy próbát megér
    kivételkezelés
    Biztonsági beállitásoknál probáld meg
    még azt tudom tanácsolni hogy a sugóban a Domainba való bejelentkezéshez milyen beálitásdokat kér a windows7

    ezeket kellene végig nézni

    sok szerencsét kivánok
    1 lépés sugóban megnézni az erről szóló témát biztos hogy kell
    legyen valami leírás.
    2.Ezek után pedig amit előbb leírtam azt kipróbálni.

    üdv atez73


  5. kovrobert:
    Amit leírtál kiprobáltam 2 pontban mért van kétszer a username ?
    másrészt sudo smbpasswd -a username parancsal veszi fel samba
    felhasználót tehát
    amit leírtál nem vezetett eredményre
    vagy valamit kihagytál a leírásból
    véletlenül és nem akaratból.

    üdv Atez73


  6. kovrobert:
    Nos a leírásom már régebbi (Ubuntu 10-es szerverre és biztos, hogy a Samba korábbi verziójára vonatkozik) így van pár dolog ami azóta kicsit más lett ezért mindig érdemes rákeresni az újításokra!
    Pl. a
    sudo /etc/init.d/samba start (stop, restart)
    helyett a
    sudo smbd start (stop, restart)
    parancsokkal lehet a samba -t indítani (leállítani, újraindítani)

    A minap egyébként én is feltettem egy 11-es ubuntu alá a samba -t és nekem sem akarta valamiért megtalálni a profilt. Aztán egy régebbi a leírásnál bővebb smb.conf -ot lemásolva sikerült működésre bírni. Nos, itt van a működőképes smb.conf tartalma:

    [global]

    workgroup = munkacsoport
    netbios name = szerver neve
    server string = szerver %h
    map to guest = Bad User
    username map = /etc/samba/smbusers
    client NTLMv2 auth = yes
    min protocol = NT1
    disable netbios = yes
    add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -g ntmachines -g -s /bin/false %m$
    logon path = \\%L\profiles\.msprofile
    logon drive = H:
    logon home = \\%L\%U\.9xprofile
    domain logons = yes
    lm announce = no
    preferred master = yes
    domain master = yes
    enhanced browsing = no
    wins support = yes
    ldap ssl = no
    usershare allow guests = yes

    [homes]
    comment = Home konyvtar
    valid users = %S, %D%w%S
    read only = no
    inherit acls = Yes
    browseable = No

    [profiles]
    comment = Halozati profilok
    path = %H
    read only = No
    create mask = 0600
    directory mask = 0700
    hide unreadable = Yes
    store dos attributes = Yes

    [users]
    comment = Felhasznalok
    path = /home
    read only = No
    inherit acls = Yes
    veto files = /aquota.user/groups/shares/

    [groups]
    comment = Minden csoport
    path = /home/groups
    read only = no
    inherit acls = yes

    [netlogon]
    comment = Halozati bejelentkezes
    path = /var/lib/samba/netlogon
    write list = root


  7. kovrobert: Erről már ha jól emlékszem itt is volt szó, de akkor még egyszer:
    1. A win7 kliensek 3.2.12 -es (vagy újabb) verziójú Samba kell!
    2. A windows7 registryjében kell pár módosítás amikről az alábbi oldalon tájékozódhatsz:
    http://wiki.samba.org/index.php/Windows7


  8. atez73: Nézd meg jobban a pancsot és rájössz miért van 2x!
    sudo useradd -d /home/username username

    “magyarul” hozd létre a username nevű felhasználót a home könyvtára pedig a /home/username mappa lesz.
    Ennek még nem sok köze van a Sambahoz ezzel a Unixos (Linuxos) felhasználót (és home mappáját) hozod létre.
    Ahhoz, hogy samba felhasználó legyen kell a sudo smbpasswd -a username


  9. A megoldás a következő:
    a felhasznalo felvétele unix felhasznaloként:
    sudo useradd felhasznalo
    a kért jelszó megadása
    utána smbpasswd -a felhasznalo
    majd a jeszo megadása

    Ahhoz hogy ne keressen központi profilt

    Az smb.conf- ban

    [global]
    netbios name = gepneve
    workgroup = Tartomany
    security = user
    encrypt passwords = Yes
    guest account = nobody
    os level = 66
    local master = yes
    domain master = yes
    preferred master = yes
    domain logons = yes
    wins support = yes
    #logon path = \\%L\profiles\.profile
    logon drive = H:
    #logon home = \\%L\%U

    ki kell kommentezni a logon path sort
    és a logon home sort

    ezután mikor bejelentkezem már nem írja ki az üzenetet


  10. Megjegyzés az előzőhöz:

    Ezt Ubuntu 11.04 es ubuntu – val lett létrehozva
    samba4 verzió


  11. Van egy ntsf partícióm, amit linux (kononkrétan: Puppy Linux) alatt szeretnék megosztani a hálózaton. A partíció ide van felcsatolva: /mnt/sda2. De a samba konfigban ezt az útvonalat hiába adom meg, nem láthatók az ott található mappák és fájlok.
    Milyen smb.conf beállításokkal tehetném mégis elérhetővé a partíciót?


  12. kunci:
    Köszönöm linket! Sajnos, még nem jutottam előrébb a megoldásban.


  13. Nagyon szépen köszönöm a leírást!

    Itt van egy minta konfig debian 6-ra, samba 3.5.6-hoz, bind9 névkiszolgálóval, ami megy winxp-vel és win7-el is:

    [global]
    workgroup = bcm.local
    netbios name = da mimir
    ;guest ok = yes
    ;read only = no
    securuty = user
    encrypt password = yes
    ;guest account = nobody
    os level = 66
    local master = yes
    ;domail master = yes
    ;preffered master = yes
    domain logons = yes
    wins support = yes
    logon path = \\%L\profiles\profile
    logon drive = H:
    logon home = \\%L\%U

    [profiles]
    comment = halozati profilok
    path = %H
    read only = no
    create mask = 0600
    directory mask = 0700
    hide unreadable = yes
    store dos attributes = yes

    [users]
    comment = felhasznalok
    path = /home
    read only = no
    inherit acls = yes
    vetro files = /aqouta.user/groups/shares

    [netlogon]
    path = /home/netlogon
    public = no
    writeable = no
    browseable = no

    [megosztas1]
    comment = Vendeg megosztas
    path = /tmp
    browseable = yes
    read only = yes
    guest ok = yes

    [Public]
    comment = Ide barki irhat
    path = /home/public
    browseable = yes
    writable = yes
    guest ok = yes

    [homes]
    comment = Sajat mappad
    valid users = %S, %D%w%S
    read only = no
    browseable = no
    inherit acls = yes

    windows 7-hez, a registryhez hozzá kell adni a következő kulcsokat, minden mást a fenti leírásnak megfelelően kell csinálni:

    HKLM\System\CCS\Services\LanmanWorkstation\Parameters
    DWORD DomainCompatibilityMode = 1
    DWORD DNSNameResolutionRequired = 0

    HKLM\Software\Policies\Microsoft\Windows\System
    DWORD LocalProfile = 1
    HKLM\Software\Policies\Microsoft\Windows\System
    DWORD ReadOnlyProfile = 1


  14. Szervusztok!

    Morte: Jó a konfigod, de viszont nekem egy olyan problémám van, hogy belép létrehozza a profile.V2 mappát és itt ennyi. Azon belül semmilyen egyéb mappát nem hoz létre.
    Nekem is debian 6 van és win7 prof.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.