Si të përdorni komandën chmod në Linux


Përmbledhje: Chmod merr tre argumente kryesore: r, w dhe x, të cilat janë respektivisht për lexim, shkrim dhe ekzekutim. Shtimi ose heqja e kombinimeve të argumenteve kontrollon lejet e skedarëve dhe dosjeve. Për shembull, chmod +rwx shton leje për të lexuar, shkruar dhe ekzekutuar skriptet. Ekzekutimi i chmod -wx heq aftësinë për të shkruar dhe ekzekutuar.

Kontrolloni se kush mund të hyjë në skedarë, të kërkojë direktori dhe të ekzekutojë skriptet duke përdorur komandën chmod të Linux. Kjo komandë modifikon lejet e skedarëve Linux, të cilat duken të ndërlikuara në shikim të parë, por në fakt janë mjaft të thjeshta pasi të dini se si funksionojnë.

chmod Modifikon lejet e skedarit

Në Linux, kush mund të bëjë çfarë me një skedar ose drejtori kontrollohet përmes grupeve të lejeve. Ka tre grupe lejesh. Një grup për zotëruesin e skedarit, një grup tjetër për anëtarët e grupit të skedarit dhe një grup përfundimtar për të gjithë të tjerët.

Lejet kontrollojnë veprimet që mund të kryhen në skedar ose direktori. Ato ose lejojnë, ose parandalojnë, një skedar të lexohet, modifikohet ose, nëse është një skript ose program, të ekzekutohet. Për një direktori, lejet rregullojnë se kush mund të cd në drejtori dhe kush mund të krijojë ose modifikojë skedarë brenda drejtorisë.

Ju përdorni komandën chmod për të vendosur secilën nga këto leje. Për të parë se cilat leje janë vendosur në një skedar ose drejtori, mund të përdorim ls.

Shikimi dhe Kuptimi i Lejeve të Skedarit

Mund të përdorim opsionin -l (format i gjatë) që të listojmë ls lejet e skedarëve për skedarët dhe drejtoritë.

ls -l

Në çdo rresht, karakteri i parë identifikon llojin e hyrjes që renditet. Nëse është një vizë (-) është një skedar. Nëse është shkronja d është një direktori.

Nëntë karakteret e ardhshme përfaqësojnë cilësimet për tre grupet e lejeve.

  • Tre karakteret e para tregojnë lejet për përdoruesin që zotëron skedarin (lejet e përdoruesit).
  • Tre karakteret e mesme tregojnë lejet për anëtarët e grupit të skedarit (lejet e grupit).
  • Tre karakteret e fundit tregojnë lejet për këdo që nuk është në dy kategoritë e para (lejet e tjera).

Ka tre karaktere në çdo grup të lejeve. Karakteret janë tregues për praninë ose mungesën e njërës prej lejeve. Ato janë ose një vizë (-) ose një shkronjë. Nëse karakteri është një vizë, kjo do të thotë se leja nuk është dhënë. Nëse karakteri është një r, w ose një x, kjo leje është dhënë.

Shkronjat përfaqësojnë:

  • r: Lejet e leximit. Skedari mund të hapet dhe të shikohet përmbajtja e tij.
  • w: Lejet e shkrimit. Skedari mund të modifikohet, modifikohet dhe fshihet.
  • x: Ekzekutoni lejet. Nëse skedari është një skript ose një program, ai mund të ekzekutohet (ekzekutohet).

Për shembull:

  •  --- do të thotë se nuk janë dhënë fare leje.
  •  rwx do të thotë që lejet e plota janë dhënë. Treguesit e leximit, shkrimit dhe ekzekutimit janë të gjithë të pranishëm.

Në pamjen tonë të ekranit, rreshti i parë fillon me një d. Kjo linjë i referohet një drejtorie të quajtur arkivë. Pronari i drejtorisë është dave, dhe emri i grupit të cilit i përket drejtoria quhet gjithashtu dave.

Tre karakteret e ardhshme janë lejet e përdoruesit për këtë drejtori. Këto tregojnë se pronari ka leje të plota. Karakteret r, w dhe x janë të gjithë të pranishëm. Kjo do të thotë që përdoruesi dave ka leje për të lexuar, shkruar dhe ekzekutuar për atë direktori.

Grupi i dytë me tre karaktere janë lejet e grupit, këto janë r-x. Këto tregojnë se anëtarët e grupit dave kanë lexuar dhe ekzekutuar lejet për këtë direktori. Kjo do të thotë se ata mund të rendisin skedarët dhe përmbajtjen e tyre në drejtori, dhe ata mund të cd (ekzekutojnë) në atë direktori. Ata nuk kanë leje shkrimi, kështu që nuk mund të krijojnë, modifikojnë ose fshijnë skedarë.

Grupi i fundit i tre karaktereve është gjithashtu r-x. Këto leje zbatohen për njerëzit që nuk qeverisen nga dy grupet e para të lejeve. Këta njerëz (të quajtur të tjerë) kanë lexuar dhe ekzekutuar lejet në këtë direktori.

Pra, për ta përmbledhur, anëtarët e grupit dhe të tjerët kanë lexuar dhe ekzekutuar lejet. Pronari, një përdorues i quajtur dave, ka gjithashtu leje shkrimi.

Për të gjithë skedarët e tjerë (përveç skedarit të skriptit mh.sh) dave dhe anëtarët e grupit dave kanë veçori të leximit dhe shkrimit në skedarë, dhe të tjerët kanë vetëm leje leximi.

Për rastin e veçantë të skedarit të skriptit mh.sh, pronari dave dhe anëtarët e grupit kanë leje leximi, shkrimi dhe ekzekutimi, dhe të tjerët kanë vetëm leje leximi dhe ekzekutimi.

Kuptimi i sintaksës së lejeve

Për të përdorur chmod për të vendosur lejet, duhet t'i tregojmë:

  • Kush: Për kë po caktojmë lejet.
  • Çfarë: Çfarë ndryshimi po bëjmë? A e shtojmë apo e heqim lejen?
  • Cila: Cilat nga lejet po vendosim?

Ne përdorim tregues për të përfaqësuar këto vlera dhe formojmë deklarata të lejeve të shkurtra si u+x, ku u do të thotë përdorues (kush), + do të thotë shto (çfarë) dhe “x” do të thotë leja e ekzekutimit (e cila).

Vlerat who që mund të përdorim janë:

  • u: Përdoruesi, që do të thotë pronari i skedarit.
  • g: Grupi, që do të thotë anëtarë të grupit të cilit i përket skedari.
  • o: Të tjera, që do të thotë njerëz që nuk qeverisen nga lejet u dhe g.
  • a: Të gjitha, që do të thotë të gjitha sa më sipër.

Nëse asnjë nga këto nuk përdoret, chmod sillet sikur të ishte përdorur a.

Vlerat çfarë që mund të përdorim janë:

  • : Shenja minus. Heq lejen.
  • +: Shenja plus. Jep lejen. Leja u shtohet lejeve ekzistuese. Nëse dëshironi ta keni këtë leje dhe vetëm këtë të caktuar leje, përdorni opsionin =, të përshkruar më poshtë.
  • =: Shenja e barazimit. Vendosni një leje dhe hiqni të tjerat.

Vlerat cilat që mund të përdorim janë:

  • r:  Leja e leximit.
  • w: Leja e shkrimit.
  • x: Leja e ekzekutimit.

Vendosja dhe modifikimi i lejeve

Le të themi se kemi një skedar ku të gjithë kanë leje të plota për të.

ls -l new_ file.txt

Ne dëshirojmë që përdoruesi dave të ketë leje leximi dhe shkrimi dhe grupi dhe përdoruesit e tjerë të kenë vetëm leje leximi. Ne mund të bëjmë duke përdorur komandën e mëposhtme:

chmod u=rw,og=r new_file.txt

Përdorimi i operatorit=do të thotë që ne fshijmë çdo leje ekzistuese dhe më pas vendosim ato të specifikuara.

le të kontrollojmë lejen e re për këtë skedar:

ls -l new_file.txt

Lejet ekzistuese janë hequr dhe lejet e reja janë vendosur, siç e prisnim.

Si thua të shtosh një leje pa hequr cilësimet ekzistuese të lejeve? Ne gjithashtu mund ta bëjmë atë lehtësisht.

Le të themi se kemi një skedar skripti që kemi përfunduar së redaktimi. Ne duhet ta bëjmë atë të ekzekutueshëm për të gjithë përdoruesit. Lejet e tij aktuale duken kështu:

ls -l new_script.sh

Ne mund të shtojmë lejen e ekzekutimit për të gjithë me komandën e mëposhtme:

chmod a+x new_script.sh

Nëse i hedhim një sy lejeve, do të shohim se leja e ekzekutimit tani u jepet të gjithëve dhe lejet ekzistuese janë ende në fuqi.

ls -l new_script.sh

Mund të kishim arritur të njëjtën gjë pa a në deklaratën a+x. Komanda e mëposhtme do të kishte funksionuar po aq mirë.

chmod +x new_script.sh

Vendosja e lejeve për skedarë të shumtë

Ne mund të aplikojmë leje për shumë skedarë të gjithë menjëherë.

Këto janë skedarët në drejtorinë aktuale:

ls -l

Le të themi se duam të heqim lejet e leximit për përdoruesit të tjerë nga skedarët që kanë një shtesë .page. Këtë mund ta bëjmë me komandën e mëposhtme:

chmod o-r *.page

Le të kontrollojmë se çfarë efekti ka pasur:

ls -l

Siç mund ta shohim, leja e leximit është hequr nga skedarët .page për kategorinë tjetër të përdoruesve. Asnjë skedar tjetër nuk është prekur.

Nëse do të kishim dashur të përfshinim skedarë në nëndrejtori, mund të kishim përdorur opsionin -R (rekurziv).

chmod -R o-r *.page

Shkurtima numerike

Një mënyrë tjetër për të përdorur chmod është të jepni lejet që dëshironi t'i jepni zotëruesit, grupit dhe të tjerëve si një numër treshifror. Shifra më e majtë përfaqëson lejet për pronarin. Shifra e mesme përfaqëson lejet për anëtarët e grupit. Shifra më e djathtë përfaqëson lejet për të tjerët.

Shifrat që mund të përdorni dhe çfarë përfaqësojnë janë renditur këtu:

  • 0: (000) Pa leje.
  • 1: (001) Ekzekutoni lejen.
  • 2: (010) Leje shkrimi.
  • 3: (011) Shkrimi dhe ekzekutimi i lejeve.
  • 4: (100) Leje leximi.
  • 5: (101) Lexoni dhe ekzekutoni lejet.
  • 6: (110) Lejet e leximit dhe shkrimit.
  • 7: (111) Lexoni, shkruani dhe ekzekutoni lejet.

Secila nga tre lejet përfaqësohet nga një prej biteve në ekuivalentin binar të numrit dhjetor. Pra, 5, që është 101 në binar, do të thotë lexo dhe ekzekuto. 2, që është 010 në binar, do të thotë leja e shkrimit.

Duke përdorur këtë metodë, ju vendosni lejet që dëshironi të keni; ju nuk i shtoni këto leje te lejet ekzistuese. Pra, nëse lejet e leximit dhe shkrimit ishin tashmë të vendosura, do të duhet të përdorni 7 (111) për të shtuar lejet e ekzekutimit. Përdorimi i 1 (001) do të hiqte lejet e leximit dhe shkrimit dhe do të shtonte lejen e ekzekutimit.

Le të shtojmë përsëri lejen e leximit në skedarët .page për kategoritë e tjera të përdoruesve. Ne duhet të vendosim gjithashtu lejet e përdoruesit dhe të grupit, kështu që duhet t'i vendosim ato në atë që janë tashmë. Këta përdorues tashmë kanë leje leximi dhe shkrimi, që është 6 (110). Ne duam që të tjerët të kenë lexime dhe leje, kështu që ato duhet të vendosen në 4 (100).

Komanda e mëposhtme do ta realizojë këtë:

chmod 664 *.page

Kjo vendos lejet që kërkojmë për përdoruesin, anëtarët e grupit dhe të tjerët në atë që kërkojmë. Përdoruesve dhe anëtarëve të grupit lejet e tyre u rivendosen në atë që ishin tashmë, dhe të tjerëve u rivendoset leja e leximit.

ls -l

Opsione te avancuara

Nëse lexoni faqen e njeriut për chmod, do të shihni se ka disa opsione të avancuara që lidhen me bitet SETUID dhe SETGID, si dhe me fshirjen e kufizuar ose bitin ngjitës.

Për 99% të rasteve që do t'ju duhet chmod, opsionet e përshkruara këtu do t'ju mbulojnë.

RELATED: Best Linux Laptops for Developers and Enthusiasts