Okrem základnej Správy súborov a používateľov v linuxovom príkazovom riadku existujú aj špeciálne práva súborov, s ktorými sa používateľ pri vytváraní a upravovaní súborov nestretáva často.
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.
Spústenie súbora pod účtom vlastníka súboru (SUID)
Na spustenie niektorých programov v Linuxe nepotrebujeme práva používateľa root (napr. cez príkaz sudo
), dokonca aj keď majiteľom spúšťaného programu je root. Napríklad program slúžiaci na zmenu hesla používateľov passwd
síce patrí používateľovi root, ale spustí ho každý používateľ. Je to možné preto, lebo má nastavené právo spustenia (písmeno x) spolu s právom spustenia pod účtom majiteľa (písmeno s). Prejavuje sa to tak, že namiesto písmena x bude uvedené malé písmeno s (keď je spustenie povolené) alebo veľké písmeno S (keď je spustenie zakázané):
ls -l /usr/bin/passwd
Vďaka tomuto nastaveniu si môže ktorýkoľvek používateľ zmeniť heslo a zapisovať tak do súborov ako /etc/passwd
alebo /etc/shadow
– do ktorých má inak prístup iba používateľ root. Heslá ostatných používateľov však už bežný používateľ meniť nemôže. Program passwd totiž porovnáva UID používateľa, ktorý spúšťa program s UID používateľa, ktorého heslo sa má zmeniť. Ak sa obe UID nezhodujú, program passwd požiadavku na zmenu hesla zamietne.
Právo spustenia súboru pod účtom majiteľa môžeme pridať (druhý a štvrtý riadok) alebo odobrať (tretí a piaty riadok) pomocou príkazu chmod
s písmenom s (druhý a piaty riadok) alebo s číslicou 4 (štvrtý riadok), ktorú umiestnime pred ostatné tri číslice:
touch ~/obycajny_subor.txt
chmod u+s ~/obycajny_subor.txt
chmod 0764 ~/obycajny_subor.txt
chmod 4764 ~/obycajny_subor.txt
chmod u-s ~/obycajny_subor.txt
Spústenie súbora pod primárnou skupinou súboru (SGID)
To isté, ako pri spustení súboru pod účtom majiteľa (SUID), platí aj pri spustení súboru pod primárnou skupinou súboru (SGID). Akurát právo spustenia meníme skupine (druhý a piaty riadok) a číslica bude 2 (štvrtý riadok):
mkdir ~/testovaci_priecinok
chmod g+s ~/testovaci_priecinok
chmod 0764 ~/testovaci_priecinok
chmod 2764 ~/testovaci_priecinok
chmod g-s ~/testovaci_priecinok
Výhoda SGID spočíva v tom, že ak toto právo nastavíme priečinku, všetky ostatné súbory a priečinky vytvorené v tomto priečinku budú mať SGID nastavené tiež. Nebudú mať teda nastavené vlastníctvo na používateľa, ktorý ich vytváral. Táto výhoda sa využíva napríklad pri zdieľaní súborov v sieti cez Samba server, aby všetky súbory (bez ohľadu na to, kto ich vytvoril) mali vždy rovnaké práva.
Ochrana súboru proti premenovaniu alebo vymazaniu (Sticky Bit)
Písmeno t alebo číslica 1 namiesto písmena x v právach ostatných vyznačuje súbor, ktorý môže premenovať alebo zmazať iba vlastník alebo root. Takýmto spôsobom je chránený napríklad priečinok /tmp a všetky súbory a priečinky v ňom. Takto ochránime súbor či priečinok pred nechceným premenovaním alebo zmazaním:
chmod +t ~/test/obycajny_subor.txt
chmod 1764 ~/test/obycajny_subor.txt
chmod -t ~/test/obycajny_subor.txt
chmod 0764 ~/test/obycajny_subor.txt
Po spustení príkazu ls -l ~/test/obycajny_subor.txt
je teraz v prvom stĺpci na konci veľké písmeno T (keď je spustenie zakázané) alebo malé písmeno t (keď je spustenie povolené).
Zhrnutie
Ukázali sme si špeciálne práva súborov, ktoré využívajú najmä systémoví administrátori. Keďže tieto práva môžu ovplyvniť aj iné súbory a priečinky, je veľmi dôležité, aby sme ich používali premyslene. Tieto práva sa pri systémových priečinkoch a súboroch neodporúčajú meniť, resp. na zmenu musí byť vážny dôvod s dopredu zváženými následkami.