Care fișier sau dosar dintr-un volum NTFS are un proprietar. Anumite fișiere de sistem sunt deținute de TrustedInstaller, unele de contul SYSTEM, iar altele de grupul „Administrators”. Dacă un utilizator creează un fișier sau un dosar, acel utilizator este, de obicei, proprietarul fișierului sau al dosarului. Proprietarul este cel care poate atribui permisiuni (Allow sau Deny) altor utilizatori pentru acel obiect.
Dacă un utilizator nu este proprietarul unui fișier sau dosar sau nu are permisiuni de acces la fișier, el primește eroarea „access is denied” (accesul este refuzat) atunci când accesează obiectul respectiv. Dacă utilizatorul respectiv este un administrator, el poate prelua proprietatea asupra obiectului utilizând fila Properties – Security (Proprietăți – Securitate) a fișierului sau a dosarului. Apoi, el își poate atribui singur permisiunile necesare.
Acest post vă spune cum să preluați proprietatea unui fișier sau dosar și să atribuiți permisiunile necesare pentru acesta folosind linia de comandă în loc de GUI.
Windows include un instrument de linie de comandă numit Takeown.exe, care poate fi folosit dintr-un Prompt de comandă al administratorului pentru a schimba rapid proprietatea unui fișier sau dosar. Iată cum să preluați proprietatea unui fișier sau dosar și apoi să atribuiți permisiuni pentru un cont folosind linia de comandă.
- Preluarea proprietății unui fișier
- Assign File Permissions
- Preluarea proprietății unui dosar
- Schimbarea proprietății în mod recursiv:
- Assign Folder Permissions
- Ajutorul din linia de comandă:
- Metode mai simple pentru preluarea proprietății
- Command Script
- Adaugați comanda „Take Ownership” la meniul click-dreapta
- Informații suplimentare
- icacls.exe poate, de asemenea, să schimbe proprietatea unui fișier sau dosar!
- Schimbarea proprietății unui fișier sau dosar utilizând icacls.exe
- Exemple: Set #1: Schimbarea proprietății unui singur fișier sau dosar
- Exemplu #2: Schimbarea proprietății pentru un folder (subfolder și fișiere) în mod recursiv
- Revenirea proprietății înapoi la TrustedInstaller
- Utilizarea comenzii icacls.exe pentru a seta TrustedInstaller ca proprietar al unui fișier
- icacls /setowner access denied?
- Utilizarea SetACL.exe pentru a prelua proprietatea și a atribui permisiuni
- SetACL: Argumente în linia de comandă
- Exemple: Schimbarea proprietății unui singur fișier sau dosar:
- Exemple: Schimbarea proprietății în mod recursiv:
- Exemple: Exemple: Atribuiți permisiunile necesare pentru un fișier sau dosar:
- Exemple: Atribuiți permisiunile necesare în mod recursiv:
Preluarea proprietății unui fișier
Deschideți o fereastră Command Prompt elevată. Utilizați următoarea sintaxă pentru a prelua proprietatea unui fișier:
TAKEOWN /F <filename>
Înlocuiți <filename> cu numele real al fișierului cu calea completă.
Utilizatorul conectat în prezent este acum proprietarul fișierului.
Pentru a seta grupul Administrators
ca proprietar al fișierului, utilizați în plus comutatorul /A
:
TAKEOWN /F <filename> /A
-
/A
Acordă proprietatea grupului Administrators în locul utilizatorului curent. Dacă/A
nu este specificat, proprietatea asupra fișierului va fi atribuită utilizatorului conectat în mod curent. Acest parametru nu face distincție între majuscule și minuscule.
Dacă operațiunea a avut succes, ar trebui să vedeți următorul mesaj:
„SUCCES: Fișierul (sau dosarul): „nume fișier” este acum deținut de către utilizatorul „Nume computer\Nnumele utilizatorului”.”
sau
SUCCES: Fișierul (sau folderul): „nume fișier” este acum deținut de grupul administratorilor.
Assign File Permissions
Apoi, pentru a acorda administratorilor permisiuni de control total pentru fișier, utilizați ICACLS. Iată sintaxa:
ICACLS <filename> /grant administrators:F
Exemplu 2: Pentru a atribui permisiuni Full Control pentru utilizatorul conectat în mod curent, utilizați această comandă:
ICACLS <filename> /grant %username%:F
%username% reprezintă numele de cont al utilizatorului conectat în mod curent. ICacls acceptă această variabilă în mod direct.
Exemplu 3: Pentru a atribui permisiuni Full Control pentru utilizatorul numit John
, utilizați această comandă:
ICACLS <filename> /grant John:F
Preluarea proprietății unui dosar
Utilizați următoarea sintaxă:
takeown /f <foldername>
(sau)
takeown /f <foldername> /a
-
/a
Acordă proprietatea grupului Administrators în locul utilizatorului curent. Dacă/a
nu este specificat, dreptul de proprietate va fi atribuit utilizatorului conectat în mod curent. Acest parametru nu face distincție între majuscule și minuscule.
Vă veți vedea următoarea ieșire:
SUCCES: Fișierul (sau dosarul): „nume_de_dosar” este acum deținut de către utilizatorul „nume_de_calculator”
(sau)
SUCCESS: Fișierul (sau folderul): „nume_dosar” este acum deținut de grupul de administratori.
Schimbarea proprietății în mod recursiv:
Pentru a schimba proprietatea unui dosar, a subfolderelor sale și a fișierelor din fiecare subfolder, utilizați această sintaxă:
takeown /f <foldername> /r /d y
Utilizatorul conectat în mod curent este acum proprietarul dosarului.
Pentru a seta grupul Administrators
ca proprietar al folderului, al subfolderelor sale și al fișierelor în mod recursiv, utilizați în plus comutatorul /A
:
TAKEOWN /F <foldername> /a /r /d y
-
/R
Recurse: ordonă instrumentului să opereze asupra fișierelor din directorul specificat și din toate subdirectoarele. -
/D
prompt Răspuns implicit utilizat atunci când utilizatorul curent nu are permisiunea „list folder” pe un director. Acest lucru se întâmplă în timpul operării recursive (/R) pe subdirectoare. Valori valide „Y” pentru a prelua proprietatea sau „N” pentru a trece peste.
Assign Folder Permissions
Apoi, pentru a atribui grupului Administrators Full Control Permissions pentru dosar, utilizați această sintaxă:
icacls <foldername> /grant administrators:F /T
Se adaugă parametrul /T pentru ca operațiunea să fie efectuată prin toate subdirectoarele și fișierele din acel dosar.
Ajutorul din linia de comandă:
Pentru a cunoaște informațiile complete de utilizare pentru Takeown.exe și ICacls.exe, rulați aceste comenzi dintr-o fereastră Command Prompt.
takeown /?
icacls /?
Metode mai simple pentru preluarea proprietății
Command Script
Pentru a simplifica și mai mult procesul de preluare a proprietății, Tim Sneath de la Microsoft pune la dispoziție un fișier .CMD (Windows Command Script) care preia proprietatea și atribuie permisiuni de control total administratorilor pentru directorul respectiv. Pentru mai multe informații, citiți postarea lui Tim, intitulată Secret #11: Deleting the Undeletable.
Adaugați comanda „Take Ownership” la meniul click-dreapta
Aceasta folosește din nou verbul special runas în Windows Vista și versiunile superioare, pe care l-am acoperit mai devreme (REF RunAs).
via WinMatrix.com
Download takeown_context.reg și salvați pe Desktop. Faceți clic dreapta pe fișier și alegeți Merge. Faceți clic pe Yes (Da) atunci când vi se cere confirmarea. Acest lucru adaugă o comandă extinsă numită Take Ownership în meniul contextual pentru fișiere și directoare. Pentru a accesa comanda, trebuie să țineți apăsată tasta SHIFT și apoi să faceți clic dreapta pe un fișier sau dosar.
(Puteți citi mai multe despre această modificare în articolul Take Ownership of File or Folder via Right-click Context Menu in Windows.)
Informații suplimentare
Secțiunea de mai sus acoperă majoritatea lucrurilor de care aveți nevoie. Citiți mai jos dacă aveți nevoie de mai multe sfaturi pe această temă.
icacls.exe poate, de asemenea, să schimbe proprietatea unui fișier sau dosar!
Takeown.exe și Icacls.exe sunt cele două instrumente de consolă încorporate în Windows, care vă permit să schimbați proprietatea unui fișier sau dosar și, respectiv, să atribuiți permisiuni de control al accesului. Takeown.exe stabilește contul de utilizator conectat în mod curent ca proprietar al unui obiect (fișier sau dosar).
Cu toate acestea, cu Takeown.exe, nu puteți face un alt cont ca proprietar al unui obiect.
Știați că instrumentul icacls.exe poate fi, de asemenea, utilizat pentru a schimba proprietatea?
Pentru a schimba proprietatea către un cont terț (de ex, contul care nu este conectat în mod curent) sau grupul, puteți utiliza icacls.exe cu argumentul /setowner
din linia de comandă, în loc de takeown.exe.
Schimbarea proprietății unui fișier sau dosar utilizând icacls.exe
Am văzut cum se schimbă proprietatea utilizând icacls.exe în ultima parte a articolului Take Ownership of a File or Folder Using Command-Line in Windows. Iată alte câteva exemple:
Aceasta este sintaxa liniei de comandă pentru a schimba proprietatea unui fișier sau dosar folosind icacls.exe:
icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"
Exemple: Set #1: Schimbarea proprietății unui singur fișier sau dosar
icacls "D:\Annual Reports20\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Administrators"
Dacă operațiunea a avut succes, veți vedea următorul mesaj:
processed file: file_or_folder_nameSuccessfully processed 1 files; Failed processing 0 files
Exemplu #2: Schimbarea proprietății pentru un folder (subfolder și fișiere) în mod recursiv
Pentru a schimba proprietatea unui folder, a subfolderelor sale și a tuturor fișierelor din toate subfolderele în mod recursiv, utilizați comutatorul /T
(traverse) în plus:
icacls "folder_name" /setowner "Administrators" /T
-
/T
indică faptul că această operațiune se efectuează asupra tuturor fișierelor/directoarelor care corespund sub directoarele specificate în nume.
Comanda de mai sus stabilește TrustedInstaller ca proprietar al folderului, al subfolderelor sale și al tuturor fișierelor din toate subfolderele.
Revenirea proprietății înapoi la TrustedInstaller
Câteodată, pentru a rezolva o problemă, este posibil să fie nevoie să modificați un fișier de date, cum ar fi XML sau o cheie de registru deținută de TrustedInstaller. Pentru aceasta, trebuie mai întâi să preluați proprietatea asupra fișierului, dosarului sau cheii de registru.
După modificarea fișierelor sau a setărilor, trebuie să readuceți proprietatea înapoi la TrustedInstaller, dacă TrustedInstaller a fost proprietarul anterior sau original. Pentru a seta proprietatea înapoi la TrustedInstaller, utilizați acești pași:
Serviciul Windows Modules Installer sau TrustedInstaller permite instalarea, modificarea și eliminarea actualizărilor Windows și a componentelor opționale. În mod implicit, TrustedInstaller este, de asemenea, proprietarul multor chei de registru și fișiere de sistem critice.
- Clic dreapta pe un fișier sau o cheie de registru și faceți clic pe Permissions.
- Clic pe Advanced pentru a deschide fereastra de dialog Advanced Security Settings.
- Lângă „Owner:”, faceți clic pe Change.
- În fereastra de dialog Select User or Group (Selectare utilizator sau grup), tastați „
NT SERVICE\TrustedInstaller
” și apăsați ENTER.
- Click Apply, OK.
Aceasta modifică proprietatea obiectului (fișier, dosar sau cheie de registru) în TrustedInstaller sau Windows Modules Installer.
Utilizarea comenzii icacls.exe pentru a seta TrustedInstaller ca proprietar al unui fișier
Dintr-o fereastră admin Command Prompt, utilizați următoarea sintaxă a liniei de comandă:
icacls "path\filename" /setowner "NT Service\TrustedInstaller"
Exemplu:
icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"
TrustedInstaller deține acum fișierul WindowsStore.admx.
icacls /setowner access denied?
Cîteodată, linia de comandă icacls.exe /setowner
poate întîlni următoarea eroare:
filename: Access is denied.Successfully processed 0 files; Failed processing 1 files
Acest lucru se poate întîmpla atunci cînd întîlnește un hard link NTFS. Eroarea apare, de obicei, atunci când încercați să schimbați proprietatea fișierelor protejate din directorul Windows – de exemplu, C:\Windows\Notepad.exe
. O legătură dură este reprezentarea sistemului de fișiere a unui fișier prin care mai multe căi de acces fac referire la un singur fișier din același volum.
De exemplu, fișierele Notepad.exe au două fișiere cu legătură dură, pe care le puteți vedea folosind următoarea comandă:
fsutil.exe hardlink list C:\Windows\notepad.exe
Puteți vedea că Notepad.exe este hard-linkat la următoarele fișiere:
C:\Windows\System32\Notepad.exeC:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe
Comanda icacls.exe /setowner
întâmpină eroarea ACCESS_DENIED
atunci când procesează aceste hard-link-uri.
Rețineți că documentația icacls.exe spune: „Această opțiune nu forțează o schimbare de proprietate; utilizați utilitarul takeown.exe în acest scop.”
Dacă întâmpinați erori „Access is Denied” (Accesul este refuzat) atunci când setați proprietatea cu ajutorul Icacls, este posibil să trebuiască să vă bazați pe Takeown.exe, SubInACL sau pe utilitarul de linie de comandă terță parte SetACL.exe (vezi paragraful următor).
Utilizarea SetACL.exe pentru a prelua proprietatea și a atribui permisiuni
SetACL.exe este un instrument de linie de comandă terță parte (de la HelgeKlein.com) pe care l-am mai abordat anterior.
SetACL: Argumente în linia de comandă
Înainte de a continua, să vedem sintaxa liniei de comandă pentru a schimba proprietatea și permisiunile fișierelor/registrelor folosind SetACL.
SetACL -on objectname -ot objecttype -actn action
-
-on
: Specificați calea către obiectul asupra căruia SetACL trebuie să opereze (de ex, fișier, cheie de registru, partajare în rețea, serviciu sau imprimantă). -
-ot
: Specificați tipul de obiect. Pentru a modifica proprietatea sau permisiunile pentru un fișier sau un dosar, utilizați tipul de obiectfile
. Pentru cheile de registru, utilizați tipul de obiectreg
-
-actn
: Specificați acțiunea cu privire la ceea ce ar trebui să facă SetACL față de obiectul specificat. Pentru preluarea proprietății, setați acțiunea ca fiindsetowner
. Pentru a schimba permisiunile, setați acțiunea caace
. -
-ownr
: Specificați numele sau SID-ul unui administrator (un utilizator sau un grup) în acest format – de exemplu,"n:Administrators"
(Consultați documentația SetACL pentru lista completă a obiectelor, tipurilor și acțiunilor acceptate.)
Pentru a schimba proprietatea și a acorda permisiunea de control total, iată câteva exemple:
Exemple: Schimbarea proprietății unui singur fișier sau dosar:
setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:John"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:John"
Exemple: Schimbarea proprietății în mod recursiv:
Opțiunea 1: Pentru a seta proprietatea unui dosar și a subfolderelor sale (nu pentru fișiere) în mod recursiv, utilizați unul dintre aceste exemple:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont
-
-rec
– recursivitatea este activată. -
cont
– Recursează și procesează numai directoare.
Opțiunea 2: Pentru a stabili proprietatea asupra fișierelor dintr-un dosar și a subdosarelor sale (nu pentru dosare) în mod recursiv, utilizați unul dintre aceste exemple:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec obj
-
-rec
– recursivitatea este activată. -
obj
– Recurgerea și procesarea numai a fișierelor.
Opțiunea 3: Pentru a stabili proprietatea unui dosar, a subfolderelor sale și a fișierelor în mod recursiv, utilizați unul dintre aceste exemple:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont_obj
-
-rec
– recursivitatea este activată. -
cont_obj
– Recurgerea și procesarea directoarelor și a fișierelor.
Exemple:
Exemple: Atribuiți permisiunile necesare pentru un fișier sau dosar:
După ce aveți proprietatea, puteți atribui permisiunile necesare pentru un obiect. Iată câteva exemple:
Pentru a atribui permisiunile pentru un singur fișier sau dosar, utilizați unul dintre aceste exemple:
setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:John;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full"
Exemple: Atribuiți permisiunile necesare în mod recursiv:
Opțiunea 1: Pentru un dosar și subfoldere (nu fișiere) în mod recursiv, utilizați unul dintre aceste exemple:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec contsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont
-
-rec
– recursivitatea este activată. -
cont
– Recursivitate, și procesează numai directoare.
Opțiunea 2: Pentru fișierele dintr-un dosar și subdosare (nu dosare) recursiv, utilizați unul dintre aceste exemple:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec obj
-
-rec
– recursivitatea este activată. -
obj
– Recursează și procesează numai fișierele.
Opțiunea 3: Pentru un dosar, subfolderele sale și fișierele recursiv, utilizați unul dintre aceste exemple:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec cont_objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont_obj
-
-rec
– recursivitatea este activată. -
cont_obj
– Recursivizarea și procesarea directoarelor și a fișierelor.
Puteți consulta documentația oficială SetACL pentru a cunoaște toate capacitățile sale. Cu toate acestea, pentru a seta permisiunile de proprietate a fișierelor și folderelor &, takeown.exe și icacls.exe ar fi mai mult decât suficiente pentru majoritatea utilizatorilor.
.