1. Báza znalostí
  2. Začíname
  3. Správa súborov a používateľov v linuxovom príkazovom riadku
  1. Báza znalostí
  2. Užitočné návody
  3. Správa súborov a používateľov v linuxovom príkazovom riadku
  1. Báza znalostí
  2. Cloud a servery
  3. Správa súborov a používateľov v linuxovom príkazovom riadku

Správa súborov a používateľov v linuxovom príkazovom riadku

Operačný systém Linux poskytuje možnosť pracovať pod rôznymi používateľskými účtami. To znamená, že každý používateľ má po prihlásení k dispozícii svoje vlastné súbory a v nich programy a nastavenia. Rôzni používatelia majú rôzne práva, do ktorých spadajú aj práva na čítanie, zapisovanie a spúšťanie súborov.

Linuxový príkazový riadok WebSupport pre svoj hosting poskytuje aj ako webovú konzolu, v ktorej môžeme pracovať pomocou webového prehliadača ako je Google Chrome. Rovnako je ňou možné manažovať Virtuálny server (VPS). Získame tak prístup k linuxovému príkazovému riadku z prostredia, ktoré funguje nezávisle na operačnom systéme. 

Systém súborov

V Linuxe existuje štandard, podľa ktorého sa v určitých priečinkoch nachádzajú určité súbory. Nie všetky linuxové distribúcie a programy tento štandard presne dodržiavajú, ale prevažne platí táto hierarchia:

Cesta k priečinkuPopis
/ (root, koreň)Koreňový priečinok je začiatok všetkých priečinkov a súborov, pretože v ňom sú umiestnené všetky ostatné súbory a priečinky.
/bin (ako binary)Tu sú umiestnené súbory príkazov, ktoré používa operačný systém.
/bootTu nájdeme statické súbory programu, ktorý spúšťa (zavádza) operačný systém Linux (tzv. bootloader).
/dev (ako device)Tu sú umiestnené súbory zariadení. Podobne to je v priečinkoch /proc a /sys. Viac nižšie, pri druhoch súborov c a b.
/etc (ako et cetera)Tu nájdeme konfiguračné súbory lokálneho počítača. Napríklad v súbore /etc/passwd nájdeme informácie o používateľoch.
/lib (ako library)Tu sú umiestnené základné zdieľané knižnice a moduly jadra.
/mediaDo tohto priečinka sa pripájajú (montujú) prenosné médiá ako sú USB kľúče. Linux totiž nepozná disky ako Windows (napr. disk C:\), ale pripojené pevné disky a ostatné vstupné a výstupné zariadenia vždy prepojí s konkrétnym súborom (viac nižšie, pri druhoch súborov c a b.), alebo obsah zariadenia zaradí (namontuje) pod konkrétny priečinok v tomto priečinku (napr. /media/usb1).
/mnt (ako mounted)Sem sa pripájajú (montujú) dočasne pripojené systémy súborov.
/opt (ako optional)Prídavné softvérové balíčky (voliteľný softvér).
/sbin (ako super-binaries)Tu nájdeme dôležité súbory systému, ktoré zvyčajne fungujú iba pod používateľom root.
/rootDomovský priečinok super-administrátora Linuxu. V Linuxe sa používateľ, ktorý môže všetko, nazýva root (koreň). Prihlasovať sa pod účtom používateľa root môže predstavovať vážne bezpečnostné riziko, a tak sa na spúšťanie príkazov v administrátorskom režime v Linuxe zaužívalo používanie príkazu sudo (ako superuser do alebo novšie substitute user do).
/homeDomovský priečinok pre všetkých používateľov, okrem používateľa root. Používateľ s menom Tibor by teda používal domovský priečinok /home/tibor, v ktorom by mal právo čítať, zapisovať aj spúšťať súbory.
/tmp (ako temp)Dočasné súbory. Pri reštarte systému sú odstránené.
/usr (ako UNIX System Resources)Tu sú umiestnené súbory príkazov, ktoré spúšťa používateľ. Ak potrebujeme vedieť cestu k súboru, ktorý spúšťame po zadaní príkazu, použijeme príkaz which (napr. which ls).
/var (variable)Premenlivé údaje ako dočasné súbory, systémové záznamy, zdieľané súbory aplikácií alebo súbory používateľských poštových schránok.
/proc (ako processes)Priečinok, ktorý obsahuje informácie o jadre a procesoch. Podobne to je v priečinkoch /dev a /sys. Viac nižšie, pri druhoch súborov c a b.
/runSem si systémové procesy ukladajú svoje dočasné údaje.
/srv (ako server)Sem si ukladajú údaje servery. Napr. FTP server tu môže mať priečinok /srv/ftp.
/sysIde o priečinok, ktorý obsahuje informácie o pripojených zariadeniach. Podobne to je v priečinkoch /dev a /proc. Viac nižšie, pri druhoch súborov c a b.

Druhy súborov

V Linuxe hrá súbor veľkú rolu – v Linuxe je všetko súbor. V súboroch nájdeme uložené nastavenia programov, samotné programy, a tiež obsah vytvorený používateľom. Jedným súborom môžeme odkazovať na iný súbor a dokonca aj priečinok je v Linuxe iba druh súboru. V súboroch sú uložené informácie o komponentoch a zariadeniach počítača a cez tieto súbory dokážeme s počítačom komunikovať.

V Linuxe existuje viacero druhov súborov. V tomto návode sa budeme bližšie zaoberať iba s bežne používanými druhmi (prvé 3 v tabuľke), ktoré si najskôr vytvoríme v priečinku ~/test:

mkdir ~/test
cd ~/test
touch obycajny_subor.txt
touch .skryty_subor.txt
mkdir priecinok
ln -s obycajny_subor.txt obycajny_subor-odkaz.txt

Viac o práci so súbormi a priečinkami v linuxovom príkazovom riadku nájdete v návode Základy práce so súbormi a priečinkami v linuxovom príkazovom riadku.

O ktorý druh súboru ide, zistíme z prvého znaku dlhého zoznamu súborov:

ls -lah

Vypíše sa zoznam súborov a priečinkov, z ktorého na základe prvého znaku z každého riadku zistíme, o aký druh súboru ide:

Označenie druhu súboruPopis
– (pomlčka)Obyčajný textový súbor. Ak má súbor pred názvom bodku, znamená to, že je skrytý a nezobrazuje sa v zozname súborov, pokiaľ nepoužijeme prepínač -a. Skryté sú predovšetkým konfiguračné súbory, pretože k nim používateľ zväčša nepotrebuje priamy prístup.
d (ako directory)Priečinok je v Linuxe iba druh súboru, takže o skrývaní priečinkov platí to isté ako o skrývaní súborov.
l (ako link)Odkaz. Tu odkazuje súbor obycajny_subor-odkaz.txt na súbor obycajny_subor.txt. To znamená, že reálne existuje iba obsah súboru obycajny_subor.txt, pričom odkazujúci súbor tento obsah vždy len preberá.
c (ako character device)Určuje súbor zariadenia, ktoré komunikuje tak, že posiela znak (character) po znaku. Príkladom je generátor náhodných znakov: ls -lah /dev/random
b (ako block device)Určuje súbor zariadenia, ktoré komunikuje tak, že posiela celé bloky (viac znakov naraz). Príkladom je pripojenie (namontovanie) súboru ako blokového zariadenia: ls -lah /dev/loop0
p (ako pipe)Poskytuje spôsob jednostrannej komunikácie medzi dvoma procesmi.
s (ako socket)Poskytuje spôsob obojstrannej komunikácie medzi dvoma procesmi.

Spravujeme používateľov

Keď už poznáme systém a druhy súborov v Linuxe, môžeme prejsť k správe používateľov. Používateľa vytvárame pomocou príkazu useradd takto:

sudo useradd -m test

Práve sme vytvorili používateľa s menom test (v súbore /etc/passwd), ktorý sa automaticky zaradil do svojej primárnej novovytvorenej rovnomennej skupiny test (v súbore /etc/group). Zároveň sa vytvoril domovský priečinok /home/test (prepínač -m). Aby sa novovytvorený používateľ mohol prihlásiť, musíme mu najskôr prideliť heslo:

sudo passwd test

Na požiadanie dvakrát zadáme silné heslo a následne si overíme, či sa používateľ a skupina naozaj vytvorili:

id test

Vypíše sa číselné a slovné označenie:

  1. používateľa (uid ako user identifier),
  2. primárnej skupiny (gid ako group identifier) a
  3. všetkých skupín (groups), do ktorých je používateľ zaradený – ak ich je viac, sú oddelené čiarkou.

Aby nový používateľ mohol zasahovať do systémových nastavení pomocou príkazu sudo, musí byť zapísaný v súbore /etc/sudoers. Z bezpečnostných dôvodov tento súbor neupravujeme v textovom editore, ale príkazom visudo takto:

sudo visudo

Na koniec súboru zapíšeme riadok s týmto obsahom:

test ALL=(ALL:ALL) NOPASSWD: ALL

Zmenu uložíme pomocou klávesovej skratky Ctrl + X a následne stlačením klávesu Y a Enter. Odteraz používateľ test môže spúšťať všetky príkazy s administrátorskými oprávneniami používateľa root bez zadávania hesla.

Táto možnosť pridá danému užívateľovi možnosť použiť akýkoľvek príkaz bez nutnosti zadávať heslo. V praxi odporúčame zvážiť vyžadovanie hesla a obmedziť príkazy, ktoré môže užívateľ používať.

Vymazať existujúceho používateľa môžeme pomocou príkazu userdel takto:

sudo userdel test

Práve sme vymazali používateľa test zo súboru /etc/passwd a tiež skupinu test zo súboru /etc/group. Ak je to potrebné, vymažeme záznam o odstránenom používateľovi zo súboru /etc/sudoers pomocou príkazu sudo visudo.

Ak potrebujeme vytvoriť novú skupinu (prvý riadok), do ktorej chceme zaradiť existujúceho používateľa (druhý riadok), poslúži nám príkaz groupadd (pridá záznam na koniec súboru /etc/group) a v prípade vymazania skupiny (tretí riadok) zase príkaz groupdel (odstráni záznam zo súborov /etc/group a /etc/passwd) tako:

sudo groupadd nazov_skupiny
sudo usermod -a -G nazov_skupiny test
sudo groupdel nazov_skupiny

Spravujeme vlastníctvo a práva súborov

Každý súbor v Linuxe patrí konkrétnemu používateľovi a konkrétnej skupine. Ktorému používateľovi a ktorej skupine patrí konkrétny súbor, zistíme pomocou príkazu ls takto:

ls -lah ~/test/obycajny_subor.txt

Tretí a štvrtý stĺpec obsahujú meno používateľa a názov skupiny – pod tento účet a pod túto skupinu spadá vlastníctvo súboru ~/test/obycajny_subor.txt. Príkazom chown (ako change owner) zmeníme vlastníka súboru (prvý riadok) a príkazom chgrp (ako change group) skupinu (druhý riadok):

sudo chown test ~/test/obycajny_subor.txt
sudo chgrp test ~/test/obycajny_subor.txt

Okrem toho, že používateľ a skupina súbor vlastnia, majú vo vzťahu k súboru aj konkrétne práva. Tie sú zapísané v prvom stĺpci od druhého znaku takto:

  • prvé tri znaky vyznačujú práva pre používateľa (u ako user), ktorý vlastní súbor
  • tri znaky v strede vyznačujú práva pre skupinu (g ako group), ktorá vlastní súbor
  • posledné tri znaky vyznačujú práve pre všetkých ostatných (o ako others)
  • písmeno a (ako all) vyznačuje právo pre všetky tri predošlé skupiny (u, g, o)

Spomínané tri znaky môžu byť zastúpené takto:

  • písmeno r (ako read) alebo číslica 4 vyznačuje právo na čítanie obsahu súboru
  • písmeno w (ako write) alebo číslica 2 vyznačuje právo na zapisovanie do súboru
  • písmeno x (ako execute) alebo číslica 1 vyznačuje právo na spustenie obsahu súboru
  • pomlčka () alebo číslica 0 vyznačuje žiadne právo
  • existujú aj špeciálne práva súborov (s a t), o ktorých viac píšeme v samostatnom návode

Ak číselné označenie práv spočítame, dostaneme tieto kombinácie práv pod jedinou číslicou:

  • 4 + 2 + 1 = 7 = rwx, čiže číslica 7 znamená, že používateľovi, skupine alebo všetkým ostatným priraďujeme všetky práva (čítanie, zápis, spustenie)
  • 4 + 2 = 6 = rw-, čiže číslica 6  znamená, že používateľovi, skupine alebo všetkým ostatným priraďujeme práva na čítanie a zápis
  • 4 + 1 = 5 = r-x, čiže číslica 5  znamená, že používateľovi, skupine alebo všetkým ostatným priraďujeme práva na čítanie a spustenie
  • 2 + 1 = 3 = –wx, čiže číslica 3  znamená, že používateľovi, skupine alebo všetkým ostatným priraďujeme práva na zápis a spustenie

Ak potrebujeme doplniť chýbajúce právo súboru pre používateľa (u), skupinu (g), ostatných (o) alebo všetkých (a), použijeme znak sčítania (prvý riadok). Ak existujúce právo odoberáme, použijeme znak odčítania (druhý riadok). A ak všetky existujúce práva nahrádzame iným právom, použijeme znak rovnosti (tretí riadok). Pomocou príkazu chmod (ako change mode) to zapíšeme nasledovne:

chmod u+x,g+x,o+w ~/test/obycajny_subor.txt
chmod a-x ~/test/obycajny_subor.txt
chmod a=rwx ~/test/obycajny_subor.txt

Ak použijeme číselné označenie práv súboru, takto zapíšeme právo čítania, zápisu a spustenia pre používateľa (číslica 7), právo čítania a zápisu pre skupinu (číslica 6) a právo čítania pre ostatných (číslica 4):

chmod 764 ~/test/obycajny_subor.txt

Pri nastavovaní práv súborov je potrebné vybrať si, či chceme práva označovať číselne alebo písmenami. Kombinácia nie je možná.

Zhrnutie

Aby sme v Linuxe mohli zodpovedne spravovať vlastníctvo a práva súborov, najskôr je potrebné pochopiť systém súborov a druhy súborov. Preto sme si v tomto návode postupne vysvetlili, do ktorých priečinkov Linux ukladá konkrétne súbory a aké druhy súborov Linux rozoznáva. Nakoniec sme si ukázali, ako zmeníme vlastníka a skupinu súborov a tiež sme ilustrovali zmenu práv pre používateľa, skupinu a všetkých ostatných.

Aktualizované 10. marca 2021

Bol pre vás tento návod nápomocný?

Mohlo by vás tiež zaujímať:

Spýtajte sa nás, radi poradíme
Po - Ne 8:00-22:00
Kontaktovať podporu