Linux команда chmod - команда изменения прав доступа.
Cuprins:
- Permisiuni de fișiere Linux
- Folosind
chmod - Metoda simbolică (text)
- Metoda numerică
- Utilizarea unui fișier de referință
- Modificați recursiv Permisiunile fișierului
- Operare pe legături simbolice
- Modificarea permisiunilor de fișiere în volum
- Concluzie
În Linux, accesul la fișiere este gestionat prin permisiunile, atributele și proprietatea. Acest lucru asigură că numai utilizatorii și procesele autorizate pot accesa fișiere și directoare.
Acest tutorial acoperă modul de utilizare a comenzii
chmod
pentru a modifica permisiunile de acces ale fișierelor și directoarelor.
Permisiuni de fișiere Linux
Înainte de a merge mai departe, să explicăm modelul de permisiuni Linux de bază.
În Linux, fiecare fișier este asociat cu un proprietar și un grup și este atribuit cu drepturi de acces pentru permis pentru trei clase diferite de utilizatori:
- Proprietarul fișierului. Membrii grupului. Alții (toți ceilalți).
Proprietatea fișierului poate fi modificată folosind comenzile
chown
și
chgrp
.
Există trei tipuri de permisiuni de fișiere care se aplică pentru fiecare clasă:
- Permisiunea de citire. Autorizația de scriere. Autorizația de execuție.
Acest concept vă permite să specificați ce utilizatori au voie să citească fișierul, să scrie în fișier sau să execute fișierul.
Permisiunile fișierelor pot fi vizualizate folosind comanda
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
Primul caracter arată tipul fișierului. Poate fi un fișier obișnuit (
-
), director (
d
), o legătură simbolică (
l
) sau orice alt tip special de fișier.
Următoarele nouă caractere reprezintă permisiunile fișierului, trei triplete de trei caractere fiecare. Prima triplă arată permisiunile de proprietar, cea de-a doua grupă permisiunile, iar ultima triplă arată permisiunile tuturor celorlalți. Permisiunile pot avea o semnificație diferită în funcție de tipul de fișier.
În exemplul de mai sus (
rw-r--r--
) înseamnă că proprietarul fișierului are permisiuni de citire și scriere (
rw-
), grupul și alții au permisiuni de citire (
r--
).
Fiecare dintre cele trei triplete de permisiune poate fi construită din următoarele caractere și poate avea efecte diferite, în funcție de faptul că sunt setate la un fișier sau la un director:
Efectul permisiunilor asupra fișierelor
| Permisiune | Caracter | Înțeles în fișier |
|---|---|---|
| Citit |
-
|
Fișierul nu poate fi citit. Nu puteți vizualiza conținutul fișierului. |
r
|
Fișierul poate fi citit. | |
| Scrie |
-
|
Fișierul nu poate fi modificat sau modificat. |
w
|
Fișierul poate fi modificat sau modificat. | |
| A executa |
-
|
Fișierul nu poate fi executat. |
x
|
Fișierul poate fi executat. | |
s
|
Dacă se găsește în triplul
user
, setează bitul
setuid
. Dacă se găsește în tripleta
group
, setează bitul
setgid
. De asemenea, înseamnă că
x
flag este setat.
Când stegulețele
|
|
S
|
La fel ca
s
dar steagul
x
nu este setat. Acest steag este rar folosit pe fișiere. |
|
t
|
Dacă se găsește în
others
triplete, setează bitul
sticky
.
De asemenea, înseamnă că
|
|
T
|
La fel ca
t
dar steagul
x
nu este setat. Acest steag este inutil în fișiere. |
Efectul permisiunilor asupra directoarelor (dosare)
În Linux, Directorii sunt tipuri speciale de fișiere care conțin alte fișiere și directoare.
| Permisiune | Caracter | Înțeles pe director |
|---|---|---|
| Citit |
-
|
Conținutul directorului nu poate fi afișat. |
r
|
Conținutul directorului poate fi afișat.
(de ex., puteți lista fișierele din directorul cu
|
|
| Scrie |
-
|
Conținutul directorului nu poate fi modificat. |
w
|
Conținutul directorului poate fi modificat.
(de ex. nu puteți crea fișiere noi, șterge fișiere.. etc) |
|
| A executa |
-
|
Directorul nu poate fi schimbat în. |
x
|
Directorul poate fi navigat folosind
cd
. |
|
s
|
Dacă se găsește în triplul
user
, setează bitul
setuid
. Dacă se găsește în triplul
group
, setează bitul
setgid
. De asemenea, înseamnă că
x
flag este setat. Când steagul
setgid
este setat pe un director, fișierele noi create în el moștenesc ID-ul grupului de directoare (GID), în loc de ID-ul de grup principal al utilizatorului care a creat fișierul.
|
|
S
|
La fel ca
s
dar steagul
x
nu este setat. Acest steag este inutil în directoare. |
|
t
|
Dacă se găsește în
others
triplete, setează bitul
sticky
.
De asemenea, înseamnă că
|
|
T
|
La fel ca
t
dar steagul
x
nu este setat. Acest steag este inutil în directoare. |
Folosind
chmod
Comanda
chmod
are următoarea formă generală:
chmod MODE FILE…
Comanda
chmod
vă permite să modificați permisiunile unui fișier folosind fie un mod simbolic sau numeric sau un fișier de referință. Vom explica mai detaliat modurile mai târziu. Comanda poate accepta unul sau mai multe fișiere și / sau directoare separate prin spațiu ca argumente.
Doar root, proprietarul fișierului sau utilizatorul cu privilegii sudo pot modifica permisiunile unui fișier. Fii mai atent când folosești
chmod
, în special când schimbi recursiv permisiunile.
Metoda simbolică (text)
Sintaxa comenzii
chmod
atunci când se utilizează modul simbolic are următorul format:
chmod perms… FILE…
Primul set de steaguri (
), utilizatorii semnalizează, definește ce utilizatori clasifică permisiunile pentru fișier.
-
u- Proprietarul fișierului.g- Utilizatorii care sunt membri ai grupului.o- Toți ceilalți utilizatori.a- Toți utilizatorii, identici cuugo.
Dacă este omis steagul utilizatorilor, cel implicit este
a
și permisiunile care sunt setate de umask nu sunt afectate.
Al doilea set de steaguri (
), steagurile de operație, definește dacă autorizațiile trebuie eliminate, adăugate sau setate:
-
-Înlătură permisiunile specificate.+Adăuga permisiunile specificate.=Modifică permisiunile curente la permisiunile specificate. Dacă nu sunt specificate permisiuni după simbolul=, toate permisiunile din clasa de utilizator specificată sunt eliminate.
Permisiunile (
perms…
) pot fi setate explicit folosind fie zero, fie una sau mai multe din următoarele litere:
r
,
w
,
x
,
X
,
s
și
t
. Utilizați o singură literă din seturile
u
,
g
și
o
pentru a copia permisiunile de la o clasă la alta.
Când setați permisiunile pentru mai multe clase de utilizator (
), utilizați virgule (fără spații) pentru a separa modurile simbolice.
Mai jos sunt câteva exemple despre cum se utilizează comanda
chmod
în modul simbolic:
-
Oferă membrilor grupului permisiunea de a citi fișierul, dar nu de a-l scrie și executa:
chmod g=r filenameEliminați permisiunea de execuție pentru toți utilizatorii:
chmod ax filenameÎnlăturați repulsiv permisiunea de scriere pentru alți utilizatori:
chmod -R ow dirnameEliminați citirea, scrierea și executarea permisiunii pentru toți utilizatorii, cu excepția proprietarului fișierului:
chmod og-rwx filenameAcelași lucru poate fi realizat și folosind următorul formular:
chmod og= filenameOferiți permisiunea de citire, scriere și execuție proprietarului fișierului, permisiunile de citire la grupul fișierului și nici permisiunile tuturor celorlalți utilizatori:
chmod u=rwx, g=r, o= filenameAdăugați permisiunile de proprietar ale fișierului la permisiunile pe care membrii grupului de fișier le au:
chmod g+u filenameAdăugați un bit lipicios la un anumit director:
chmod o+t dirname
Metoda numerică
Sintaxa comenzii
chmod
când se utilizează metoda numerică are următorul format:
chmod NUMBER FILE…
Când utilizați modul numeric, puteți seta permisiunile pentru toate cele trei clase de utilizatori (proprietar, grup și toate celelalte) în același timp.
NUMBER
poate fi un număr de 3 sau 4 cifre.
Când se folosește un număr de 3 cifre, prima cifră reprezintă permisiunile proprietarului fișierului, cea de-a doua a grupului fișierului și ultima dintre toți ceilalți utilizatori.
Fiecare permisiuni de scriere, citire și execuție au următoarea valoare numerică:
-
r(citiți) = 4w(scrieți) = 2x(executați) = 1no permisiuni = 0
Numărul de permisiuni dintr-o anumită clasă de utilizator este reprezentat de suma valorilor permisiunilor pentru acel grup.
Pentru a afla permisiunile fișierului în modul numeric pur și simplu calculați totalul pentru toate clasele de utilizatori. De exemplu, pentru a da permisiunea de citire, scriere și execuție proprietarului fișierului, citiți și executați permisiuni la grupul fișierului și numai permisiunile de citire tuturor celorlalți utilizatori, veți face următoarele:
- Proprietar: rwx = 4 + 2 + 1 = 7Grup: rx = 4 + 0 + 1 = 5 Alți: rx = 4 + 0 + 0 = 4
Folosind metoda de mai sus, ajungem la numărul
754
, care reprezintă permisiunile dorite.
Pentru a configura steagurile
setuid
,
setgid
și
sticky bit
setgid
sticky bit
, utilizați un număr de patru cifre.
Când se utilizează numărul de 4 cifre, prima cifră are următoarea semnificație:
- setuid = 4setgid = 2sticky = 1no schimbări = 0
Următoarele trei cifre au aceeași semnificație ca atunci când utilizați un număr de 3 cifre.
Dacă prima cifră este 0, aceasta poate fi omisă, iar modul poate fi reprezentat cu 3 cifre. Modul numeric
0755
este același ca
755
.
Pentru a calcula modul numeric puteți folosi și o altă metodă (metodă binară), dar este ceva mai complicată. Să știi cum să calculezi modul numeric folosind 4, 2 și 1 este suficient pentru majoritatea utilizatorilor.
Puteți verifica permisiunile fișierului în notația numerică folosind comanda
stat
:
stat -c "%a" filename
644
Iată câteva exemple despre cum se utilizează comanda
chmod
în modul numeric:
-
Oferă proprietarului fișierului permisiuni de citire și scriere și permisiuni de citire numai membrilor grupului și tuturor celorlalți utilizatori:
chmod 644 dirnameLăsați proprietarului fișierului să citească, să scrie și să execute permisiuni, să citească și să execute permisiunile membrilor grupului și să nu aibă permisiuni tuturor celorlalți utilizatori:
chmod 750 dirnameDă permisiuni de citire, scriere și execuție și un bit lipicios pentru un anumit director:
chmod 1777 dirnameSetați recursiv la citirea, scrierea și execuția permisiunilor pentru proprietarul fișierului și fără permisiuni pentru toți ceilalți utilizatori dintr-un director dat:
chmod -R 700 dirname
Utilizarea unui fișier de referință
Opțiunea
--reference=ref_file
vă permite să setați permisiunile fișierului să fie identice cu cele ale fișierului de referință specificat (
ref_file
).
chmod --reference=REF_FILE FILE
De exemplu, următoarea comandă va atribui permisiunile
file1
file2
Modificați recursiv Permisiunile fișierului
Pentru a opera recursiv pe toate fișierele și directoarele din directorul dat, utilizați opțiunea
-R
(
--recursive
):
chmod -R MODE DIRECTORY
De exemplu, pentru a modifica permisiunile tuturor fișierelor și subdirectoarelor din directorul
/var/www
la
755
ați folosi:
Operare pe legături simbolice
Linkurile simbolice au întotdeauna
777
permisiuni.
În mod implicit, la modificarea permisiunilor de symlink,
chmod
va schimba permisiunile din fișierul la care este îndreptat linkul.
chmod 755 symlink
Șansele sunt că în loc să schimbați proprietatea țintă, veți primi o eroare „nu pot accesa„ simbolul ”: Permisul refuzat”.
Eroarea apare deoarece în mod implicit la majoritatea distribuțiilor Linux simbolurile sunt protejate și nu puteți opera pe fișierele țintă. Această opțiune este specificată în
/proc/sys/fs/protected_symlinks
.
1
înseamnă activat și
0
dezactivat. Se recomandă să nu dezactivați protecția de pe simboluri.
Modificarea permisiunilor de fișiere în volum
Uneori, există situații în care va trebui să schimbați în mod masiv permisiunile de fișiere și directoare.
Cel mai frecvent scenariu este de a schimba recursiv permisiunile fișierului site-ului web la
644
și permisiunile directorului la
755
.
Folosind metoda numerică:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
Folosind metoda simbolică:
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 {} ;
Comanda
find
va căuta fișiere și directoare sub
/var/www/my_website
și va trece fiecare fișier și director găsit la comanda
chmod
pentru a seta permisiunile.
Concluzie
Comanda
chmod
modifică permisiunile fișierului. Permisiunile pot fi setate folosind modul simbolic sau numeric.
Pentru a afla mai multe despre
chmod
vizitați pagina man chmod.
Când deschideți orice folder în Windows 10/8/7, Explorer de fișiere va afișa de obicei următoarele detalii despre obiecte - nume, modificare dată, Etc. Dacă doriți, puteți afișa informații suplimentare sau detalii despre obiecte, fie că sunt fișiere de document, fișiere imagine, fișiere video sau directoare.
Să vedem cum putem alege detaliile folderului pentru afișare și afișare informații suplimentare în coloanele Windows File Explorer
Să presupunem că aveți un fișier de 100 .mp4, 150 de fișiere .mkv, 200 de imagini .png și alte fișiere .txt și .docx într-un singur folder. Acum, doriți să le organizați în funcție de formatele de fișiere. De exemplu, doriți să creați un folder separat pentru videoclipuri, imagini și documente. Dacă doriți să le sortați manual în funcție de File Extension și File Type, ar fi o sarcină dificilă dacă aveți mii de fișiere într-un singur dosar. Trebuie să le selectați înainte de a vă deplasa. În caz
Pentru a vă ajuta în această problemă,
Majoritatea trebuie să fie conștienți că atunci când este creat un nou fișier sau un folder, Windows va atribui un set de permisiuni implicite. Acestea se numesc Permise eficiente. Utilizatorul care creează fișierul sau folderul poate, de asemenea, să-și schimbe și să-i atribuie permisiuni specifice.
ÎN timp ce suntem capabili să deschidem majoritatea fișierelor și dosarelor, pot exista momente în care nu vi se permite și puteți să vedeți un







