Myš je pro kočku: Mountování

Když připojujete nové médium, počítač šoupne jeho souborový systém na nějakou konkrétní cestu, abyste se na vzdálené soubory dostali vy a vaše programy. Tomuhle procesu se říká mountování. Flashky a externí disky za vás řeší systém automaticky (objeví se ve složce /media), ale pracujete-li se síťovými disky, vyplatí se si mountování ohlídat.

Pořád se někam připojujete přes SSH a pak tokáte cd cd jako vrabci? Rádi byste na vzdálených počítačích kombinovali efektivitu příkazového řádku s pohodlím Krusaderu nebo jiného pokročilého souborového správce? A to u různých typů disků – firemní, gdrive, mega… Mountovat umíte, ale otravuje vás? Jak se neobtěžovat mountováním? Není lepší přimountovat všechno automaticky při startu počítače? (A pak bědovat při přepojení z ethernetu na wifi, že se všechno seklo a mrzlo až praštělo.) Mám návrh.

Kvarteto pro zdolání Mount Mountingu

Nesmírně spokojená léta používám čtvero prvků pro snadné zavádění disků: dva konfiguráky, jeden program (to jako Krusader) a jeden utilitku. Kdysi jsem jeden systém pytlíkoval tak a druhý onak, ale konzistence je teta moudrosti.
Konfiguráky navíc mám v sekci rozcestníku custom_menu.py, který jsem vám představoval v dílu Studené klávesy. Spolu s bashrc a dalšími hvězdami tam čekají, abych se o jejich editaci nemusel doprošovat ve složkách. Přidejte si je tam takto:

[config files]
edit fstab=kate /etc/fstab
edit ssh config=kate ~/.ssh/config

 

Přehledná pojmenování – .ssh/config

Jakmile dostanu přístup k novému disku, zanesu jej do konfiguračního souboru config skryté složky .ssh. Takové tři krásné řádky:

Host depo
User pepazdepa
HostName 192.0.2.1

pomohou tomu, abych v terminálu nemusel psát: “Pojmenovali mě hrozně vtipně na serveru s touhle IP, ssh pepazdepa@192.0.2.1,” ale stačilo mi pouhé ssh depo. Každopádně si vyzkoušejte, že se na stroj dostanete už teď.

Centrála konektivity – fstab

V adresáři, který použijete jako centrálu svých disků (třeba /mnt), založte nový adresář se jménem serveru, /mnt/depo, chownněte jej na svého uživatele sudo chown pepa:pepa /mnt/depo a zkuste se tam přimountovat ručně z příkazového řádku. To může být kámen úrazu; širé skály a úskalí mountování jako takového nejsou cílem tohoto článku, zde z něj vycházíme. Když budete mít štěstí, postačí vám nainstalovat balík sudo apt install sshfs pro SSH disky a cifs-utils pro windowsovská sdílení (kterým možná nesprávně všem říkám samba). Pak zavolejte mount.sshfs depo:/ /mnt/depo -v && ls /mnt/depo a pokud vidíte obsah vzdáleného hard-disku, máme vyhráno.

Přidejte zprávu o svém vítězství do fstabu, což je soubor, který se stará o blaho diskové konektivity. Díky souboru .ssh/config bude stačit poměrně stručný řádek:

depo:/ /mnt/depo fuse.sshfs noauto,users 0 0

Říká nám, že ssh připojení k serveru známém jako depo (první políčko) se přivěsí na adresář /mnt/depo přes protokol či pomocný program fuse.sshfs s nějakými základními parametry a právy.

🌃 Ten fstab si zazálohujte. Původně jsem na to varování psát nechtěl, protože pokonit fstab není taková konečná jako pokonění sudoers. Ale při psaní tohoto článku mi do souboru upadlo písmenko t a přestože mountování fungovalo, po nějaké době jsem počítač restartoval – a lekl se, neboť naběhl do příkazové řádky. Nevěda, jak namountovat domovský adresář. Bylo to až po nějaké době, nedošla mi spojitost, že jsem si hrál s fstabem… Nezbývalo nic jiného než sbalit si pět švestek a jít se omluvit do /etc.

Konečně v GUI – Krusader

V současné chvíli jsou vzdálené disky dostupné Krusaderu, ale my chceme jít dál a pomoci mu, aby je sám svižně připojoval a odpojoval. Využijeme k tomu utilitu mount_dir.py, již si račte (prohlédnout a) stáhnout na disk. Jako poslední zbývá přidat UserAction s následujícím příkazem: /path/to/mount_dir.py %aCurrent%. Jakmile použiju zkratku dané akce nad adresářem /mnt/depo, vyskočí okénko oznamující, zda se disk připojil či odpojil, případně terminál s žádostí o heslo.
To je právě výhoda mount_dir.py, nestaráme se o to, zda daný mount vyžaduje při každém přístupu heslo nebo stačí SSH klíč, zda je připojen či odpojen. Pronapříště se můžete soustředit na svůj úkol a ne na to, jak se na disk vůbec dostat.

V adresáři mnt je pusto prázdno, nad propastnou tůní panuje tma. Pak u složky depo voláme zkratku na mount_dir.py, drobné škubnutí obrazovky svědčí o terminálu, kam bychom případně zapsali heslo. Náš disk se připojil klíčem a my vesele rejdíme ve složce /mnt/depo. Stačí další pohyb, tatáž zkratka, vyskakovací okno hlásí: “Odmountováno!” a v depu se zase nehne ani lístečku. Správa disků bude navždy sladká.

⛕ Krusader nabízí vestavěnou aplikaci MountMan. Nevím jak vy, já se s ní nesžil, tuhne mi a nabízí příliš mnoho detailů o systémech, s nimiž nechci nic mít, dokud fungují. (Snap kontejnery, firmwarové tanečky, tajemné bezpečnostní věci z run a nekonečno zážitků ze sys, proc a dev.) Podobně jako doporučuju svou složku, kterou ostatní programy neovlivní, mám rád pořádek v discích – který nepřidám ručně, jako by nebyl.

Kdo nás to omezuje v právech – root

Disky jsou připojeny, signály po drátech běží jako po drátkách, rochníme se v hojnosti souborů – když tu, co se nestalo? You have no permission to! vstoupit do adresáře, prohlédnout soubor… Chybí nám práva superadministrátora. Jde přimountovat disk a být na vzdáleném počítači tamním rootem? Inu, lze, ale spíš se toho snažte vyvarovat. Lepší řešení je přidat svého vzdáleného uživatele do skupin, které mají dostatečná práva k tomu, co potřebují, například www-data pro míchání webových záležitostí. A když se práva popletou, vyrazit do příkazové řádky a tam je ručně opravit. Pokud však trváte na tom, mountovat jako root a dělat tvrdou paseku (protože každý soubor, který vytvoříte, bude rootův, takže si ho ostatní uživatelé neužijou), nažhavte program sftp-server.

Nejprve na vzdáleném počítači řádek do sudoers zajistí, abyste váš vzdálený uživatel mohl bez hesla sftp-server spouštět: pepa ALL=(ALL) NOPASSWD: /usr/lib/openssh/sftp-server. Díky tomu bude lokální sshfs, pro který příklad uvádíme a který zajišťuje spojení, schopen povýšit daný program poslepu.
Následně zkusíte namountovat z příkazové řádky, abyste odladili chyby, chcete jich vidět co nejvíc, proto zvedneme jejich výpis až po úroveň debug. Nějak takhle:

sshfs -o debug,sshfs_debug,loglevel=debug -o allow_root -o sftp_server="sudo /usr/lib/openssh/sftp-server" depo:/ /mnt/depo

Jestli všechno klaplo a adresář je plný vzdálených souborů, přichází řada na fstab. Vzdálený disk je teď váš, definitivně, cele a nebezpečně.

depo:/ /mnt/depo fuse.sshfs users,allow_root,sftp_server=sudo /usr/lib/openssh/sftp-server 0 0

Autor:

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..