navody:fc5prirucka16

Toto je starší verze dokumentu!


Hlavní stránka

OS typu Windows používají protokol Microsoft SMB (Server Message Block) známý také pod jménem CIFS (Common Internet File System). Tento protokol umožňuje sdílení souborů, adresářů, tiskáren apod. Linux tento protol implementuje ve formě balíku Samba. Samba vydána pod GNU General Public licencí. Systém umožňuje integraci OS typu Windows do linuxových sítí. Na straně Windows přitom není zapotřebí instalovat žádný speciální software.

Server Samba lze nainstalovat buď pomocí Aplikace → Prostředí → Systémová nastavení → Přidat/odstranit aplikace nebo přes terminál

yum -y install samba
yum -y install samba-client
yum -y install system-config-samba

Přidání, editování a mazání síťových uživatelů

Poznámka: Jestliže je třeba přidat uživatele, přečtěte si kapitolu Přidání, editace a mazání uživatelů a skupin.

Server Samba lze nastavit pomocí grafického rozhraní Aplikace → Prostředí → Správa → Nastavení serveru → Samba. Je možné nastavit sdílený adresář a přiřadit mu uživatele, kteří k němu mohou přistupovat.

Nastavení Samby lze provést také ručně

smbpasswd -a system_username
gedit /etc/samba/smbusers

Do souboru smbusers přidejte následující řádek

system_username = "network username"

a soubor uložte.

Heslo konkrétního uživatele 1) je možné editovat pomocí

smbpasswd -a system_username

Smazat uživatele lze pak pomocí

smbpasswd -x system_username

Změna popisu počítače a pracovní skupiny

Změnu popisu počítače lze provést pomocí modifikace konfiguračního souboru smb.conf. Nejprve zálohujeme původní soubor a otevřeme jej pomocí textového editoru.

cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V případě, že chceme změnit popis počítače, nahradíme řádek

...
server string = Samba Server
...

v tomto souboru řádkem

...
server string = novy_popis_pocitace
...

Jestliže chceme změnit název pracovní skupiny, nahradíme řádek

...
workgroup = MSHOME
...

řádkem

...
workgroup = nove_jmeno_pracovni_skupiny
...

Soubor smb.conf uložíme. Provedeme kontrolu správnosti syntaxe zeditovaného souboru

testparm

a restartujeme aplikaci Samba.

/etc/init.d/smb restart

Sdílení domovských adresářů s právem čtení a zápisu (vyžadována autentifikace)

cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf najděte v sekci global řádek

...
;  security = user
...

nahraďte ho řádky

security = user
username map = /etc/samba/smbusers

a soubor uložte.

Po té zadejte do příkazové řádky

testparm
/etc/init.d/smb restart

Sdílení domovských adresářů s právem čtení (vyžadována autentifikace)

cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf nalezněte v sekci global řádek

...
;  security = user
...

a nahraďte ho následujícími řádky

security = user
username map = /etc/samba/smbusers

Dále v souboru smb.conf naležněte v sekci homes řádky

  comment = Home Directories
  browseable = no
  writeable = yes

a nahraďte je řádky

  comment = Home Directories
  browseable = yes
  writeable = no

Soubor uložte a do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

Sdílení společných souborů s právem čtení a zápisu (vyžadována autentifikace)

mkdir /home/public
chmod 777 /home/public/
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf nalezněte v sekci global řádky

...
;  security = user
...

a nahraďte je

security = user
username map = /etc/samba/smbusers

Na konec souboru smb.conf pak přidejte následující řádky

[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = yes
  create mask = 0777
  directory mask = 0777
  force user = nobody 
  force group = nogroup

a soubor uložte. Do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

Sdílení společných souborů s právem čtení (vyžadována autentifikace)

mkdir /home/group
chmod 777 /home/group/
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf v sekci global nalezněte řádky

...
;  security = user
...

a nahraďte je nádledujícími řádky

security = user
username map = /etc/samba/smbusers

Na konec souboru smb.conf přidejte následující řádky

[Group]
  comment = Group Folder
  path = /home/group
  public = yes
  writable = no
  valid users = system_username1 system_username2
  create mask = 0700
  directory mask = 0700
  force user = nobody
  force group = nogroup

a soubor uložte. Do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

Sdílení veřejných adresářů s právem čtení a zápisu (vyžadována autentifikace)

mkdir /home/public
chmod 777 /home/public/
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf najděte v sekci global řádek

… ; security = user …

a nahraďte ho řádky

security = user
username map = /etc/samba/smbusers

Na konec souboru přidejte následující řádky

[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = yes
  create mask = 0777
  directory mask = 0777
  force user = nobody 
  force group = nogroup

a soubor uložte. Do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

Sdílení veřejných adresářů s právem čtení (vyžadována autentifikace)

mkdir /home/public
chmod 777 /home/public/
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf najděte v sekci global řádek

...
;  security = user
...

a nahraďte ho řádky

security = user 
username map = /etc/samba/smbusers

Na konec souboru smb.conf přidejte řádky

[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = no
  create mask = 0777
  directory mask = 0777
  force user = nobody
  force group = nogroup

a soubor uložte. Do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

Sdílení veřejných adresářů s právem čtení a zápisu (autentifikace není vyžadována)

mkdir /home/public
chmod 777 /home/public/
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf najděte v sekci global řádek

...
;  security = user
...

a nahraďte ho řádkem

security = share

Na konec souboru smb.conf přidejte řádky

[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = yes
  create mask = 0777
  directory mask = 0777
  force user = nobody
  force group = nogroup

a soubor uložte. Do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

Sdílení veřejných adresářů s právem čtení (autentifikace není vyžadována)

mkdir /home/public
chmod 777 /home/public/
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gedit /etc/samba/smb.conf

V souboru smb.conf najděte v sekci global řádek

...
;  security = user
...

a nahraďte ho řádkem

security = share

Na konec souboru přidejte následující řádky

[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = no
  create mask = 0777
  directory mask = 0777
  force user = nobody
  force group = nogroup

a soubor uložte. Do příkazové řádky zadejte

testparm
/etc/init.d/smb restart

IP adresu počítače, ke kterému jste momentálně přihlášeni, zjistíte pomocí

/sbin/ifconfig

Výstupem tohoto příkazu by mělo být

eth0      Link encap:Ethernet  HWadr 00:0C:6E:22:FE:99
          inet adr:192.168.2.126  Všesměr:192.168.2.255 Maska:255.255.255.0
          inet6-adr: fe80::20c:6eff:fe22:fe99/64 Rozsah:Linka
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST  MTU:1500  Metrika:1
          RX packets:64895 errors:0 dropped:0 overruns:0 frame:0
          TX packets:63607 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:1000
          RX bytes:75925721 (72.4 MiB)  TX bytes:7927394 (7.5 MiB)
          Přerušení:169 Vstupně/Výstupní port:0x2000

lo        Link encap:Místní smyčka
          inet adr:127.0.0.1 Maska:255.0.0.0
          inet6-adr: ::1/128 Rozsah:Počítač
          AKTIVOVÁNO SMYČKA BĚŽÍ  MTU:16436  Metrika:1
          RX packets:4766 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4766 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:0
          RX bytes:2543732 (2.4 MiB)  TX bytes:2543732 (2.4 MiB)
Zjištění IP adresy Linuxového stroje

IP adresu počítače, ke kterému jste momentálně přihlášeni, zjistíte pomocí

/sbin/ifconfig

Výstup příkazu by měl vypadat následovně

eth0      Link encap:Ethernet  HWadr 00:0C:6E:22:FE:99
          inet adr:192.168.2.126  Všesměr:192.168.2.255 Maska:255.255.255.0
          inet6-adr: fe80::20c:6eff:fe22:fe99/64 Rozsah:Linka
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST  MTU:1500  Metrika:1
          RX packets:64895 errors:0 dropped:0 overruns:0 frame:0
          TX packets:63607 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:1000
          RX bytes:75925721 (72.4 MiB)  TX bytes:7927394 (7.5 MiB)
          Přerušení:169 Vstupně/Výstupní port:0x2000

lo        Link encap:Místní smyčka
          inet adr:127.0.0.1 Maska:255.0.0.0
          inet6-adr: ::1/128 Rozsah:Počítač
          AKTIVOVÁNO SMYČKA BĚŽÍ  MTU:16436  Metrika:1
          RX packets:4766 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4766 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:0
          RX bytes:2543732 (2.4 MiB)  TX bytes:2543732 (2.4 MiB)

Hledaná IP adresa je v našem případě uvedena se části eth0 za položkou inet adr (druhý řádek) - tedy 192.168.2.126.

Samba server lze také použít pro sdílení adresářů mezi počítačí s Fedora Cora. Na všech počítačích, které budeme chtít sesíťovat, musí být být správně nastavenen protokol TCP/IP 2). Funkčnost protokolu TCP/IP lze velice jednoduše prověřit pomocí

ping -c 10 ip_adresa

kde ip_adresa je IP adresou vzdáleného počítače, ke kterému se budete chtít připojovat 3).

Dalším krokem je úprava konfiguračního souboru aplikace Samba smb.conf. Správnost syntaxe současného konfiguračního souboru získáte pomocí

testparm

Výstup tohoto příkazu by měl vypadat přibližně následovně

Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Global parameter printcap name found in service section!
Processing section "[data]"
Loaded services file OK.
WARNING: passdb expand explicit = yes is deprecated
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

Z výpisu je patrné, že se konfigirační soubor nachází v adresáři /etc/samba. Nejprve původní konfigurační soubor zálohojeme

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

a otevřeme pomocí textového editoru.

gedit /etc/samaba/smb.conf

Obsah souboru zaměníme za

[global]
        workgroup = SKUPINA
        wins support = Yes

[homes]
        read only = No
        map archive = No
        browseable = No

[printers]
        path = /var/tmp
        printable = Yes
        browseable = No

[data]
        path = /opt/macky
        read only = No
       map archive = No

V konfigurační souboru musíme upravit

  1. v sekci global hodnotu parametru workgroup na jméno pracovní skupiny, do které patří oba počítače
  2. v sekci data nastavit v parametru data cestu ke sdílenému adresáři

Poznámka: Toto je zcela základní konfigurace. V případě, že budete chtít například nastavit autentifikaci pomocí uživatelského jména a hesla nebo omezit přístupová práva na právo čtení, je třeba dále provést úpravu konfiguračního souboru smb.conf v souladu s popisem v kapitole Nastavení sdílených adresářů.

Aby bylo možné sdílet adresáře počítače s OS typu Windows je třeba, aby na tomto počítačí byl správně nastaven protokol TCP/IP.

Funkčnost protokolu TCP/IP lze velice snadno ověřit z Linuxu pomocí

ping -c 10 ip_adresa

IP adresu daného počítače s nainstalovaným Windows XP lze zjistit následujícím způsobem. Klikněntě na Start → Ovládací panely → Síťová připojení. V okně Síťová připojení pak dvakrát klikněte na ikonu, která znázorňuje Vaše síťové připojení. Přejděte na záložku Podpora a opište číslo uvedené za položkou Adresa IP 4).

Výstup výše uvedeného příkazu by měl vypadat přibližně následovně

PING 192.168.2.125 (192.168.2.125) 56(84) bytes of data.
64 bytes from 192.168.2.125: icmp_seq=1 ttl=64 time=0.068 ms
64 bytes from 192.168.2.125: icmp_seq=2 ttl=64 time=0.071 ms
64 bytes from 192.168.2.125: icmp_seq=3 ttl=64 time=0.072 ms
64 bytes from 192.168.2.125: icmp_seq=4 ttl=64 time=0.072 ms
64 bytes from 192.168.2.125: icmp_seq=5 ttl=64 time=0.072 ms
64 bytes from 192.168.2.125: icmp_seq=6 ttl=64 time=0.070 ms
64 bytes from 192.168.2.125: icmp_seq=7 ttl=64 time=0.073 ms
64 bytes from 192.168.2.125: icmp_seq=8 ttl=64 time=0.093 ms
64 bytes from 192.168.2.125: icmp_seq=9 ttl=64 time=0.072 ms
64 bytes from 192.168.2.125: icmp_seq=10 ttl=64 time=0.072 ms

--- 192.168.2.125 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9000ms
rtt min/avg/max/mdev = 0.068/0.073/0.093/0.010 ms

Jestliže tento „test“ dopadl úspěšně, můžete pokračovat. V opačném případě budete muset nastavit síťové protokoly na počítači s OS typu Windows.

Na počítači s OS Windows je třeba vytvořit sdílený adresář. Ve Windows XP sdílený adresář vytvoříte z normálního adresáře tak, že po dvoukliku na ikonu adresáře vybere z nabídky položku Vlastnosti a vybere záložku Sdílení, kde provedete potřebná nastavení.
Posledním krokem je vytvoření adresáře na počítači s Linuxem, kam připojíte obsah sdíleného adresáře počítače s OS typu Windows.

Předpokládejme, že počítač s OS Windows na kterém je ulože adresář, který chceme sdílet, má IP adresu 192.168.2.125 a cesta k tomuto adresáři je C:/Linux. Dále předpokládejme, že na Linuxové stroje je přípojným bodem adresář /media/smb. Samotné připojení adresáře pak provedeme pomocí

mount -t cifs //192.168.2.125/Linux /media/smb

odpojení pak pomocí

umount -t cifs /media/smb

Poznámka: Příkazy mount a umount může standardně používat pouze superuživatel. Pro automatické připojení sdílených adresářů je třeba modifikovat soubor fstab.

V předchozím odstavci jsme připojovali sdílený adresář uložený na počítači s OS typu Windows. Nyní zkusíme opačný postup - budeme připojovat sdílený adresář uložený na počítači s Fedora Core.

Stějně jako v předchozím případě je nezbytnou podmínkou úspěchu funkční nastavení protolu TCP/IP na obouch počítačích. To, jestli se počítače vzájemně „vidí“, lze snadno ověřit pomocí příkazu spuštného z příkazového řádku

ping -c 10 ip_adresa

kde ip_adresa je IP adresou počítače s OS typu Windows 5).

Dalším krokem je úprava konfiguračního souboru aplikace Samba. Správnost jeho syntaxe a místo uložení lze zjistit pomocí příkazu

testparm

Výstup tohoto příkazu pak vypadá přibližně následovně

Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Global parameter printcap name found in service section!
Processing section "[data]"
Loaded services file OK.
WARNING: passdb expand explicit = yes is deprecated
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

Z výpisu je patrné, že konfigurační soubor smb.conf se nachází v adresáři /etc/samba. Před samotnou modifikací provedeme zálohu původního konfiguračního souboru.

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Následně otevřeme konfigurační soubor v textovém editoru

gedit /etc/samaba/smb.conf

a obsah souboru zaměníme za 6)

[global]
        workgroup = SKUPINA
        wins support = Yes

[homes]
        read only = No
        map archive = No
        browseable = No

[printers]
        path = /var/tmp
        printable = Yes
        browseable = No

[data]
        path = /opt/macky
        read only = No
        map archive = No

V tomto souboru je pak třeba změnit:

  1. v oddíle global hodnotu proměnné workgroup podle skupiny, kterou máte nastavenu na počítači s OS typu Windows
  2. v oddíle data nastavit cestu k adresáři, který chceme sdílet

Jméno pracovní skupiny zjistíme v případě Windows XP následovně. Dvojklikem na ikonu Tento počítač otevřeme nabídku, ve které vybereme položku vlastnosti. V okně Vlastnosti systému klikneme na záložku Název počítače a opíšeme jméno uvedené za položkou Pracovní skupina.

Jestliže chceme přidat více sdílených adresářů, přidáme více oddílu se stejnou syntaxí, jako oddíl data.

[data1]
        path = /opt/macky/adresar1
        read only = No
        map archive = No

[data2]
        path = /home/macky/adresar2
        read only = No
        map archive = No

Dále je třeba spustit démoda smbd. To se (pro někoho možná překvapivě) provede pomocí příkazu

/usr/sbin/smbd

Po té, co je démon spuštěn, zadáme pro připojení sdíleného adresáře v oddíle data do příkazové řádky následující

smbclient //192.168.2.126/data

kde IP adresa „patří“ tentokráte počítači s Fedora Core. Jestliže jste nastavili požadavek autentifikace, bude vyzváni k zadání uživatelského jména a hesla.

Nyní nastal čas přesunout s k počítači s OS Windows. Klikněte Místa v síti a části Práce se sítí klikněte na Přidat místo v síti, klikněte na Další a po té pokračujte ikonou Jiné umístění v síti. Pro namapování sdíleného adresáře specifikovaného v smb.conf v oddíle data zadejte

\\192.162.2.126\data

a potvrďte. Po chvíli by se mělo otevřít okno s obsahem sdíleného adresáře.


1)
Jestliže uživatel není uveden v /etc/samba/smbusers, je tímto příkazem tento uživatel vytvořen.
2)
V tomto bodě byste však neměli narazit na žádné komplikace. Váš Linux je připraven k „síťování“ ihned po instalaci.
3)
IP počítače, na kterém momentálně pracujete, získáte pomocí příkazu /sbin/ifconfig.
4)
Mělo by se jednat o číslo typu 192.168.2.125.
5)
Jestliže nevíte, jak zjistit IP adresu pro Windows XP, přečtěte si předcházející odstavec Připojení sdílených adresářů počítače s OS typu Windows.
6)
Jedná se o naprosto základní nastavení. Aplikace Samba pochopitelně dovoluje nastavení mnohem většího počtu parametrů. To však přesahuje možnosti této příručky.
  • Poslední úprava: 2022/11/14 11:10
  • (upraveno mimo DokuWiki)