comenzile Ubuntu chmod. Chmod: modificarea permisiunilor

În documentația noastră a umask comanda. Conține o descriere cuprinzătoare a modului de definire și specificare a permisiunilor pentru fișiere.

În general, chmod comenzile iau forma:

Chmod Opțiuni permisiuni nume de fișier

Daca nu Opțiuni sunt specificate, chmod modifică permisiunile fișierului specificat de nume de fișier la permisiunile specificate de permisiuni.

permisiuni definește permisiunile pentru proprietarul fișierului („utilizatorul”), membrii grupului care deține fișierul („grupul”) și oricine altcineva („alții”). Există două moduri de a reprezenta aceste permisiuni: cu simboluri (caractere alfanumerice) sau cu numere octale (cifrele 0 prin 7 ).

Să presupunem că sunteți proprietarul unui fișier numit fisierul meuși doriți să setați permisiunile astfel încât:

  1. cel u ser poate r ead, w rit, și e X ecute-l;
  2. membri ai dvs g rup poate r ead și e X ecute-l; și
  3. o alea poate numai r ia-l.

Această comandă va face truc:

Chmod u = rwx, g = rx, o = r myfile

Acest exemplu folosește notația simbolică a permisiunilor. Scrisorile u, g, și o sta pentru " utilizator", "grup", și" alte". Semnul egal (" = ") înseamnă" setați permisiunile exact așa, "și literele" r", "w", și" X„stand for” read ”, write” și, respectiv, execute. Virgulele separă diferitele clase de permisiuni și nu există spații între ele.

Iată comanda echivalentă folosind notația octală a permisiunilor:

Chmod 754 myfile

Aici cifrele 7 , 5 , și 4 fiecare reprezintă în mod individual permisiunile pentru utilizator, grup și altele, în această ordine. Fiecare cifră este o combinație de numere 4 , 2 , 1 , și 0 :

  • 4 înseamnă „citește”,
  • 2 înseamnă „scrie”,
  • 1 înseamnă „execută” și
  • 0 înseamnă „fără permisiune”.

Asa de 7 este combinația de permisiuni 4 +2 +1 (citește, scrie și execută), 5 este 4 +0 +1 (citiți, nu scrieți și executați) și 4 este 4 +0 +0 (citește, nu scrie și nu execută).

Sintaxă

chmod [ OPȚIUNE]... MOD[,MOD]... FIŞIER... chmod [ OPȚIUNE]... OCTAL-MODE FIŞIER... chmod [ OPȚIUNE] ... --reference = FIȘIERĂ...

Opțiuni

-c, --schimbări

Ca --verbos, dar dă rezultate detaliate numai atunci când se realizează o modificare.

-f, --tăcut, --Liniște

Mod silențios; suprima majoritatea mesajelor de eroare.

-v, --verbos

Mod verbal; emite un mesaj de diagnosticare pentru fiecare fișier procesat.

--no-preserve-root

Afișați un mesaj de ajutor și ieșiți.

Proprietarul fișierului.

personalul de speranta

Grupul căruia îi aparține fișierul.

03 februarie 15:36

Fișierul „s mtime (data și ora la care fișierul a fost modificat ultima dată).

fișier.txt

Numele fișierului.

Exemple

chmod 644 fișier.htm

Setați permisiunile pentru fișier.htm la „proprietarul poate citi și scrie; grupul poate doar citi; alții pot doar citi”.

Chmod -R 755 myfiles

Recursiv ( -R) Modificați permisiunile directorului fișierele mele, și toate folderele și fișierele pe care le conține, la modul 755 : Utilizatorul poate citi, scrie și executa; membrii grupului și alți utilizatori pot citi și executa, dar nu pot scrie.

Chmod u = rw example.jpg

Modificați permisiunile pentru proprietarul exemplu.jpg pentru ca proprietarul să citească și să scrie fișierul. Nu modifica permisiunile pentru grup sau pentru alții.

Chmod u + s comphope.txt

Setați bitul „Set-User-ID” al compope.txt, astfel încât oricine încearcă să acceseze acel fișier o face ca și cum ar fi proprietarul fișierului.

Chmod u-s comphope.txt

Opusul comenzii de mai sus; dezactivează bitul SUID.

Chmod 755 file.cgi

Setați permisiunile pentru fişier.cgi să „citească, să scrie și să execute de către proprietar” și „să citească și să se execute de către grup și de toți ceilalți”.

Chmod 666 file.txt

Setați permisiunea de fișier.txt să „citească și să scrie de toată lumea”.

Chmod a = rw file.txt

Realizează același lucru ca și comanda de mai sus, folosind notația simbolică.

Comenzi aferente

chown- Schimbați dreptul de proprietate asupra fișierelor sau directoarelor.
getfacl- Afișează listele de control al accesului la fișiere.
ls- Listați conținutul unui director sau directoare.

Schimbați permisiunile pentru fișiere

Sintaxă:

chmod[-fv] [-R [-H | -L | -P]] fișier de mod ... chmod[-fv] [-R [-H | -L | -P]] [-a | + a | = a] Fișierul ACE ... chmod[-fhv] [-R [-H | -L | -P]] [ ACL_Opțiune] fişier ...

Opțiuni:

-R Recursiune. Folosit pentru foldere. Modifică drepturile nu numai pentru obiectul specificat, ci și pentru toate imbricate în el
-R -H Urmați linkurile simbolice în Linie de comanda... În mod implicit, legăturile simbolice nu sunt procesate
-R -L Toate linkurile simbolice vor fi procesate
-R -P Arborele linkurilor nu va fi procesat. Parametru implicit.
-v Verbos. Afișează toate fișierele care s-au modificat
-v -v modul foarte verbos. Drepturile vechi și noi vor fi afișate în modul de afișare octal (numeric) și alfabetic
-f nu afișați mesaje de diagnosticare dacă este imposibil să schimbați permisiunile pentru fișiere
ACL_Opțiune(ACL - Liste de control al accesului pentru grupuri de utilizatori) ACL_manipulation_options

Drepturi de acces:

Drepturile de acces pot fi specificate într-un cod alfabetic sau numeric pe baza sistem octal socoteala

Control prin indicarea digitală a drepturilor de acces:

Trei biți sunt utilizați pentru a gestiona drepturile

  • primul este dreptul de a citi
  • al doilea este dreptul de a scrie
  • al treilea - dreptul de a executa
Puțin cu puțin Număr Cod literă descrierea dreptului
000 0 fara drepturi
001 1 numai drept de executare
010 2 drept de scris
011 3 drepturi de înregistrare și interpretare
100 4 drept numai pentru citire
101 5 dreptul de a citi și de a executa
110 6 permisiunea de citire și scriere fără execuție
111 7 toate drepturile

Astfel de permisiuni pentru fișiere sunt setate pentru trei tipuri de acces:

  • pentru proprietar
  • pentru grup
  • pentru ceilalti

Ca rezultat, comanda arată astfel:

$ chmod 444 fișier - numai în citire, potrivit pentru toată lumea

$ chmod 755 proprietarul fișierului are toate drepturile (7), alți utilizatori sunt doar citiți și rulați (5)

$ chmod 066 fișier - proprietarul nu are drepturi asupra fișierului (0), toate celelalte drepturi de citire și scriere fără a executa

Gestionare prin indicarea literală a drepturilor de acces:

Format pentru specificarea drepturilor prin cod simbolic

[cine ...] [[+ - =] [drepturi ...] ...] [, ...]

care este o combinație de caractere "ugoa" arătând spre utilizatorii ale căror drepturi de acces la fișier sau folder vor fi modificate

  • proprietar de utilizator
  • g grup de utilizatori
  • o alți utilizatori
  • a (toate) pentru toți, similar cu ugo

Comanda chmod este folosită pentru a modifica permisiunile pe fișiere sau directoare.

Pe Linux și altele asemănătoare Unix sisteme de operare pentru fiecare fișier, există un set de reguli care determină cine și cum poate accesa acel fișier. Aceste reguli se numesc permisiuni de fișiere sau moduri de fișiere. Numele comenzii chmod înseamnă „mod de schimbare” și este folosit pentru a determina cum este accesat un fișier.

În general, comenzile chmod arată astfel:

opțiuni de permisiune chmod nume fișier

Dacă Opțiuni nespecificat, chmod modifică permisiunile fișierului specificat în nume de fișier, pentru permisiunile specificate în permisiuni.

Permisiuni determina drepturile de acces pentru proprietarul fișierului („utilizator”), membrii grupului care deține fișierul („grupul”) și toți ceilalți („alții”). Există două moduri de a reprezenta aceste permisiuni: folosind simboluri (caractere alfanumerice) sau numere octale (numerele de la 0 la 7).

Să presupunem că dețineți un fișier numit myfile și doriți să îi setați permisiunile astfel încât:

  1. utilizator ( u ser) putea citi ( r ead), scrie ( w rit) și executați ( X ecute) it;
  2. membrii grupului ( g roup) poate citi ( r ead) și executați ( X ecute) it;
  3. precum și alții ( o alea) pot citi doar ( r ead) it.

Această comandă va arăta astfel:

chmod u = rwx, g = rx, o = r myfile

Acest exemplu folosește notația simbolică pentru permisiuni. Literele u, g și o reprezintă utilizator, grup și altele. Semnul egal (“=”) înseamnă „setați permisiunile astfel”, iar literele „r”, „w” și „x” înseamnă „citește”, „scrie” și, respectiv, „execută”. Separă virgulele diferite clase permisiuni și nu există spații între ele.

Iată comanda echivalentă folosind notația octală pentru permisiuni:

chmod 754 myfile

Aici, numerele 7, 5 și 4 reprezintă fiecare în mod individual permisiunile pentru utilizator, grup și alții, în această ordine. Fiecare cifră este o combinație a numerelor 4, 2, 1 și 0:

  • 4 înseamnă „a citi”
  • 2 înseamnă „scrie”,
  • 1 înseamnă "executa",
  • 0 înseamnă nicio permisiune.

Deci 7 este o combinație de 4 + 2 + 1 (citire, scriere și executare) permisiuni, 5 este 4 + 0 + 1 (citire, fără scriere și executare), iar 4 este 4 + 0 + 0 (citire, nu scrieți și nu executați).

Sintaxa Chmod

chmod ... MODE [, MODE] ... FILE ... chmod ... OCTAL-MODE FILE ... chmod ... --reference = RFILE FILE ...

Opțiuni Chmod

-c, --schimbări La fel ca --verbose, dar produce numai o ieșire verbosă atunci când se realizează o modificare.

-f, --tăcut, --Liniște Mod silențios; suprima majoritatea mesajelor de eroare.

-v, --verbos Mod verbal; tipăriți un mesaj de diagnosticare pentru fiecare fișier procesat.

--no-preserve-root Nu tratați „/” (directorul rădăcină) în niciun fel special, care este implicit.

--conserva-rădăcină Nu lucrați recursiv pe „/”.

--referință =RFILE Setați permisiunile pentru a se potrivi cu cele ale fișierului RFILE, ignorând orice MOD specificat.

-R, --recursiv Schimbați fișierele și directoarele în mod recursiv.

--Ajutor Afișați mesajul de ajutor și ieșiți.

--versiune Tipăriți informațiile despre versiune și ieșiți.

Descriere tehnica

chmod modifică modul de fișier al fiecărui FIȘIER specificat pentru a se potrivi cu MODUL, care poate fi fie o reprezentare simbolică a modificărilor efectuate, fie un număr octal reprezentând modelul de biți pentru biții noului mod.

Formatul modului simbolic:

[[+-=]...]

unde perms este zero sau mai multe litere din mulțimea r, w, x, X, s și t, sau o literă din mulțimea u, g și o. Pot fi specificate mai multe moduri de caractere, separate prin virgule.

O combinație a literelor u, g, o și controale care vor schimba accesul utilizatorului la fișier: utilizatorul care îl deține (u), alți utilizatori din grupul fișierului (g), alți utilizatori care nu fac parte din grupul fișierului (o) , sau toți utilizatorii (a). Dacă nimic nu este dat, efectul va fi ca și cum ar fi dat a, dar biții care au fost setați în umask nu au fost afectați.

Operatorul (+) face ca biții de mod fișier selectați să fie adăugați la biții de mod de fișier existenți ai fiecărui fișier; „-” determină ștergerea acestora; și „=" face ca acestea să fie adăugate și elimină biții nemenționați, cu excepția faptului că biții de director nemodificabili setați de utilizator și ID-urile de grup nu sunt afectate.

Literele r, w, x, X, s și t selectează biții pentru modul fișier pentru utilizatorii afectați: citiți (r), scrieți (w), executați (x), executați numai dacă fișierul este un director sau are deja permisiunea de a executa pentru un utilizator (X) setează ID-ul utilizatorului sau al grupului la execuție (e), steag de ștergere restricționat sau bit fix (t). Pentru directoare, opțiunile de rulare X și X determină permisiunea de a vizualiza conținutul directorului.

În loc de una sau mai multe dintre aceste litere, puteți specifica una dintre literele u, g sau o: permisiuni acordate utilizatorului care deține fișierul (u), permisiuni acordate altor utilizatori care sunt membri ai grupului fișierului (g ), și permisiunile acordate utilizatorilor care nu se încadrează în niciuna dintre cele două categorii anterioare (o).

Modul numeric este una până la patru cifre octale (0-7), obținute prin adăugarea biților cu valorile 4, 2 și 1. Se presupune că cifrele lipsă sunt zerouri de început. Prima cifră selectează ID-ul utilizatorului specificat (4) și ID-ul grupului specificat (2) și atributele de ștergere restricționate sau sticky (1). A doua cifră selectează drepturile de acces pentru utilizatorul care deține operațiunile de citire (4), scriere (2) și executare (1); al treilea selectează drepturile de acces pentru alți utilizatori din grupul de fișiere cu aceleași valori; iar al patrulea pentru alți utilizatori din afara grupului de fișiere cu aceleași valori.

chmod nu modifică niciodată permisiunile pentru linkurile simbolice; apelul de sistem chmod nu le poate schimba permisiunile. Dar aceasta nu este o problemă, deoarece permisiunile pentru linkuri simbolice nu sunt niciodată folosite. Cu toate acestea, pentru fiecare legătură simbolică specificată pe linia de comandă, chmod modifică permisiunile pentru fișierul specificat. În schimb, chmod ignoră legăturile simbolice întâlnite în timpul traversărilor recursive ale directoarelor.

Biți Setuid și Setgid

chmod șterge bitul set-group-ID dintr-un fișier obișnuit dacă ID-ul de grup al fișierului nu se potrivește cu ID-ul efectiv de grup al utilizatorului sau cu unul dintre ID-urile de grup suplimentare ale utilizatorului, cu excepția cazului în care utilizatorul are privilegiile corespunzătoare. Restricții suplimentare poate face ca biții set-user-ID și set-group-ID din MODE sau RFILE să fie ignorați. Acest comportament depinde de politica și funcționalitatea apelului principal de sistem chmod. Dacă aveți îndoieli, verificați comportamentul sistemului.

chmod păstrează set-user-ID și set-group-ID biții din director dacă nu specificați altfel. Puteți seta sau șterge biți folosind moduri simbolice precum u + s și g-s și puteți seta (dar nu șterge) biți folosind modul numeric.

Semnal de eliminare restricționată (sau „Sticky Bit”)

Indicatorul de ștergere restricționat sau bitul sticky este un singur bit a cărui interpretare depinde de tipul fișierului. Acest lucru împiedică utilizatorii care nu dețin fișierul sau directorul să ștergă sau să redenumească un fișier din director; acesta se numește steag de ștergere restricționată pentru un director și se găsește în mod obișnuit în directoarele care pot fi scrise în lume, cum ar fi / tmp. Pentru fișierele obișnuite de pe unele sisteme mai vechi, acest bit salvează imaginea text a programului pe dispozitivul de schimb, astfel încât se încarcă mai repede la pornire; aceasta se numește sticky bit.

Cum să vizualizați permisiunile pentru fișiere

O modalitate rapidă și ușoară de a lista permisiunile unui fișier folosind opțiunea de listă lungă (-l) la comanda ls. De exemplu, pentru a vizualiza permisiunile pentru file.txt, puteți folosi comanda:

Ls -l fișier.txt

Care va afișa rezultatul care arată astfel:

Exemple de utilizare a chmod

chmod 644 fișier.htm

Setează fișierul.htm la „proprietarul poate citi și scrie; grupul nu poate decât să citească; alții nu știu decât să citească.”

Chmod -R 755 myfiles

Recursiv (-R) modifică permisiunile pentru directorul myfiles și toate folderele și fișierele acestuia în modul 755. Utilizatorul poate citi, scrie și executa; membrii grupului și alți utilizatori pot citi și executa, dar nu pot scrie.

Chmod u = rw example.jpg

Modifică permisiunile pentru proprietar la example.jpg, astfel încât proprietarul să poată citi și scrie fișierul. Nu modifică permisiunile pentru grup sau pentru alții.

Chmod u + s comphope.txt

Setează bitul „Set-User-ID” al fișierului comphope.txt, astfel încât oricine încearcă să acceseze fișierul să o facă ca și cum ar fi proprietarul fișierului.

Chmod u-s comphope.txt

Opusul comenzii de mai sus; elimină bitul SUID

Chmod 755 file.cgi

Setează permisiunile pentru file.cgi la „citește, scrie și executa de către proprietar” și „citește și execută de către grup și toți ceilalți”.

Chmod 666 file.txt

Setează permisiunea fișier.txt la „citește și scrie de către toți”.

Chmod a = rw file.txt

Efectuează la fel ca comanda de mai sus folosind notația simbolică.

Comenzi aferente

chown- Schimbați proprietarul fișierelor sau directoarelor.
getfacl- Afișați listele de control al accesului la fișiere.
ls- o listă a conținutului unui director sau directoare.

(Permisiunile inițiale ale fișierului sunt rwxrwxrwx - control total pentru toți) Revocați permisiunea de a executa fișierul pentru toți utilizatorii și grupurile:

$ chmod fișier a-x(rw-rw-rw-)

Anularea scrierii în fișier de către grup și alți utilizatori:

$ fisier chmod go-w (rw-r – r–)

Permiteți proprietarului să execute fișierul:

$ chmod u + x fișier (rwxr – r–)

Acordați grupului aceleași permisiuni ca proprietarul fișierului:

$ chmod g = fișier u (rwxrwxr–)

Anulați citirea și scrierea în fișier de către utilizatorii grupului și alți utilizatori:

$ fisier chmod go-rw (rwx-x-)

Exemple de utilizare a comenzii chmod în modul absolut

Permisiunea de a citi, scrie, executa fișiere de către toți utilizatorii și grupurile (acces complet):

$ chmod 777 fișier (rwxrwxrwx)

Setarea permisiunilor de citire și scriere pentru proprietar, grup și alți utilizatori:

Fișier $ chmod 666 (rw-rw-rw-)

Setarea accesului complet la fișier pentru proprietar și acces numai în citire pentru grup și alți utilizatori:

$ chmod 744 fișier (rwxr – r–)

Setarea accesului complet la fișier pentru proprietarul fișierului și interzicerea accesului la grup și alți utilizatori:

Fișier $ chmod 700 (rwx--)

Setați permisiuni de citire/scriere pentru proprietarul fișierului și permisiuni de numai citire pentru grup și alții:

$ chmod 644 fișier (rw-r – r–)

Setarea permisiunilor de citire și scriere pentru proprietarul fișierului și grupul acestuia și interzicerea accesului altora:

Fișier $ chmod 640 (rw-r-–)

Setați accesul la fișiere cu permisiunea de citire pentru toți utilizatorii și grupurile:

$ fisier chmod 444 (r – r – r–)

Drepturi de acces la fișiere pentru citire, scriere, executare de către proprietar și citire, executare în grup și altele:

Fișier $ chmod 755 (rwxr-xr-x)

Permiterea accesului de citire și execuție la fișier pentru utilizator și pentru alții și interzicerea accesului la grup:

$ chmod 505 fișier (r-x-r-x)

Dacă doriți să atribuiți permisiuni tuturor fișierelor din directorul curent, plasați pur și simplu un * (asterisc) după permisiunile pe care le atribuiți:

$ chmod 755 *

Ca rezultat al acestei comenzi, proprietarul va avea drepturi complete (de citire, modificare, executare) la toate fișierele din directorul curent, iar grupul și alți utilizatori vor avea doar citire și executare. Dacă doriți ca acțiunile dvs. să se propagă recursiv (inclusiv toate subdirectoarele), utilizați opțiunea -R:

$ chmod -R 777 *

Rezultatul executării comenzii de mai sus va „traversa” în mod recursiv toate subdirectoarele din directorul curent și va atribui acces complet tuturor utilizatorilor și grupurilor. Acest articol acoperă doar câteva exemple de utilizare a comenzii chmod. Dacă doriți să aflați mai multe despre cum funcționează chmod și permisiunile Linux, consultați acest articol.

Modificați permisiunile numai pentru directoare (recursiv)

$ find / path / to / base / dir -type d -exec chmod 755 () +

$ chmod 755 $ (găsește / cale / către / bază / dir -tip d)

$ chmod 755 `find / path / to / base / dir -type d`

$ găsi / cale / către / bază / dir -type d -print0 | xargs -0 chmod 755

Modificați permisiunile numai pentru fișiere (recursiv)

$ find / path / to / base / dir -type f -exec chmod 644 () +

$ chmod 644 $ (găsește / cale / către / bază / dir -tip f)

$ chmod 0755 `find ./ -type f`

$ găsi / cale / către / bază / dir -type f -print0 | xargs -0 chmod 644

Sintaxa Chmod pentru foldere și fișiere

Să înțelegem mai întâi esența problemei cu Chmod, pentru a înțelege ce anume și cum configurăm. Deci sa începem. Permisiunile sunt împărțite în Chmod pentru fișiere și Chmod pentru directoare. Ele sunt desemnate la fel, dar înseamnă puțin diferit.

Permisiunile pentru fișiere (Chmod) sunt împărțite în:

    r - dreptul de a citi datele.

    w - dreptul de a modifica conținutul (scrie - modifica doar conținutul, nu șterge).

    x - dreptul de a executa dosarul.

Să ne oprim puțin mai mult asupra execuției corecte a fișierului. Ideea este că pe Linux (Unix), orice fișier poate fi executat. Dacă este executabil este determinat nu de extensia sa (conceptul de extensie este absent în sistemul de fișiere Unix), ci de drepturile de acces Chmod. Dacă orice fișier are permisiunea „X” (chmod x), înseamnă că poate fi rulat pentru execuție.

Acum despre drepturile de acces (Chmod) la folderul (director):

    r - dreptul de a citi directorul (puteți citi conținutul directorului, adică să obțineți o listă de obiecte din el)

    w - dreptul de a modifica conținutul directorului (puteți crea și șterge obiecte din acest director, iar dacă aveți dreptul de a scrie, atunci puteți șterge chiar și acele fișiere care nu vă aparțin)

    x este dreptul care vă permite să intrați în director (acest drept este întotdeauna verificat mai întâi și chiar dacă aveți toate drepturile necesare asupra unui obiect care este îngropat adânc în lanțul de directoare, dar nu aveți dreptul „X” pentru a accesa cel puțin un directoare de pe calea către acest fișier, atunci nu veți accesa el)

Pe sistemele linux (Unix), toate aceste drepturi sunt acordate de administratorul principal al computerului, acces la care obține prin introducerea unei parole. Și dacă majoritatea obiectelor au drepturi de acces numai pentru citire (Chmod), atunci virușii de pe un astfel de computer nu vor avea practic nimic de făcut. ei nu vor putea să se scrie acolo și atunci nu se vor putea împlini. Acesta este exact rezultatul pe care trebuie să-l obținem prin setarea drepturilor de acces (Chmod) la obiectele site-ului nostru.

Sintaxa Chmod pentru grupuri de utilizatori

Permisiunile în sine (Chmod) se împart în trei categorii, în funcție de cine accesează obiectul:

    „Utilizator” - u (direct proprietarul fișierului)

    „Grup” - g (membru al aceluiași grup cu proprietarul)

    „Lumea” - o (toate celelalte)

Serverul determină grupul de utilizatori din care faceți parte atunci când vă conectați la server. Când, de exemplu, vă conectați la un server prin FTP, atunci vă conectați cu numele de utilizator (și parola), iar apoi serverul vă atribuie grupului „utilizator” („u)”. Alți utilizatori care se conectează și prin FTP la server vor fi alocați grupului „grup” (“g”), iar utilizatorul care vine pe site-ul dvs. folosind browser-ul său va fi repartizat grupului „world” (“o”). .

Variațiile celor trei valori posibile „r”, „w” și „x” pentru cele trei categorii „u”, „g” și „o” determină Chmod-ul la fișiere. Dacă nu este specificată o categorie, atunci aceasta este înlocuită cu o cratimă „-”. drepturile de acces (Chmod) sunt specificate secvenţial în ordinea dată:

    mai întâi drepturile proprietarului sunt „u”

    apoi pentru grup - "g"

    iar la sfârșitul dreptului pentru toți ceilalți - „o”

După ce serverul atribuie utilizatorul la un anumit grup, îi acordă drepturi de manipulare a obiectelor, după care utilizatorul poate citi, scrie sau executa fișierul (în funcție de ceea ce are voie să facă grupul său cu acest obiect). Pentru a vizualiza conținutul unui folder, acesta trebuie să aibă atributul de citire „r” (pentru grupul căruia serverul i-a atribuit utilizatorul). Pentru a crea un fișier sau un folder într-unul existent, acesta trebuie să aibă atributul Chmod la intrarea „w”.

Pentru claritate, să ne uităm la un exemplu în care proprietarul fișierului („utilizator” - „u”) are toate drepturile: dreptul de a citi, de a scrie și de a executa, iar toți ceilalți utilizatori au doar dreptul de a citi. O înregistrare a unor astfel de Chmoduri va arăta astfel: „rwx r-- r--”. Să luăm în considerare în detaliu: „rwx” (această intrare setează drepturile asupra obiectului pentru proprietar - „u”), „r--” (această intrare setează drepturile aceluiași obiect, dar dacă utilizatorul este atribuit grupul de către server - "g ")," R-- "(această intrare stabilește drepturile asupra obiectului pentru toți ceilalți utilizatori - o").

Cum diferă fișierele și folderele Chmod

Nu se poate face nimic

Accesul la director și subdirectoarele acestuia este interzis

Puteți vedea și modifica conținutul

Poate adăuga, șterge, schimba fișierul folderului

Executați dacă fișierul este binar

Utilizatorul poate executa un fișier binar despre a cărui existență o cunoaște, este interzisă introducerea sau citirea directorului

Sintaxa numerică Chmod (777)

Puteți vedea că aici înregistrările care folosesc litere și cratime latine sunt folosite pentru a descrie drepturile de acces, dar probabil ați dat deja peste faptul că Chmod este de obicei setat în formă digitală, de exemplu, binecunoscuta combinație: Chmod 777, care permite totul și tuturor. Într-adevăr, drepturile de acces (Chmod) sunt de asemenea notate cu cifre:

    w (înregistrare) este înlocuită cu 2

    x (versiunea) este înlocuită cu 1

0 înseamnă - nu face nimic (ceea ce se notează cu o cratimă în notația literală) Să ne întoarcem la exemplul drepturilor de acces, pe care l-am dat puțin mai devreme: rwx r-- r--. Dacă înlocuim literele și cratimele cu numere în ea, în conformitate cu regula tocmai descrisă și, în același timp, adăugăm numerele din fiecare triplet, atunci obținem forma digitală a acestei intrări: 744. se dovedește că suma acestor numere arată Chmod la fișiere sau folder. De exemplu:

    7 (rwx) = 4 + 2 +1 (drepturi depline)

    5 (r-x) = 4 + 0 + 1 (citește și execută)

    6 (rw-) = 4 + 2 + 0 (citiți și scrieți)

    4 (r--) = 4 + 0 + 0 (numai citire)

Acest tabel listează toate combinațiile posibile de Chmod scrise în formă digitală:

Acum să ne uităm la diferitele combinații Chmod în numere, aplicate grupurilor de utilizatori:

""Proprietar""

""Grup""

""Odihnă""

a executa

a executa

a executa

Tu însuți (cu excepția cazului în care accesezi site-ul prin FTP) și toți ceilalți vizitatori ai site-ului tău aparțin grupului „cuvânt” (toți ceilalți), așa că pentru a lucra cu site-ul web, trebuie să ne uităm mai întâi la ultimul ( al treilea) cifra Chmod. Pentru ca utilizatorul să „ruleze fișierul” script-ului atunci când utilizatorul lucrează cu site-ul, va fi suficient să aibă drepturi de acces (Chmod) setate la acesta, începând de la „4” (r-- - numai citire ) (va funcționa și 5,6,7, dar va fi de prisos din punct de vedere al securității).

„Pentru folder”, în care se află fișierul acestui script, trebuie să setați cel puțin „5” (r-x - puteți intra în dosar și puteți citi conținutul acestuia, nu puteți șterge sau adăuga). 7 este de asemenea bine, dar va fi de prisos și din punct de vedere al securității. Dacă doriți ca scriptul nu numai să fie citit, ci și să „scrie” unele date (de exemplu, introduse de utilizator), atunci drepturile minime la „dosar” vor fi în continuare „5”, dar pentru „fișier”. ” veți avea nevoie de drepturile „6” (Citește și scrie).

Cel mai probabil, pe serverul pe care ai copiat conținutul motorului site-ului tău, pe obiecte vor fi instalate următoarele Chmod-uri:

Foldere 755

proprietarul (utilizatorul) poate face totul, grupul și toți ceilalți pot doar să citească folderele și să le introducă, dar le este interzis să scrie fișiere, să le schimbe numele și să le ștergă în directoare. (rwxr-xr-x)

Dosarele 644

Dacă ai avea un site format numai din html, atunci ai putea să-l lași așa. Dar site-urile moderne sunt construite pe motoare și pot exista obiecte în care va fi necesar să scrieți în numele utilizatorilor din grupul „lume” - o (toți ceilalți). Acestea pot fi foldere folosite pentru stocarea în cache a paginilor sau acelea în care imaginile vor fi încărcate în timp ce lucrați cu site-ul etc. Este de la sine înțeles că dacă accesați site-ul prin FTP, puteți scrie în aceste fișiere sau foldere, dar lucrând cu interfața site-ului web, ca un utilizator obișnuit, este posibil să aveți probleme. Prin urmare, instalarea anumitor Chmoduri trebuie abordată selectiv.

Comanda chmod (Schimbați MOD- schimbarea modului) are o sintaxă foarte specifică. Sintaxa generala:
dar ceea ce o caracterizează este că schimbarea de regim poate lua multe forme. Poate fi specificat în două moduri:

  1. ca număr octal. În acest caz, permisiunile proprietarului corespund numerelor în forma 00, unde corespund permisiunii atribuite: 4 pentru citire, 2 pentru scriere și 1 pentru execuție. La fel, permisiunile grupului de proprietari sunt 0, iar permisiunile pentru „alții” sunt. Apoi, tot ce trebuie să faceți este să găsiți suma permisiunilor de atribuit pentru a obține modul dorit. Deci, permisiunile rwxr-xr-- corespund la 400 + 200 + 100 (permisiuni pentru proprietar, rwx) + 40 + 10 (permisiuni pentru grup, r-x) +4 (permisiuni pentru alții, r--) = 754; astfel, permisiunile sunt exprimate în termeni de membri liberi. Aceasta înseamnă că permisiunile anterioare sunt înlocuite necondiționat;
  2. folosind expresii. În acest caz, permisiunile sunt exprimate printr-o succesiune de expresii, separate prin virgule. Prin urmare, expresia ia următoarea formă: [categorie]<+|-|=><разрешения> .
Exemple:
  • chmod -R o-w / shared / docs: elimină recursiv permisiunea de scriere pentru alții din toate fișierele și subdirectoarele din directorul / shared / docs /.
  • chmod -R og-w, o-x privat /: elimină recursiv permisiunea de scriere pentru grup și altele din întregul director / privat și elimină permisiunea de execuție pentru restul.
  • chmod -c 644 misc / fișier *: modifică permisiunile pentru toate fișierele din directorul misc / ale căror nume încep cu fișier în rw-r - r-- (adică permisiunea de citire pentru toată lumea și permisiunea de scriere numai pentru proprietar) și raportează numai acele fișiere care au fost afectate de echipă.

Următorul exemplu arată cum să permiteți tuturor utilizatorilor să citească fișierul, să-l modifice și să le salveze. Pentru a face acest lucru, trebuie să modificați drepturile de acces ale grupului „alții”.
Introduceți la linia de comandă:
ls -l example1.txt Următoarele informații vor fi afișate pe ecran:
-rw-rw-r-- 1 utilizator utilizator 42 Mar 24 22:07 example1.txt Acum introduceți această comandă:
chmod o + w example1.txt Comanda o + w înseamnă că îi dați „alții” (notat cu litera „o”) permisiunea de a scrie în fișierul example1.txt. Pentru a vedea la ce a dus execuția comenzii specificate, să ne uităm din nou la fișier:
-rw-rw-rw- 1 utilizator utilizator 42 Mar 24 22:09 example1.txt Toată lumea poate acum citi și scrie în fișier.
Pentru a preveni citirea și scrierea în fișierul example1.txt, utilizați comanda chmod.
chmod go-rw example1.txt Comanda go-rw spune sistemului că doriți să împiedicați grupul și „alții” să citească și să scrie în fișierul example1.txt.
Drept urmare, drepturile de acces vor arăta astfel:
-rw ------- 1 utilizator utilizator 42 Mar 24 22:10 example1.txt Clasele și permisiunile discutate sunt prescurtare pentru cuvintele în engleză corespunzătoare, așa că sunt ușor de reținut: tot ce trebuie să îți amintești sunt câteva caractere si scrisori.
Iată o listă de transcrieri ale acestor abrevieri:

Clasele u - utilizatorul care deține fișierul (din engleză „user”);
g - grupul căruia îi aparține utilizatorul (din engleză „grup”);
o - restul (nu proprietarul si nu grupul de proprietari, din engleza "others");
a - totul (u, g și o, din engleza „all”). Drepturi r - dreptul de a citi;
w - dreptul de a scrie;
x este dreptul de a executa. Acțiuni + - dă dreptul;
- - ia dreptul;
= - își rezervă doar dreptul dat.

Vrei să-ți testezi cunoștințele? Eliminați toate drepturile de utilizator la example1.txt de la toți utilizatorii.
chmod a-rwx example1.txt Acum verificați dacă puteți citi acest fișier cu comanda cat example1.txt. Ar trebui să vedeți următoarele:
cat: example1.txt: Permisiune refuzată Prin revocarea tuturor drepturilor, inclusiv pe ale dumneavoastră, ați blocat accesul la fișier. Dar, deoarece fișierul vă aparține, puteți oricând să restaurați drepturile cu următoarea comandă:
chmod u + rw example1.txt Pentru a vă asigura că puteți citi fișierul dat, utilizați cat example1.txt.
Iată câteva exemple de utilizare a comenzii chmod:

  • g + w - dă proprietarului grupului permisiunea de scriere;
  • o-rwx - elimină toate drepturile altor utilizatori;
  • u + x - dă proprietarului dreptul de a executa dosarul;
  • a + rw - permite oricui să citească și să scrie în fișier;
  • ug + r - permite proprietarului și grupului să citească fișierul;
  • g = rx - Permite grupului să citească și să execute fișierul (nu să scrie în el).

Opțiunea -R vă permite să modificați drepturile pentru întregul arbore de directoare.
Deoarece directoarele nu pot fi „executate” ca aplicații, adăugarea sau eliminarea dreptului adecvat înseamnă a permite (sau nu) vizualizarea directorului.
De exemplu, dacă ați împiedicat alți utilizatori să execute docs/directorul, nu contează cui are permisiunea de citire/scriere. Nimeni nu poate accesa conținutul unui director decât dacă cunoaște numele exact al fișierului pe care îl conține.
Tastați de exemplu:
chmod a-x docs pentru a revoca permisiunea de execuție de la toți utilizatorii.
Dacă încercați acum să schimbați directorul utilizând comanda cd docs, veți fi respins:
bash: docs: Permisiune refuzată Redați-vă drepturile dvs. și ale grupului dvs. înapoi:
chmod ug + x docs Dacă verificați acum rezultatele acțiunilor dvs. cu comanda ls -l, veți vedea că numai altor utilizatori li se interzice accesul la docs / directorul.