navody:f7sdileni_adresaru

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 protokol implementuje ve formě balíku Samba. Samba je 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.

Poznámka: Problematikou sdílení souborů a adresářů mezi počítači s operačním systémem Fedora se zabývá kapitola Přípojování sdílených adresářů.

Server Samba lze nainstalovat přes terminál

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

Pomocí příkazu

yum -y install samba-swat

je možné také doinstalovat rozhraní swat1) pro konfiguraci aplikace Samba. Toto rozhraní se ovládá z webového prohlížeče. Před použitím tohoto rozhraní je nutné nahradit řádek

disable = yes

v souboru /etc/xinetd.d/swat řádkem

disable = no

Dále je zapotřebí restartovat démona xinetd2), který je zodpovědný za spouštění utility swat. swat lze pak spustit tak, že do adresové řádky prohlížeče zadáte http://localhost:901 popř. http://127.0.0.1:901. Na výzvu zadejte jméno uživatele root a heslo superuživatele. Součástí webového rozhraní je také off-line dokumentace k aplikaci Samba.

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í Systém → Správa → Nastavení serveru → Samba

 Nastavení Samby pomocí grafického rozhraní

popř. pomocí grafického rozhraní swat.

 Nastavení Samby pomocí Swat

Takto je možné nastavit sdílený adresář a přiřadit mu uživatele, kteří k němu mohou přistupovat.

Následující text se však zabývá nastavením Samby pomocí příkazové řádky.

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

Noví uživatelé Samby jsou mapováni na již existující systémové uživatele. Tato vazba je definována v souboru /etc/samba/smbusers.

gedit /etc/samba/smbusers

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

systemovy_uzivatel = samba_uzivatel1 [ samba_uzivatel2 ... ]

a soubor uložte. Tento zápis slouží k výše zmiňovanému mapování mezi systémovými uživateli a uživateli Samby. Defaulně je v souboru smbusers uvedeno

# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest

Superuživatel je tak pro účely Samba serveru namapován na uživatele administrator a admin.

Heslo konkrétního uživatele je možné nastavit popř. editovat pomocí

smbpasswd -a systemovy_uzivatel

Smazat uživatele lze pak pomocí

smbpasswd -x systemovy_uzivatel

a smazáním příslušného řádku v souboru /etc/samba/smbusers.

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álohujte původní soubor a otevřete jej pomocí textového editoru.

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

V případě, že chcete změnit popis počítače, nahraďte řádek

...
server string = Samba Server
...

v tomto souboru řádkem

...
server string = novy_popis_pocitace
...

Pro změnu názvu pracovní skupiny nahraďte řádek

...
workgroup = MSHOME
...

řádkem

...
workgroup = nove_jmeno_pracovni_skupiny
...

Soubor smb.conf uložte. Proveďte kontrolu správnosti syntaxe zeditovaného souboru

testparm

a restartujte aplikaci Samba.

/etc/init.d/smb restart

Nastavení sdílených adresářů

Následující úpravy jsou prováděny na „poinstalační“ verzi konfiguračního souboru smb.conf. V případě, že obsah tohoto souboru zaměníte v souladu s postupem popsaným v kapitolách Sdílení adresářů mezi počítači s OS Fedora nebo Připojení sdílených adresářů počítače s OS typu Windows, řádky které mají být vyměněny, v souboru nenaleznete. V tomto případě však stačí tyto řádky do souboru jednoduše přidat.

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)

Nejprve vytvořte společný adresář public, ke kterému budou moci přistupovat ostatní uživatelé.

mkdir /home/public
chmod 777 /home/public/

Dále proveďte zálohu konfiguračního souboru smb.conf a tento soubor otevřete pomocí textového editoru.

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. Otestujte syntaxi souboru smb.conf a restartujte Samba server.

testparm
/etc/init.d/smb restart
Sdílení společných souborů s právem čtení (vyžadována autentifikace)

Nejprve vytvořte společný adresář public, ke kterému budou moci přistupovat ostatní uživatelé.

mkdir /home/public
chmod 777 /home/public/

Dále proveďte zálohu konfiguračního souboru smb.conf a tento soubor otevřete pomocí textového editoru.

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ásledují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

pro kontrolu syntaxe souboru smb.conf a restartování Samba serveru.

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

Nejprve vytvořte společný adresář public, ke kterému budou moci přistupovat ostatní uživatelé.

mkdir /home/public
chmod 777 /home/public/

Dále proveďte zálohu konfiguračního souboru smb.conf a tento soubor otevřete pomocí textového editoru.

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. Otestujte syntaxi souboru smb.conf a restartujte Samba server.

testparm
/etc/init.d/smb restart
Sdílení veřejných adresářů s právem čtení (vyžadována autentifikace)

Nejprve vytvořte společný adresář public, ke kterému budou moci přistupovat ostatní uživatelé.

mkdir /home/public
chmod 777 /home/public/

Dále proveďte zálohu konfiguračního souboru smb.conf a tento soubor otevřete pomocí textového editoru.

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

pro kontrolu syntaxe souboru smb.conf a restartování Samba serveru.

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

Nejprve vytvořte společný adresář public, ke kterému budou moci přistupovat ostatní uživatelé.

mkdir /home/public
chmod 777 /home/public/

Dále proveďte zálohu konfiguračního souboru smb.conf a tento soubor otevřete pomocí textového editoru.

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. Otestujte syntaxi souboru smb.conf a restartujte Samba server.

testparm
/etc/init.d/smb restart
Sdílení veřejných adresářů s právem čtení (autentifikace není vyžadována)

Nejprve vytvořte společný adresář public, ke kterému budou moci přistupovat ostatní uživatelé.

mkdir /home/public
chmod 777 /home/public/

Dále proveďte zálohu konfiguračního souboru smb.conf a tento soubor otevřete pomocí textového editoru.

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. Otestujte syntaxi souboru smb.conf a restartujte Samba server.

testparm
/etc/init.d/smb restart

Připojení sdílených adresářů počítače s OS typu Windows

Aby bylo možné sdílet adresáře počítače s OS typu Windows je třeba, aby na tomto počítači 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

Poznámka: IP adresu daného počítače s nainstalovanými 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 IP3). Další možností, jak získat IP adresu, je v příkazovém řádku zadat příkaz ipconfig.

Výstup příkazu ping -c 10 ip_adresa 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 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 v ní 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.

mkdir /media/smb
chmod 777 /media/smb

Předpokládejme, že počítač s OS Windows, na kterém je uložen sdílený adresář, má IP adresu 192.168.2.125 a cesta k tomuto adresáři je C:/Linux. Dále předpokládejme, že na linuxovém stroji je přípojným bodem adresář /media/smb. Samotné připojení adresáře pak provedete 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.

Modifikace fstab pro automatické připojení sdílených adresářů

Předpokládejme, že sdílení adresářů bylo nastaveno podle výše uvedeného návodu. Pomocí textového editoru vytvořte soubor .smbcredentials

gedit /root/.smbcredentials

do kterého následně vložíte řádky

username=moje_uzivatelske_jmeno
password=moje_heslo

Nově vytvořený soubor uložte. Dále nastavte k tomuto souboru přístupová práva.

chmod 700 /root/.smbcredentials

Proveďte zazálohování souboru fstab

cp /etc/fstab /etc/fstab_backup

a tento soubor otevřete v textovém editoru.

gedit /etc/fstab

Na konec tohoto souboru vložte řádek

//192.168.2.126/cesta_k_sdilenemu adresari    /media/smb cifs credentials=/root/.smbcredentials  0    0

a zeditovaný soubor uložte.

Poznámka: Po té, co vložíte do souboru fstab výše uvedený řádek, je třeba ještě vložit prázdný řádek klávesou ENTER. Jestliže soubor fstab nebude končit prázdnou řádkou, bude systém při jeho načítání v průběhu bootování hlásit chybu.

Připojení sdílených souborů počítače s Fedorou

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

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štěného z příkazového řádku

ping -c 10 ip_adresa

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

Poznámka: IP adresu daného počítače s nainstalovanými 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 IP4). Další možností, jak získat IP adresu, je v příkazovém řádku zadat příkaz ipconfig.

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 za5)

[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čni je třeba dále 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 path cestu ke sdílenému adresáři

Poznámka: Jméno pracovní skupiny zjistíte v případě Windows XP následovně. Dvojklikem na ikonu Tento počítač otevřete nabídku, ve které vyberete položku Vlastnosti. V okně Vlastnosti systému klikněte na záložku Název počítače a opište jméno uvedené za položkou Pracovní skupina.

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ářů.

Jestliže chcete přidat více sdílených adresářů, přidejte do souboru smb.conf více sekcí se stejnou syntaxí, jako sekce 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 provede pomocí příkazu

/usr/sbin/smbd

Po té, co je démon spuštěn, zadejte pro připojení sdíleného adresáře do příkazové řádky

smbclient //192.168.2.126/data

kde IP adresa „patří“ tentokráte počítači s Fedorou. 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 na Místa v síti a v části Práce se sítí klikněte na Přidat místo v síti. Pokračujte tlačítkem Další a po té ikonou Jiné umístění v síti. Pro namapování sdíleného adresáře specifikovaného v smb.conf v sekci 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)
swat v tomto případě není akronymem pro Special Weapons And Tactics ale Samba Web Administration Tool.
2)
Restart provedete pomocí příkazu /etc/rc.d/init.d/xinetd restart.
3) , 4)
Mělo by se jednat o číslo typu 192.168.2.125.
5)
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 12:25
  • autor: 127.0.0.1