Android

Chmod naredba u Linuxu (dopuštenja datoteka)

Howto install Hive on Ubuntu

Howto install Hive on Ubuntu

Sadržaj:

Anonim

U Linuxu se pristupom datotekama upravlja putem dozvola, atributa i vlasništva datoteke. To osigurava da samo ovlašteni korisnici i procesi mogu pristupiti datotekama i mapama.

Ovaj je vodič opisao kako pomoću naredbe chmod mijenjati dozvole pristupa datotekama i mapama.

Dopuštenja za Linux datoteke

Prije nego što nastavimo dalje, objasnimo osnovni model dozvola za Linux.

U Linuxu je svaka datoteka povezana s vlasnikom i skupinom te joj je dodijeljena prava pristupa dozvole za tri različite klase korisnika:

  • Vlasnik datoteke.Članovi grupe.Ostali (svi ostali).

Vlasništvo datoteke može se promijeniti pomoću naredbi chown i chown .

Postoje tri vrste dozvola za datoteke koje se primjenjuju na svaku klasu:

  • Dopuštenje za čitanje. Dopuštenje za pisanje. Dopuštenje za izvršavanje.

Ovaj koncept omogućuje vam da odredite koji korisnici smiju čitati datoteku, pisati je ili izvršavati.

Dozvole datoteke mogu se pregledati pomoću naredbe ls :

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

Prvi znak prikazuje vrstu datoteke. To može biti obična datoteka ( - ), direktorij ( d ), simbolička veza ( l ) ili bilo koja druga posebna vrsta datoteke.

Sljedećih devet znakova predstavljaju dopuštenja za datoteke, tri trojke od po tri znaka. Prvi troplet prikazuje vlasnička dopuštenja, drugi skupna dopuštenja, a posljednji troplet prikazuje sva dopuštenja. Dozvole mogu imati različito značenje ovisno o vrsti datoteke.

U gornjem primjeru ( rw-r--r-- ) znači da je vlasnik datoteke pročitao i napisao dozvole ( rw- ), grupa i ostali imaju samo dozvole za čitanje ( r-- ).

Svaka od tri trostruke dozvole može biti sastavljena od sljedećih znakova i imati različite efekte, ovisno o tome jesu li postavljeni u datoteku ili u mapu:

Učinak dozvola na datoteke

Dopuštenje Lik Značenje na datoteci
Čitati - Datoteka nije čitljiva. Ne možete vidjeti sadržaj datoteke.
r Datoteka je čitljiva.
Pisati - Datoteka se ne može mijenjati ili mijenjati.
w Datoteka se može mijenjati ili mijenjati.
Izvršiti - Datoteka se ne može izvršiti.
x Datoteka se može izvršiti.
s Ako se nađe u user trojku, postavlja setuid bit. Ako se nađe u group setgid , postavlja postavljeni bitni bit. To ujedno znači da je postavljena x zastava.

Kada su setuid ili setgid zastave postavljene na izvršnu datoteku, datoteka se izvršava s vlasnikom datoteke i / ili grupnim povlasticama.

S Isto kao s ali zastava x nije postavljena. Ova se zastava rijetko koristi u datotekama.
t Ako se nađe u others trojkama, postavlja sticky bit.

To ujedno znači da je postavljena x zastava. Ova je zastava beskorisna u datotekama.

T Isto je kao t ali zastava x nije postavljena. Ova je zastava beskorisna u datotekama.

Učinak dozvola na mape (mape)

U Linuxu su direktori posebne vrste datoteka koje sadrže druge datoteke i mape.

Dopuštenje Lik Značenje u imeniku
Čitati - Sadržaj imenika ne može se prikazati.
r Može se prikazati sadržaj direktorija.

(npr. Možete popisati datoteke unutar mape s ls .)

Pisati - Sadržaj direktorija ne može se mijenjati.
w Sadržaj direktorija može se mijenjati.

(npr. ne možete stvoriti nove datoteke, obrisati datoteke.. itd.)

Izvršiti - Imenik se ne može promijeniti u.
x Imenik se može kretati pomoću cd .
s Ako se pronađe u user trojku, postavlja bit setuid . Ako se nađe u group setgid postavlja setgid bit. To ujedno znači da je postavljena x zastava. Kad je postavljena postavljena zastava u direktoriju, nove datoteke stvorene unutar nje nasljeđuju ID grupe direktorija (GID), umjesto primarnog ID-a grupe korisnika koji je stvorio datoteku.

setuid nema utjecaja na direktorije.

S Isto kao s ali zastava x nije postavljena. Ova je zastava beskorisna u imenicima.
t Ako se nađe u others trojkama, postavlja sticky bit.

To ujedno znači da je postavljena x zastava. Kad je ljepljivi bit postavljen u imenik, samo vlasnik datoteke, vlasnik mape ili administrativni korisnik mogu izbrisati ili preimenovati datoteke unutar mape.

T Isto je kao t ali zastava x nije postavljena. Ova je zastava beskorisna u imenicima.

Korištenje chmod

Naredba chmod ima sljedeći opći oblik:

chmod MODE FILE…

Naredba chmod omogućuje vam da promijenite dopuštenja za datoteku pomoću simboličkog ili numeričkog načina ili referentne datoteke. Kasnije ćemo detaljnije objasniti načine. Naredba može prihvatiti jednu ili više datoteka i / ili mapa odvojenih razmakom kao argumente.

Samo root, vlasnik datoteke ili korisnik s privilegijama sudo, može promijeniti dopuštenja datoteke. Budite posebno oprezni kada koristite chmod , osobito kad rekurzivno mijenjate dopuštenja.

Simbolična (tekstualna) metoda

Sintaksa naredbe chmod kod korištenja simboličkog načina ima sljedeći format:

chmod perms… FILE…

Prvi set zastava ( ), korisnik označava, definira koji korisnici klase dozvole za datoteku se mijenjaju.

  • u - Vlasnik datoteke g - Korisnici koji su članovi grupe. o - Svi ostali korisnici. a - Svi korisnici, identični ugo .

Ako je korisnička zastava izostavljena, zadana je a a na dopuštenja koja postavlja umask ne utječu.

Drugi set zastava ( ), operativne zastave, definira hoće li dozvole biti uklonjene, dodane ili postavljene:

  • - Uklanja navedena dopuštenja. + Dodaje navedena dopuštenja. = Mijenja trenutna dopuštenja u navedena dopuštenja. Ako nakon simbola = nije navedena nikakva dozvola, sva dopuštenja iz navedene korisničke klase se uklanjaju.

Dozvole ( perms… ) mogu se izričito postaviti koristeći nulu ili jedno ili više sljedećih slova: r , w , x , X , s i t . Koristite jedno slovo iz skupa u , g i o prilikom kopiranja dozvola s jedne na drugu klasu korisnika.

Pri postavljanju dozvola za više od jedne korisničke klase ( ), zarezima (bez razmaka) koristite za odvajanje simboličkih modova.

Ispod je nekoliko primjera kako koristiti chmod naredbu u simboličkom načinu:

  • Dajte članovima grupe dozvolu da čitaju datoteku, ali ne i da je pišu i izvršavaju:

    chmod g=r filename

    Uklonite dozvolu za izvršenje za sve korisnike:

    chmod ax filename

    Odbojno uklonite dozvolu za pisanje drugim korisnicima:

    chmod -R ow dirname

    Uklonite dozvolu za čitanje, pisanje i izvršavanje za sve korisnike osim vlasnika datoteke:

    chmod og-rwx filename

    Ista stvar se može postići i sljedećim obrascem:

    chmod og= filename

    Dajte dozvolu za čitanje, pisanje i izvršavanje vlasniku datoteke, pročitajte dozvole grupi datoteka i ne dopuštajte svim ostalim korisnicima:

    chmod u=rwx, g=r, o= filename

    Dodajte vlasnička dopuštenja datoteke datotečnim dozvolama koje imaju članovi grupe datoteke:

    chmod g+u filename

    Dodajte ljepljivi zalogaj u zadani direktorij:

    chmod o+t dirname

Numerička metoda

Sintaksa naredbe chmod kod korištenja numeričke metode ima sljedeći format:

chmod NUMBER FILE…

Kada koristite numerički način, možete postaviti dopuštenja za sve tri korisničke klase (vlasnika, grupe i sve ostale) istovremeno.

NUMBER može biti 3 ili četverocifreni broj.

Kada se koristi 3-znamenkasti broj, prva znamenka predstavlja dopuštenja vlasnika datoteke, druga grupa iz datoteke i zadnja svi ostali korisnici.

Sva dopuštenja za pisanje, čitanje i izvršavanje imaju sljedeću brojčanu vrijednost:

  • r (čitanje) = 4 w (pisanje) = 2 x (izvršenje) = 1no dopuštenja = 0

Broj dozvola određene korisničke klase predstavljen je zbrojem vrijednosti dozvola za tu grupu.

Da biste u numeričkom načinu saznali dopuštenja datoteke, jednostavno izračunajte ukupne vrijednosti za sve klase korisnika. Na primjer, da biste vlasniku datoteke dali čitanje, pisanje i izvršavanje dozvola, čitanje i izvršavanje dopuštenja grupi datoteka, a dozvole za čitanje samo ostalim ostalim korisnicima učinili biste sljedeće:

  • Vlasnik: rwx = 4 + 2 + 1 = 7Grupa: rx = 4 + 0 + 1 = 5Drugi: rx = 4 + 0 + 0 = 4

Pomoću gornje metode dolazimo do broja 754 , koji predstavlja željena dopuštenja.

Za postavljanje setuid , setgid i sticky bit zastava koristite četveroznamenkasti broj.

Kada se koristi četveroznamenkasti broj, prva znamenka ima sljedeće značenje:

  • setuid = 4setgid = 2sticky = 1no se mijenja = 0

Sljedeće tri znamenke imaju isto značenje kao i kad koristite trocifren broj.

Ako je prva znamenka 0, može se izostaviti, a način rada može se predstaviti s 3 znamenke. Numerički način 0755 je isti kao 755 .

Za izračunavanje numeričkog načina možete upotrijebiti i drugu metodu (binarnu metodu), ali ona je malo složenija. Znanje kako izračunati numerički način rada koristeći 4, 2 i 1 dovoljno je za većinu korisnika.

Dozvole datoteke možete provjeriti u numeričkom zapisu pomoću naredbe stat :

stat -c "%a" filename

644

Evo nekoliko primjera kako koristiti naredbu chmod u numeričkom načinu:

  • Dajte vlasniku datoteke dozvole za čitanje i pisanje i samo za čitanje dozvola članovima grupe i svim ostalim korisnicima:

    chmod 644 dirname

    Dajte vlasniku datoteke čitanje, pisanje i izvršavanje dozvola, čitanje i izvršavanje dopuštenja članovima grupe, a ne dopuštenja svim ostalim korisnicima:

    chmod 750 dirname

    Dajte dopuštenja za čitanje, pisanje i izvršavanje i ljepljivi zalogaj u datoj mapi:

    chmod 1777 dirname

    Rekurzivno postavljene dozvole za čitanje, pisanje i izvršavanje vlasniku datoteke i nikakve dozvole za sve ostale korisnike u datoj mapi:

    chmod -R 700 dirname

Korištenje referentne datoteke

Opcija --reference=ref_file omogućuje vam da postavite dopuštenja datoteke jednaka onima iz određene referentne datoteke ( ref_file ).

chmod --reference=REF_FILE FILE

Na primjer, sljedeća naredba dodijelit će dopuštenja file1 file2

chmod --reference=file1 file2

Rekurzivno mijenjajte dozvole datoteke

Da biste rekurzivno radili na svim datotekama i mapama u datoj mapi, koristite opciju -R ( --recursive ):

chmod -R MODE DIRECTORY

Na primjer, za promjenu dozvola za sve datoteke i poddirektoriju u /var/www direktoriju u 755 biste koristili:

chmod -R 755 /var/www

Djelovanje na simboličkim vezama

Simboličke veze uvijek imaju 777 dozvola.

Prema zadanim postavkama, prilikom promjene dopuštenja symlink-a, chmod će promijeniti dopuštenja za datoteku na koju upućuje veza.

chmod 755 symlink

Velike su šanse da, umjesto da promijenite ciljno vlasništvo, dobit ćete pogrešku "ne može pristupiti" simbol veze ": Dozvola odbijena.

Do pogreške dolazi jer su zadane postavke na većini Linux distribucija zaštićene veze i ne možete raditi na ciljnim datotekama. Ova je opcija navedena u /proc/sys/fs/protected_symlinks . 1 znači omogućeno, a 0 onemogućeno. Preporučuje se ne isključiti zaštitu simboličke veze.

Skupna promjena dopuštenja datoteka

Ponekad postoje situacije u kojima biste trebali skupiti dopuštenja datoteka i direktorija.

Najčešći je scenarij rekurzivna promjena dopuštenja datoteke web stranice na 644 i dozvole direktorija u 755 .

Pomoću numeričke metode:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

Pomoću simboličke metode:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

Naredba find će pretraživati ​​datoteke i direktorije pod /var/www/my_website i proslijediti svaku pronađenu datoteku i mapu naredbi chmod da bi postavila dozvole.

Zaključak

Naredba chmod mijenja dopuštenja datoteke. Dozvole se mogu postaviti bilo simboličkim ili numeričkim načinom.

Da biste saznali više o chmod posjetite stranicu chmod man.

chmod terminal