chmod

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

chmod (abreviere din limba engleză a ch Ange mod e, modul de schimbare) este o comanda de Unix si Unix- ului de operare sisteme , și mai general a POSIX [1] sisteme , care modifică fișiere și directoare permisiunile .

chmod este, de asemenea, numele unui apel de sistem , definit de standardul POSIX [2] , care modifică permisiunile unui fișier sau director. De fapt, comanda chmod funcționează prin invocarea apelului de sistem cu același nume. Comanda a apărut prima dată în prima versiune Unix a AT&T și este prezentă în sistemele de operare Unix și Unix .

Sintaxă

Sintaxa generală a chmod este după cum urmează:

chmod [ opzioni ] [--] modalità file1 [ file2 ...]

Parametrul de mod indică modificările care trebuie aplicate permisiunilor.

Linia dublă -- (opțional) indică faptul că următorii parametri nu trebuie considerați opțiuni.

Legături simbolice

Legăturile simbolice nu au niciodată permisiuni proprii, fiind doar referințe pe nume la un alt fișier și, din toate punctele de vedere, se poate considera că au permisiunile fișierului sau directorului la care fac trimitere.

Este posibil, în unele sisteme, să se ofere opțiuni pentru schimbarea recursivă a permisiunilor, de asemenea, urmând legături simbolice (de exemplu, în cazul sistemelor derivate din BSD , cum ar fi FreeBSD , OpenBSD și NetBSD , și chiar macOS ).

Exemple

Reprezentare simbolică

  • chmod "u=rwx","g=rx","o=x" nomeFile
  • chmod "o=+rx" nomefile
  • chmod "u=+rwx","go=-" nomefile
  • chmod "u=+rwS","go=-" nomefile

Pentru sensul lui S vezi și celelalte permisiuni Unix .

Reprezentarea octală

În reprezentarea octală fiecare cifră indică permisiunile pentru diferiți utilizatori.

  • chmod UGO nomefile

Cifra U reprezintă nivelul permisiunilor pentru utilizator, G nivelul permisiunilor grupului și O nivelul permisiunilor generale

Tabelul următor indică semnificația valorilor individuale

Valoare binară ( rwx ) Valoare zecimală Permise
111 7 citirea, scrierea și executarea
110 6 citire si scriere
101 5 citirea și execuția
100 4 numai citire
011 3 scriere și execuție
010 2 numai scris
001 1 numai executare
000 0 nimeni

Exemple:

  • chmod 734 nomefile

atribuie utilizatorului toate permisiunile, scrie și executa pentru grup și citește numai pentru toți ceilalți.

  • chmod 777 nomefile

atribuie toate permisiunile utilizatorului curent, grupului său și tuturor celorlalți.

  • chmod -R 777 nomedirectory

ca și precedentul, dar privește un director și toate fișierele existente în interiorul acestuia.

Mod

Exemple de utilizare a chmod

Modul este un șir care indică modul de setare sau modificare a permisiunilor fișierelor și directoarelor specificate. Poate fi exprimat ca număr octal sau sub formă simbolică.

Mod numeric octal

Pictogramă lupă mgx2.svg Același subiect în detaliu: Permisiuni (Unix) .

Este un număr format din una până la patru cifre octale (de exemplu 640 sau 4755 ), conform reprezentării octale a permisiunilor , care indică direct permisiunile care trebuie atribuite fișierului fără a lua în considerare cele deja prezente.

De exemplu, un permis 755 setează citire, scriere și executare (7) pentru proprietar (prima cifră) și citire și executare (cele două 5s) per grup (a doua cifră) și altele (a treia cifră).

Mod simbolic

Pictogramă lupă mgx2.svg Același subiect în detaliu: Permisiuni (Unix) .

Este o serie de una sau mai multe valori de text separate prin virgulă.

Fiecare valoare este la rândul său compusă din trei părți:

  • o primă parte constând din zero sau mai multe litere care selectează clasele (proprietar, grup, altele) pentru care doriți să modificați permisiunea:
    • u - selectați clasa aferentă proprietarului
    • g - selectați clasa aferentă grupului
    • o - selectați clasa aferentă altor utilizatori
    • fără scrisoare sau a - selectați toate clasele
  • o a doua parte constând dintr-un singur caracter care indică dacă permisiunile trebuie adăugate, eliminate sau setate pentru clasele selectate:
    • + - adăugați permisiuni specificate la clasele selectate; nu elimină permisiunile deja acordate dar nespecificate
    • = - setați permisiunile specificate în clasele selectate; elimină orice permisiuni deja acordate dar nespecificate
    • - - eliminați permisiunile specificate din clasele selectate
  • o a treia parte constând din zero sau mai multe litere (de ex. r , w , x , s , t ) conform reprezentării simbolice a permisiunilor care indică permisiunile care trebuie adăugate, eliminate sau setate.

Exemple de moduri exprimate într-un mod simbolic sunt „ ugo=rwx ”, „ u=rwx,go=r ”, „ +x ”.

Exemple de modalități

  • 0755 - setează citirea, scrierea și executarea pentru proprietar și citirea și executarea în grup și altele (comun pentru directoare și fișiere executabile);
  • 0700 - setează citirea, scrierea și executarea pentru proprietar, fără permisiuni pentru grup și altele (comun pentru directoare private);
  • 0600 - setează citirea și scrierea pentru proprietar și fără permisiunea pentru grup și alte persoane (comun pentru fișierele cu date personale);
  • 0640 - set citire și scriere pentru proprietar, citire numai pentru grup și fără permisiunea pentru alții (obișnuit pentru fișierele de date care trebuie partajate);
  • +r - adaugă permisiunea de citire pentru proprietar, grup și alte persoane. Nu elimină alte permisiuni deja prezente;
  • -x - elimină permisiunea de executare pentru proprietar, grup și alte persoane. Nu elimină alte permisiuni deja prezente;
  • u=rx - setează permisiunea de citire și executare către proprietar, eliminând orice permisiuni de scriere deja prezente; nu modifică permisiunile pentru alții;
  • u=rx,go= - setează permisiunea de citire și executare către proprietar, eliminând orice permisiune de scriere deja prezentă; elimină toate permisiunile existente pentru grup și pentru alte persoane.

Sistemul apelează chmod

Apelul de sistem chmod este declarat în fișierul antet sys / stat.h :

 #include <sys / stat.h>
int chmod ( const char * path , mode_t mode );

Tipul mode_t este un tip opac (de obicei un tip întreg) reprezentând permisiuni de acces .

Parametrul cale indică numele fișierului sau directorului pentru a modifica permisiunile.

Parametrul de mod indică permisiunile care trebuie atribuite fișierului sau directorului.

Valoare returnată

Valoarea returnată este 0 la succes. În cazul unei erori este -1 , iar variabila errno indică eroarea specifică.

Notă

  1. ^ (EN) chmod (utilități) , din The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. Adus la 17 mai 2008 .
  2. ^ (EN) chmod (funcții) , pe Specificațiile de bază ale grupului deschis Numărul 6 IEEE Std 1003.1, ediția 2004. Adus la 30 mai 2008 .

Elemente conexe

linkuri externe

Comandă chmod

Securitate IT Portal de securitate cibernetică : accesați intrările Wikipedia care se ocupă de securitatea cibernetică