logo

Comanda Chmod în Linux/Unix cu exemple

Comanda Linux chmod este utilizată pentru a modifica permisiunile de acces ale fișierelor și directoarelor. Inseamna schimba modul . Nu poate modifica permisiunea linkurilor simbolice. Chiar și, ignoră legăturile simbolice care întâlnesc traversarea recursivă a directoarelor.

În Linux sistem de fișiere, fiecare fișier este asociat cu un anumit proprietar și are permisiunea de acces pentru diferiți utilizatori. Clasele de utilizatori pot fi:

  • proprietar
  • membrul grupului
  • Alții (toți ceilalți)

Permisiunile pentru fișiere în Linux sunt următoarele trei tipuri:

  • citeste (r)
  • scrie (w)
  • executa (x)

Scurt istoric al Chmod

În primul rând, comanda chmod este reprezentată în AT&T UNIX versiunea 1 cu apelul de sistem chmod. Listele de control al accesului au fost incluse în mai multe sisteme de fișiere, incluzând aceste moduri cele mai comune pentru a spori flexibilitatea, deoarece sistemele au crescut în tipuri și un număr de utilizatori.

Versiunea chmod aranjată în coreutils GNU a fost specificată de Jim Meyering și David MacKenzie. Această comandă este prezentă ca un pachet izolat pentru Microsoft Windows ca element al colecției de porturi Win32 native UnxUtils de utilitare de bază asemănătoare GNU Unix. De asemenea, comanda chmod a fost livrată către sistemul de operare IBM i.

Să vedem cum să schimbăm permisiunea fișierului folosind comanda chmod.

Sintaxă:

câte fructe sunt acolo

Sintaxa de bază a comenzii chmod este următoarea:

 chmod 

Opțiunile implementate în general sunt:

    -R:Aceasta înseamnă recursiv, adică adaugă obiecte în subdirectoare.-ÎN:Aceasta înseamnă verbose, afișare obiecte modificate (obiectele nemodificate nu sunt afișate).

Obiectul țintă este influențat dacă este menționată o legătură simbolică. Modurile de fișiere legate direct de legăturile simbolice nu sunt utilizate în mod obișnuit.

Componenta principală a permisiunii chmod:

De exemplu, rwxr-x---

Toate grupurile de trei caractere specifică permisiuni pentru toate clasele:

    rwx:Cele trei caractere din stânga specifică permisiunile pentru proprietarul fișierului (adică, clasa de utilizator).r-x:Cele trei caractere din mijloc specifică permisiunile pentru grupul care deține fișierul (adică, clasa Group).---:Cele trei caractere din dreapta specifică permisiunile pentru clasa Other. Utilizatorii care nu sunt proprietarul fișierului și membrii grupului nu pot accesa fișierul.

Opțiuni:

Comanda chmod acceptă următoarele opțiuni de linie de comandă:

-c, --modificări: Este similar cu opțiunea verbose, dar diferența este că este raportată dacă a fost făcută o modificare.

-f, --tăcut, --liniștit: Este folosit pentru a suprima mesajele de eroare.

-v, --verbos: Este folosit pentru a afișa un diagnostic pentru fiecare fișier procesat.

--no-preserve-root: Este folosit pentru a nu trata simbolul backslash ('/'), în special (prestabilit).

--preserve-root: Dacă se folosește această opțiune, nu va funcționa recursiv pe backslash ('/').

--reference=RFILE: Este folosit pentru a specifica modul RFILE sau valorile MODE.

-R, --recursiv: Este folosit pentru a schimba fișiere și directoare în mod recursiv.

--Ajutor: Este folosit pentru a afișa manualul de ajutor care conține o scurtă descriere a opțiunilor de utilizare și asistență.

--versiune: Este folosit pentru a afișa informațiile despre versiune.

dezactivarea modului dezvoltator Android

Sintaxa permisiunii fișierului

Dacă sunteți un utilizator nou, este posibil să vă confundați cu diferitele tipuri de litere folosite pentru a seta permisiunea de fișier. Deci, înainte de a continua cu comanda chmod, să înțelegem sintaxa permisiunii fișierului.

Pentru a seta permisiunea unui fișier sau director, trebuie să specificăm următoarele lucruri:

  • Cine: Cine suntem. (utilizator)
  • Ce: Ce modificare vom face (cum ar fi adăugarea sau eliminarea permisiunii)?
  • Care: Care dintre permisiuni?

Declarația de permisiune este reprezentată în indicatori precum u+x, u-x. Unde „u” înseamnă „utilizator”, „+” înseamnă adăugare, „-” înseamnă eliminare, „x” înseamnă executabil (care).

are următorul java

Valoarea utilizatorului poate fi:

u: proprietarul dosarului

g: membru al grupului

o: altele

a: toate

Tipurile de permisiuni pot fi r, w și x.

Setarea și actualizarea permisiunilor

Pentru a seta permisiunea unui fișier, executați o instrucțiune de permisiune cu comanda chmod. De exemplu, dorim să setăm permisiunea de citire și scriere pentru toți utilizatorii și grupurile de fișier „Demo.txt”. Trebuie să transmitem instrucțiunea de permisiune „u=rw,go=rw Demo.txt” cu comanda chmod. Pentru a afișa permisiunea de fișier, executați comanda de mai jos:

 ls -l Demo.txt 

Comanda de mai sus va afișa permisiunea curentă a fișierului pentru fișierul „Demo.txt”.

Pentru a schimba permisiunea, executați comanda de mai jos:

 chmod u=rw,go=rw Demo.txt 

Luați în considerare rezultatul de mai jos:

Comanda Linux chmod

Din rezultatul de mai sus, permisiunea de acces pentru „Demo.txt” s-a schimbat.

Setarea permisiunilor pentru mai multe fișiere

Putem seta permisiunea pentru mai multe fișiere simultan folosind comanda chmod. Pentru a modifica permisiunea de fișier a mai multor fișiere, specificați modelul de fișier cu comanda chmod. De exemplu, dacă dorim să setăm permisiunea de citire și scriere pentru toate fișierele text, specificați *. txt model cu comanda chmod.

Pentru a vedea permisiunea tuturor fișierelor text din directorul de lucru curent, executați comanda de mai jos:

 ls -l *.txt 

Acesta va lista toate fișierele text cu modul lor de permisiune. Luați în considerare rezultatul de mai jos:

Comanda chmod Linux

Din rezultatul de mai sus, multe fișiere au permisiunea de citire doar pentru alți utilizatori.

Pentru a seta permisiunea de citire și scriere pentru alți utilizatori, executați comanda de mai jos:

 chmod o+w *.txt 

Acesta va seta permisiunea de citire și scriere pentru alți utilizatori ai fișierelor text. Luați în considerare rezultatul de mai jos:

Comanda Linux chmod

Stenografia numerică

Putem folosi valorile numerice în loc de litere pentru a specifica permisiunile. O valoare din trei cifre este utilizată pentru a specifica permisiunea. Cifra din stânga reprezintă proprietarul (u), iar cifra din mijloc reprezintă membrii grupului (g). Cifra din dreapta reprezintă celelalte (o).

Următorul tabel reprezintă cifrele și permisiunile acestora:

Cifre Permisiuni
000 Fara permisiune
001 Executați permisiunea
010 Permisiune de scriere
011 Scrieți și executați permisiuni
100 Permisiune de citire
101 Citiți și executați permisiuni
110 Permisiuni de citire și scriere
111 Permisiuni de citire, scriere și executare

Moduri simbolice

De asemenea, comanda chmod acceptă notația simbolică cu granulație mai fină, care permite schimbarea unor moduri specifice. Modul simbolic constă din trei elemente, care sunt îmbinate pentru a forma un singur șir de text:

 $ chmod [references] [operator] [modes] file... 

Programul chmod aplică un operator pentru a defini modul în care ar trebui să fie aranjate modurile fișierelor. Operatorii de mai jos sunt aprobați:

regex java pentru
Operator Descriere
+ Se adaugă cele descrise la clasele descrise.
- Îndepărtează modul descris din clasele descrise.
= Reprezintă că modurile descrise urmează să fie create aceleași moduri pentru clasele descrise.

Modurile reprezintă ce permisiuni vor fi eliminate sau acordate din clasele descrise. Există în principal trei moduri comune care sunt legate de permisiunile comune:

Nume Modul Descriere
citit r Citește un fișier sau listează conținutul unui director.
scrie În Acesta scrie într-un director sau fișier.
a executa X Recursează un arbore de directoare sau execută un fișier.
execuție specială X Nu este permisiunea, ci poate fi folosită mai degrabă decât x. Folosește permisiunile de execuție pentru directoare în ciuda permisiunilor lor curente și folosește permisiunile de execuție pentru un fișier care are cel puțin un set de biți de permisiuni de execuție. Este util dacă este folosit cu operatorul „+” și fără a seta permisiunea de execuție, ceea ce s-ar întâmpla dacă am folosi doar chmod -R a+rx ., în timp ce putem implementa chmod -R a+rx . cu x mai degrabă.

Modificările multiple pot fi descrise prin izolarea mai multor moduri simbolice împreună cu virgule. Comanda chmod va inspecta umask dacă nu este specificat un utilizator.

Moduri speciale

De asemenea, comanda chmod poate modifica modurile speciale și permisiunile suplimentare ale unui director sau fișier. Modurile simbolice aplică „s” pentru a indica modurile setgid și setuid și „t” pentru a indica modul sticky. Un mod este folosit doar pentru clasele corecte, în ciuda faptului că sunt menționate sau nu alte clase.

Aproape toate sistemele de operare acceptă numeric specificația modului special, în special în octal, dar câteva nu o fac. Numai modurile simbolice pot fi aplicate acestor sisteme.

Câteva exemple de linie de comandă:

Comanda Descriere
chmod a+r publicComments.txt Va adăuga permisiunea de citire pentru fiecare clasă (adică, Grup, Proprietar și Alții).
chmod a-x publicComments.txt Va elimina permisiunea de execuție pentru fiecare clasă.
chmod a+rx viewer.sh Va adăuga permisiunile de execuție și citire pentru fiecare clasă.
chmod u=rw, g=r, o=internalPlan.txt Acesta va seta permisiunile de scriere și citire pentru utilizator, va fi citit pentru Grup și va respinge accesul pentru Alții.
chmod -R u+w, go-w docs Acesta va include permisiunea de scriere în documentele directorului și în fiecare conținut al acestuia pentru proprietar și șterge permisiunea de scriere pentru alții și grup.
chmod și=rw groupAgreements.txt Acesta va seta permisiunile de scriere și citire pentru grup și utilizator.
chmod 664 global.txt Va seta permisiunile de scriere și citire pentru grup și utilizator și va acorda permisiunea de citire celorlalți.
chmod 744 Show_myCV.sh Acesta va seta permisiunile de execuție, scriere și citire pentru utilizator și acordă permisiunea de citire Grupului și altora.