Kot novi uporabnik Linuxa se seznanite z dovoljenji in lastništvom, povezanimi z datoteko in imeniki. Operacijski sistemi, podobni Linuxu/Unixu, vam omogočajo, da nastavite kombinacijo devet-bitnih dovoljenj, da preprečite drugim uporabnikom nepotrebni dostop do datotek/imenikov. Tem so podobna posebna dovoljenja za izvedljive datoteke, znane kot set UID, set GID in lepljivi biti.

Razumevanje posebnih dovoljenj je lahko za ambiciozne skrbnike Linuxa nekoliko pretežko. Tukaj se boste naučili malo ozadja o običajnih dovoljenjih za datoteke in razložili, kako se razlikujejo od posebnih dovoljenj. Predstavljamo tudi funkcionalnost SetID, GetID in lepljivih bitov s primeri za celovito razumevanje.

Običajna dovoljenja za datoteke za Linux

Linux uporablja ukaz chmod dodeliti/spremeniti branje (r=4), napiši (w=2) in izvrši (x=1) dovoljenja za datoteke in mape. Se pravi, devet zgoraj omenjenih bitov velja za tri glavne kategorije skupin dovoljenj. Prvi trije so za uporabnika, ki je lastnik datoteke, drugi niz je za skupino, ki je dodeljena datoteki/imeniku, zadnji trije pa predstavljajo vse druge uporabnike.

instagram viewer

Na primer, običajna datoteka bo vse vrste dovoljenj za vse kategorije uporabnikov prikazane kot -rwxrwxrwx. Medtem ko - namesto črk predstavlja odsotnost tega dovoljenja. zdaj chmod ukaz uporablja številke in črke za spreminjanje dovoljenj, kot sledi:

sudo chmod 755 datoteka #za rwxr-xr-x 
sudo chmod 644 datoteka #za rw-r--r-- 
sudo chmod a-w datoteka #za r-xr-xr-x 
sudo chmod a+x datoteka #za --x--x--x

Posebna dovoljenja za datoteke Linux

The setuid bit predstavlja dovoljenje za izvedljivo datoteko, ki jo lahko izvajajo drugi uporabniki z lastnikovim pooblastilom. Na primer, ko uporabnik maks zažene ukaz vi kot uporabnik Janez, boste imeli dovoljenja za branje/pisanje Janez.

Za identifikacijo datotek s setuid uporabite ls povejte in poiščite s bit namesto izvedljivega bita x, kot sledi.

Nastavite bit UID

The setuid bit predstavlja dovoljenje za izvedljivo datoteko, ki jo lahko izvajajo drugi uporabniki z lastnikovim pooblastilom. Na primer, ko uporabnik maks zažene ukaz vi kot koren, bo imel dovoljenja za branje/pisanje koren. Za identifikacijo datotek s setuid uporabite ls povejte in poiščite s bit namesto izvršilnega bita x, kot sledi:

ls -la /etc/passwd 
-rwsr-xr-x 1 korenski koren 88464 14. december 12:46 passwd

Nekateri drugi primeri so:

ls -la /bin/gpasswd
-rwsr-xr-x 1 korenski koren 88464 14. julij 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 korenski koren 67816 21. julij 2020 su
ls -la /newgrp
-rwsr-xr-x 1 korenski koren 44784 14. julij 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 korenski koren 166056 19. januar 2021 sudo

Če želite nastaviti bit setuid za izvedljive datoteke, uporabite ukaz chmod, kot sledi:

chmod u+s /etc/passwd

Če želite odstraniti dovoljenje za izvajanje datotek nekorenskim uporabnikom ali lastnikom:

chmod u-s /etc/passwd

Nastavite GID Bit

Kot smo že omenili, set uid bit nadzoruje dostop do datotek za druge uporabnike, medtem ko bit setgid (GID) ustvarja skupne imenike. To pomeni, da je vsaka datoteka, ustvarjena v tem imeniku, dostopna skupini imenika. Zato vsem članom skupine omogoča zagon izvedljivih datotek brez privilegijev lastnika in jih ščiti pred drugimi uporabniki.

Sledite tem korakom, da ustvarite sodelovalni imenik v vašem sistemu Linux:

Ustvarite skupino z uporabo groupadd ukaz z ID-jem skupine 415 za sodelovanje:

groupadd -g 415 skrbnikov

Za dodajanje uporabite ukaz usermod Janezskupini za dostop/izvajanje datotek.

usermod -aG skrbniki john

Uporabi mkdir ukaz za ustvarjanje imenika:

mkdir /tmp/collaborative_dir

Uporabi chgrp ukaz za dodelitev imenika skrbniki skupina:

chgrp skrbniki /tmp/collaborative_dir

Uporabi chmod ukaz za spremembo dovoljenja imenika na 2775. 2 bit vklopi nastavljeni gid, 7 za dodelitev celotnega rwx uporabniku in skupini, medtem ko 5 (r-w) za druge.

chmod 2775 /tmp/collaborative_dir

Nazadnje spremenite svoj uporabniški račun v Janez in ustvarite datoteko v imeniku za sodelovanje, da preverite dovoljenja za datoteke.

su - Janez
dotaknite se /tmp/collaborative_dir/file.txt

Ukaz su vam lahko povzroči napako pri preverjanju pristnosti. V tem primeru vnesite sudo su ukaz za preklop na koren in ponovni zagon su - Janez spremeniti uporabniški račun

Zdaj navedite dovoljenja za preverjanje bitov (-ov) GID za imenik in novo ustvarjeno datoteko.

ls -ld /tmp/collaborative_dir /tmp/collaborative_dir/file.txt 

V tipičnem scenariju bo datoteka, ki jo je ustvaril john, dodeljena skupini john. Ker ustvarite datoteko v nastavljenem imeniku bitov GID, dodeli dovoljenja za skrbniki skupina, tako da je vsem, ki pripada skupini, všeč uporabnik chris, bo imel dostop do njega.Povezano: Kako ustvariti nove datoteke v Linuxu z uporabo dotika

Sticky Bits

Za razliko od bitov SID in GID se lepljivi biti razlikujejo po funkcionalnosti, saj ščitijo datoteke in imenike pred preimenovanjem in brisanjem s strani drugih uporabnikov. Redno dovoljenje za datoteko omogoča vsakemu uporabniku z dostopom za pisanje, da izbriše ali preimenuje datoteko. Medtem ko z nastavljenim lepljivim bitom to ni mogoče, razen če ste root uporabnik ali lastnik datoteke.

Idealen scenarij za uporabo lepljivih bitov je imenik, ki je dostopen vsem uporabnikom za ustvarjanje datotek. Na primer, uporabite ls -ld ukaz za preverjanje \tmp dovoljenja imenika, kot sledi:

Opazite lahko, da je lepljivi delček t zamenja izvršilni bit x. Sledite podanemu nizu navodil za ustvarjanje imenika z omejenim brisanjem:

Zdaj ustvarite drug imenik v /tmp mapa:

mkdir /tmp/nov_dir

Spremenite dovoljenja datoteke v 1777 za nastavitev lepljivega bita (t) in popoln dostop do imenika:

chmod 1777 /tmp/new_dir

Zdaj kopirajte katero koli datoteko iz /etc mapo v /tmp/new_dir in spremenite svoja dovoljenja v 666:

cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/services

Navedite imenik in vso njegovo vsebino za ogled dovoljenj:

ls -ld /tmp/nov_dir /tmp/nov_dir/services

Namesto izvršilnega bita lahko opazite lepljivi bit, kar pomeni, da lahko samo koren ali uporabnik john izbriše datoteko, saj je datoteka znotraj imenika sticky bit.

Razumevanje posebnih dovoljenj datotek v Linuxu

Članek prikazuje, kako nastaviti te bite za izboljšanje sodelovanja nad datotekami in imeniki v skupni rabi ter jih zaščititi pred nepooblaščenim dostopom, izvajanjem in brisanjem. Tudi če s temi deli ne ustvarite datotek/imenikov, je razumevanje posebnih dovoljenj datotek koristno v mnogih situacijah, zlasti pri odpravljanju težav ali kot sistemski skrbnik. Medtem ko lahko nespametna uporaba teh bitov povzroči različne varnostne ranljivosti.

Kako ohraniti dovoljenja za datoteke med kopiranjem datotek v Linuxu

Želite obdržati dovoljenja za datoteke med kopiranjem datotek v Linuxu? Tukaj je opisano, kako to storiti s pomočjo cp in rsync.

Preberite Naprej

DelitiTweetE-naslov
Povezane teme
  • Linux
  • Upravljanje datotek
  • Linux
O avtorju
Rumaisa Niazi (Objavljeni 3 članki)

Rumaisa je svobodna pisateljica pri MUO. Pretekla je dolgo pot od matematike do navdušenca za informacijsko varnost in dela kot analitik SOC. Njena zanimanja vključujejo branje in pisanje o novih tehnologijah, distribucijah Linuxa in karkoli v zvezi z informacijsko varnostjo.

Več od Rumaisa Niazi

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite