Zpřístupnění disků na vlastním stroji

Unixový domovský adresář /home/login a adresář /data/login si můžete zpřístupnit na vlastní, případně jiný stroj více způsoby – přes Sambu (CIFS), NFS, nebo SSHFS. Pro zjednodušení připojování lze využít Autofs. V části o Sambě najdete také způsob připojení windowsového domovského adresáře.

Níže uvedené návody jsou cíleny na unixové OS. Pokud si chcete domovský adresář zpřístupnit na stroji s OS Windows, potřebný postup naleznete zde.

Obecné informace

Na připojování a odpojování slouží příkazy mount a umount, více informací o nich naleznete například v manuálových stránkách. Adresáři, ve kterém chcete zpřístupnit vzdálený adresář, se říká mountpoint. Mountpoint není voláním příkazu pro připojení vytvořen – je nutné, aby existoval předem (výjimka: Autofs jej mohou vytvořit automaticky). Všechny připojené (přimountované) adresáře lze zobrazit příkazem mount bez parametrů.

Samba (CIFS)

Zpřístupnění přes Sambu je možné jenom pro stroje v síti FI a umožňuje zpřístupnění domovského adresáře nebo adresáře /data/login. Protokol Samba je v Internetu obecně blokován kvůli jeho častému zneužívání. Na svém stroji potřebujete mít root přístup a nástroj mount.cifs (například pod Debianem dostupný v balíčku cifs-utils). Export adresáře protokolem Samba je povolen ze zaměstnaneckých/laboratorních strojů s pevnou fakultní IP adresou, z učeben nebo z VPN. Připojení vyžaduje autentizační údaje. Z bezpečnostního hlediska je nejlepší uložit je do souboru, ke kterému má přístup jenom root, protože obsahuje fakultní heslo v čisté podobě. Soubor můžeme vytvořit třeba v /etc/samba/fi_cred.conf, nastavit mu přístupová práva 600 a jeho obsah by měl být následující:

username=login
password=heslo
domain=NTFI

Samotné zpřístupnění domovského adresáře do /mnt/fi-home lze provést příkazem mount:

muj_stroj# mount -t cifs //home.fi.muni.cz/login /mnt/fi-home \
    -o uid=muj_login,gid=skup,credentials=/etc/samba/fi_cred.conf

Parametry uid a gid jsou login a primární skupina na vašem stroji (lze zjistit příkazem id). Také lze uvedené parametry umístit do jednoho řádku souboru /etc/fstab:

//home.fi.muni.cz/login    /mnt/fi-home    cifs
    uid=muj_login,gid=skup,credentials=/etc/samba/fi_cred.conf  0  0

a následně stačí pro připojení příkaz

muj_stroj# mount /mnt/fi-home

Odpojení lze provést příkazem umount:

muj_stroj# umount /mnt/fi-home

Zpřístupnění adresáře /data/login provedete obdobně, jen cesta ke vzdálenému adresáři bude tvaru //home.fi.muni.cz/data-login.

V případě problémů s konfigurací Samby lze funkčnost připojení testovat příkazem smbclient (v Debianu jej naleznete ve stejnojmenném balíku). Po úspěšném připojení by se měl zobrazit prompt smb: \>

Připojení domovského adresáře Windows strojů (H:)

Příkazem mount lze také připojit složku s domovským adresářem a profilem fakultních Windows strojů. Jako vzdálený adresář uveďte //ad.fi.muni.cz/DFS/home/login nebo některý z Windows disků, například:

mount -t cifs //ad.fi.muni.cz/DFS/home/login /mnt/fi-win-home \
    -o uid=muj_login,gid=skup,credentials=/etc/samba/fi_cred.conf
Připojení domovského adresáře na linuxových stanicích

Připojení domovského adresáře je také možné bez superuživatelských práv díky službě GVFS, a tedy i na Nymfách a Musách.

Připojíme si svůj domovský adresář a na zadanou výzvu se autentizujeme fakultním heslem:

nymfe$ gio mount "smb://NTFI;$USER@ad.fi.muni.cz/dfs/home/$USER"

Následně je možné přistupovat k tomuto adresáři přes unixový souborový systém:

nymfe$ cd /run/user/$UID/gvfs/smb-share*/profiles/$USER/
nymfe$ ls

Podobně lze přistupovat i k dalším windowsovým svazkům; viz tam uvedené cesty.

Po ukončení sezení se adresář odpojí automaticky, případně můžete vyvolat odpojení ručně tímto příkazem:

nymfe$ gio mount -u "smb://NTFI;$USER@ad.fi.muni.cz/dfs/home/$USER"

Tento způsob přístupu je k dispozici jenom ze strojů Nymfe a Musa, ne z Aisy.

NFS

Zpřístupnění přes NFS je možné jen pro stroje v síti FI a umožňuje zpřístupnění domovského adresáře a adresáře /data/login. K NFS serveru je možné se připojit neautentizovaně nebo pomocí kerbeřího lístku, což má různé dopady na nastavení a používání.

Neautentizované připojení

Kerberizované připojení

V obou případech je uživatel root NFS serverem považován za uživatele zcela prostého zvláštních práv. Má tedy přístup jen k těm souborům a adresářům, k nimž mají přístup všichni (přesněji subjekt „other“).

Režim není nutné volit explicitně, klient se se serverem dohodne na tom, co oba podporují. Má-li uživatel ve Fakultní administrativě export na stroj povolen, preferuje se neautentizovaný režim. Konkrétní nastavení lze vynutit volbou sec=sys (neautentizovaný režim) nebo sec=krb5 (Kerberos).

Nastavení

Na svém stroji potřebujete root přístup a nástroj mount.nfs (například pod Debianem dostupný v balíčku nfs-common). Zpřístupnění domovského adresáře v mountpointu /mnt/fi-home lze provést příkazem mount s následujícími volbami:

muj_stroj# mount -t nfs home.fi.muni.cz:/export/home/login /mnt/fi-home \
    -o rw,noatime,soft,actimeo=30,sloppy,addr=147.251.48.3
a pro /data/login:
muj_stroj# mount -t nfs home.fi.muni.cz:/export/usrdata/login /mnt/fi-data \
    -o rw,noatime,soft,actimeo=30,sloppy,addr=147.251.48.3

Připomínáme, že ověření funkčnosti připojení výpisem souborů je potřebné provádět pod uživatelem, ne pod rootem, který nemá přes NFS žádná zvláštní práva.

Tyto parametry lze také uvést do souboru /etc/fstab (viz informace v části o Sambě). Případně lze doplnit volbu user, aby mohl adresář připojovat/odpojovat i obyčejný uživatel (pokud chcete z mountpointu spouštět programy, je potřeba za volbu user doplnit ještě volbu exec – volba user ji automaticky vypíná):

home.fi.muni.cz:/export/home/login	/mnt/fi-home    nfs
    rw,user,exec,noatime,soft,actimeo=30,sloppy,addr=147.251.48.3  0  0

SSHFS

Na svém stroji potřebujete mít nainstalován nástroj sshfs. V závislosti na distribuci pak může být potřeba přidat váš účet do skupiny umožňující připojování pomocí FUSE (viz informace dále). Tento postup lze použít bez jakýchkoliv dalších omezení; jedinou podmínkou je funkční přihlašování na některý fakultní stroj (Aisa, Anxur, Nymfe, Musa, ...). Připojit můžete libovolný adresář v rámci vašeho fakultního domovského adresáře nebo adresáře /data/login. Například připojení fakultního adresáře /home/login/mail do adresáře ~/fi-mail lze provést následovně:

muj_stroj$ sshfs -o idmap=user login@aisa.fi.muni.cz:/home/login/mail ~/fi-mail

Pokud tento příkaz skončí chybou přístupu k souboru /etc/fuse.conf, je potřeba přidat uživatele do skupiny fuse, například příkazem muj_stroj# usermod muj_login -aG fuse).

Po připojení zůstává příkaz sshfs běžet na pozadí a zabezpečuje přístup k vzdáleným souborům. Odpojení lze realizovat příkazem fusermount:

muj_stroj$ fusermount -u ~/fi-mail

Autofs

Autofs umí zabezpečit, že adresář se připojí dle potřeby při přístupu do něj a pak, pokud není určitou dobu používán, je odpojen.

Pro jeho instalaci potřebujete root přístup na stroj a balíček autofs. Po instalaci je potřeba upravit obsah souborů /etc/auto.master s hlavní konfigurací autofs a /etc/auto.home resp. /etc/auto.data s konfigurací pro stroj se sdílenými adresáři home.fi.muni.cz. Při připojování domovského adresáře do /etc/auto.master přidat řádek

/mnt/net   /etc/auto.home

a do nově vytvořeného /etc/auto.home přidat dle použitého protokolu řádek, kterého obsah je odvozen z fstab řádků pro daný protokol:

# pro pripojovani pres Sambu
fi-home-smb
    -fstype=cifs,uid=muj_login,gid=skup,credentials=/etc/samba/fi_cred.conf
    ://home.fi.muni.cz/login

# pro pripojovani pres NFS
fi-home-nfs
    -rw,user,noatime,soft,actimeo=30,sloppy
    home.fi.muni.cz:/export/home/login

Při připojování /data/login se bude lišit cesta ke vzdálenému svazku: v případě Samby to bude //home.fi.muni.cz/data-login, v případě NFS home.fi.muni.cz:/export/usrdata/login.

Obsah obou řádků je kvůli jejich délce zalomen; v souboru musí být všechny parametry pro každé připojení umístěny v jednom řádku. Pak je ještě třeba znovu načíst konfiguraci autofs, například příkazem systemctl reload autofs nebo jiným specifickým pro vaši distribuci a autofs by již měl být funkční.

Mountpoint, do kterého se adresář automaticky připojí, nesmí existovat. Pokusy o přístup do něj však vyvolají jeho vytvoření a připojení dle konfigurace, t.j. po vstupu do adresáře /mnt/net neuvidíte ve výpisu jeho obsahu žádný adresář, avšak příkaz cd fi-home-smb v případe korektní konfigurace uspěje a následný výpis obsahu zobrazí soubory ve vzdáleném adresáři. Po určité době nečinnosti je vzdálený adresář odpojen a mountpoint smazán.

Možné problémy

Připojení vzdáleného adresáře do souborového systému způsobí překrytí obsahu adresáře, který používáme jako mountpoint. Původní adresář pořád existuje, ale až do odpojení vzdáleného adresáře není jednoduše přístupný. Avšak programy, které mají daný adresář nebo podadresář již otevřen, budou vidět jeho původní obsah. Proto pokud byste se nacházeli v mountpointu, připojili do něj vzdálený adresář a vypsali si jeho obsah, zdánlivě by se nic nezměnilo. V takovém případě pomůže opětovné přepnutí do tohoto adresáře.

Při připojování adresářů po síti je dobré uvědomit si riziko spojené se ztrátou síťového připojení. V takovém případě samozřejmě přestane být práce s připojeným adresářem funkční. Také ale může dojít k zamrznutí programů, které pracují s obsahem v tomto adresáři (dostanou se do stavu nepřerušitelného spánku; ve výstupu top stav D) a tyto programy nemusí reagovat ani na signál SIGKILL (kill -9). Také odpojení adresáře u Samby a NFS pomocí umount může selhat. Někdy lze tento problém částečně vyřešit vynuceným líným odpojením: umount -lf; pro více informací viz manuálová stránka příkazu umount.

Také není dobré násilně ukončovat běžící sshfs, jelikož pak nemusí být možné korektně odpojit připojený adresář.