Každý soubor nebo složka ve svazku NTFS má svého vlastníka. Některé systémové soubory vlastní TrustedInstaller, některé účet SYSTEM a jiné skupina „Administrators“. Pokud uživatel vytvoří soubor nebo složku, je obvykle jejich vlastníkem. Vlastník je ten, kdo může přidělovat oprávnění (Allow nebo Deny) ostatním uživatelům k danému objektu.
Pokud uživatel není vlastníkem souboru nebo složky nebo nemá oprávnění k přístupu k souboru, zobrazí se mu při přístupu k objektu chyba „přístup je odepřen“. Pokud je tento uživatel správcem, může převzít vlastnictví objektu pomocí karty Vlastnosti souboru nebo složky – Zabezpečení. Poté si může sám přiřadit požadovaná oprávnění.
V tomto příspěvku se dozvíte, jak převzít vlastnictví souboru nebo složky a přiřadit jim požadovaná oprávnění pomocí příkazového řádku místo grafického uživatelského rozhraní.
Systém Windows obsahuje nástroj příkazového řádku s názvem Takeown.exe, který lze použít z příkazového řádku správce k rychlé změně vlastnictví souboru nebo složky. Zde je uveden postup, jak převzít vlastnictví souboru nebo složky a poté přiřadit oprávnění účtu pomocí příkazového řádku.
- Převzetí vlastnictví souboru
- Přiřazení oprávnění k souboru
- Převzetí vlastnictví složky
- Změnit vlastnictví rekurzivně:
- Přiřazení oprávnění ke složce
- Nápověda příkazového řádku:
- Jednodušší metody převzetí vlastnictví
- Příkazový skript
- Přidejte příkaz „Převzít vlastnictví“ do nabídky pravého tlačítka myši
- Další informace
- Icacls.exe také dokáže změnit vlastnictví souboru nebo složky!
- Změna vlastnictví souboru nebo složky pomocí nástroje icacls.exe
- Příklady:
- Příklad č. 2:
- Vrátit vlastnictví zpět na TrustedInstaller
- Pomocí příkazu icacls.exe nastavíte TrustedInstaller jako vlastníka souboru
- icacls /setowner přístup odepřen?
- Použití nástroje SetACL.exe k převzetí vlastnictví a přidělení oprávnění
- SetACL: Argumenty příkazového řádku
- Příklady: Změna vlastnictví jednoho souboru nebo složky:
- Příklady: Změna vlastnictví rekurzivně:
- Příklady: Přiřazení požadovaných oprávnění pro soubor nebo složku:
- Příklady: Přiřazení požadovaných oprávnění rekurzivně:
Převzetí vlastnictví souboru
Otevřete zvýšené okno Příkazového řádku. Pro převzetí vlastnictví souboru použijte následující syntaxi:
TAKEOWN /F <filename>
Nahraďte <jméno souboru> skutečným názvem souboru s úplnou cestou.
Vlastníkem souboru je nyní aktuálně přihlášený uživatel.
Chcete-li jako vlastníka souboru nastavit skupinu Administrators
, použijte navíc přepínač /A
:
TAKEOWN /F <filename> /A
-
/A
Předá vlastnictví skupině Administrators namísto aktuálního uživatele. Není-li/A
zadán, bude vlastnictví souboru přiděleno aktuálně přihlášenému uživateli. U tohoto parametru se nerozlišují malá a velká písmena.
Pokud byla operace úspěšná, měla by se zobrazit následující zpráva:
„SUCCESS: Soubor (nebo složka): „Název souboru“ nyní vlastní uživatel „Jméno počítače\Název uživatele“.“
nebo
ÚSPĚCH: Soubor (nebo složka): „
Přiřazení oprávnění k souboru
Pokud chcete přidělit oprávnění k plné kontrole souboru skupině Administrators, použijte ICACLS. Zde je syntaxe:
ICACLS <filename> /grant administrators:F
Příklad 2: Chcete-li přidělit oprávnění Plné řízení pro aktuálně přihlášeného uživatele, použijte tento příkaz:
ICACLS <filename> /grant %username%:F
%username% představuje název účtu aktuálně přihlášeného uživatele. ICacls tuto proměnnou přijímá přímo.
Příklad 3: Chcete-li přiřadit oprávnění Úplné řízení pro uživatele se jménem John
, použijte tento příkaz:
ICACLS <filename> /grant John:F
Převzetí vlastnictví složky
Použijte následující syntaxi:
takeown /f <foldername>
(nebo)
takeown /f <foldername> /a
-
/a
Předá vlastnictví skupině Administrators místo aktuálnímu uživateli. Není-li/a
zadán, bude vlastnictví přiděleno aktuálně přihlášenému uživateli. U tohoto parametru se nerozlišují velká a malá písmena.
Zobrazí se následující výstup:
ÚSPĚCH: Soubor (nebo složka): „
(nebo)
ÚSPĚCH: Soubor (nebo složka): „
Změnit vlastnictví rekurzivně:
Chcete-li změnit vlastnictví složky, jejích podsložek a souborů v každé podsložce, použijte tuto syntaxi:
takeown /f <foldername> /r /d y
Vlastníkem složky je nyní aktuálně přihlášený uživatel.
Chcete-li nastavit skupinu Administrators
jako vlastníka složky, jejích podsložek a souborů rekurzivně, použijte navíc přepínač /A
:
TAKEOWN /F <foldername> /a /r /d y
-
/R
Recurse: dává nástroji pokyn, aby pracoval se soubory v zadaném adresáři a všech podadresářích. -
/D
výzva Výchozí odpověď se používá, pokud aktuální uživatel nemá v adresáři oprávnění „vypsat složku“. K tomu dochází při rekurzivní práci (/R) s podadresáři. Platné hodnoty „Y“ pro převzetí vlastnictví nebo „N“ pro vynechání.
Přiřazení oprávnění ke složce
Pokud chcete skupině Administrators přiřadit oprávnění k plnému řízení složky, použijte tuto syntaxi:
icacls <foldername> /grant administrators:F /T
Parametr /T se přidává proto, aby se operace provedla přes všechny podadresáře a soubory v dané složce.
Nápověda příkazového řádku:
Chcete-li znát úplné informace o použití Takeown.exe a ICacls.exe, spusťte tyto příkazy z okna příkazového řádku.
takeown /?
icacls /?
Jednodušší metody převzetí vlastnictví
Příkazový skript
Pro další zjednodušení procesu převzetí vlastnictví poskytuje Tim Sneath ze společnosti Microsoft soubor .CMD (příkazový skript systému Windows), který převezme vlastnictví a přidělí oprávnění Plné řízení správcům adresáře. Další informace naleznete v Timově příspěvku s názvem Secret #11:
Přidejte příkaz „Převzít vlastnictví“ do nabídky pravého tlačítka myši
Tento příkaz opět využívá speciální sloveso runas ve Windows Vista a vyšších, kterému jsem se věnoval dříve (REF RunAs).
přes WinMatrix.com
Stáhněte si soubor takeown_context.reg a uložte jej na Plochu. Klepněte na soubor pravým tlačítkem myši a zvolte možnost Sloučit. Po výzvě k potvrzení klikněte na Ano. Tím se do kontextové nabídky pro soubory a adresáře přidá rozšířený příkaz s názvem Převzít vlastnictví. Pro přístup k příkazu je třeba stisknout a podržet klávesu SHIFT a poté kliknout pravým tlačítkem myši na soubor nebo složku.
(Více informací o tomto vylepšení si můžete přečíst v článku Převzetí vlastnictví souboru nebo složky prostřednictvím kontextové nabídky pravého tlačítka myši ve Windows)
Další informace
Výše uvedená část pokrývá většinu potřebných věcí. Pokud potřebujete další tipy k tomuto tématu, přečtěte si je níže.
Icacls.exe také dokáže změnit vlastnictví souboru nebo složky!
Takeown.exe a Icacls.exe jsou dva vestavěné konzolové nástroje v systému Windows, které umožňují změnit vlastnictví souboru nebo složky, respektive přiřadit oprávnění k řízení přístupu. Takeown.exe nastaví aktuálně přihlášený uživatelský účet jako vlastníka objektu (souboru nebo složky).
Pomocí Takeown.exe však nemůžete jako vlastníka objektu nastavit jiný účet.
Víte, že ke změně vlastnictví lze použít také nástroj icacls.exe?
Chcete-li změnit vlastnictví na účet třetí strany (tj, účtu, který není aktuálně přihlášen) nebo skupině, můžete místo nástroje takeown.exe použít nástroj icacls.exe s argumentem /setowner
příkazového řádku.
Změna vlastnictví souboru nebo složky pomocí nástroje icacls.exe
V poslední části článku Převzetí vlastnictví souboru nebo složky pomocí příkazového řádku v systému Windows jsme viděli, jak změnit vlastnictví pomocí nástroje icacls.exe. Zde je několik dalších příkladů:
Následující syntaxe příkazového řádku pro změnu vlastnictví souboru nebo složky pomocí icacls.exe:
icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"
Příklady:
icacls "D:\Annual Reports20\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Administrators"
Pokud byla operace úspěšná, zobrazí se následující zpráva:
processed file: file_or_folder_nameSuccessfully processed 1 files; Failed processing 0 files
Příklad č. 2:
Chcete-li rekurzivně změnit vlastnictví složky (podsložky a souborů), jejích podsložek a všech souborů ve všech podsložkách, použijte navíc přepínač /T
(traverse):
icacls "folder_name" /setowner "Administrators" /T
-
/T
označuje, že tato operace se provede pro všechny odpovídající soubory/adresáře pod adresáři uvedenými v názvu.
Výše uvedený příkaz nastaví TrustedInstaller jako vlastníka složky, jejích podsložek a všech souborů ve všech podsložkách.
Vrátit vlastnictví zpět na TrustedInstaller
Někdy může být k odstranění problému nutné změnit datový soubor, například XML nebo klíč registru, jehož vlastníkem je TrustedInstaller. Za tímto účelem je třeba nejprve převzít vlastnictví souboru, složky nebo klíče registru.
Po úpravě souborů nebo nastavení je třeba vrátit vlastnictví zpět na TrustedInstaller, pokud byl TrustedInstaller předchozím nebo původním vlastníkem. Chcete-li nastavit vlastnictví zpět na TrustedInstaller, použijte následující kroky:
Služba Windows Modules Installer neboli TrustedInstaller umožňuje instalaci, úpravu a odstranění aktualizací systému Windows a volitelných součástí. Ve výchozím nastavení je TrustedInstaller také vlastníkem mnoha kritických klíčů registru a systémových souborů.
- Klikněte pravým tlačítkem myši na soubor nebo klíč registru a klikněte na příkaz Oprávnění.
- Kliknutím na tlačítko Upřesnit otevřete dialogové okno Upřesnit nastavení zabezpečení.
- U položky „Vlastník:“ klikněte na tlačítko Změnit.
- V dialogovém okně Vyberte uživatele nebo skupinu zadejte „
NT SERVICE\TrustedInstaller
“ a stiskněte klávesu ENTER.
- Klikněte na Použít, OK.
Tím změníte vlastnictví objektu (souboru, složky nebo klíče registru) na TrustedInstaller nebo Windows Modules Installer.
Pomocí příkazu icacls.exe nastavíte TrustedInstaller jako vlastníka souboru
Z okna příkazového řádku správce použijte následující syntaxi příkazového řádku:
icacls "path\filename" /setowner "NT Service\TrustedInstaller"
Příklad:
icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"
TrustedInstaller nyní vlastní soubor WindowsStore.admx.
icacls /setowner přístup odepřen?
Někdy může příkazový řádek icacls.exe /setowner
narazit na následující chybu:
filename: Access is denied.Successfully processed 0 files; Failed processing 1 files
To se může stát, když narazí na pevný odkaz NTFS. Chyba se obvykle objeví při pokusu o změnu vlastnictví chráněných souborů v adresáři systému Windows – například C:\Windows\Notepad.exe
. Pevný odkaz je reprezentace souboru v souborovém systému, pomocí které více než jedna cesta odkazuje na jeden soubor ve stejném svazku.
Například soubory Notepad.exe mají dva pevně propojené soubory, které můžete vidět pomocí následujícího příkazu:
fsutil.exe hardlink list C:\Windows\notepad.exe
Vidíte, že Notepad.exe je pevně propojen s následujícími soubory:
C:\Windows\System32\Notepad.exeC:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe
Příkaz icacls.exe /setowner
narazí při zpracování těchto pevných odkazů na chybu ACCESS_DENIED
.
Všimněte si, že v dokumentaci k souboru icacls.exe je uvedeno: „Tato volba nevynucuje změnu vlastnictví; k tomuto účelu použijte nástroj takeown.exe.“
Pokud se při nastavování vlastnictví pomocí nástroje Icacls setkáte s chybami „Přístup je odepřen“, budete se možná muset spolehnout na nástroje příkazového řádku Takeown.exe, SubInACL nebo na nástroj třetí strany SetACL.exe (viz následující odstavec).
Použití nástroje SetACL.exe k převzetí vlastnictví a přidělení oprávnění
SetACL.exe je nástroj příkazového řádku třetí strany (od společnosti HelgeKlein.com), kterému jsme se věnovali již dříve.
SetACL: Argumenty příkazového řádku
Než budeme pokračovat, podívejme se na syntaxi příkazového řádku pro změnu vlastnictví souborů/registrů a oprávnění pomocí SetACL.
SetACL -on objectname -ot objecttype -actn action
-
-on
: Zadejte cestu k objektu, se kterým má SetACL pracovat (např, souboru, klíče registru, síťové sdílené složky, služby nebo tiskárny). -
-ot
: Zadejte typ objektu. Chcete-li změnit vlastnictví nebo oprávnění souboru nebo složky, použijte typ objektufile
. Pro klíče registru použijte typ objektureg
-
-actn
: Zadejte akci, co má SetACL provést proti zadanému objektu. Pro převzetí vlastnictví nastavte akci jakosetowner
. Pro změnu oprávnění nastavte akci jakoace
. -
-ownr
: Zadejte Jméno nebo SID správce (uživatele nebo skupiny) v tomto formátu – např."n:Administrators"
(Úplný seznam objektů, typů a podporovaných akcí najdete v dokumentaci SetACL)
Pro změnu vlastnictví a udělení plného oprávnění k řízení uvádíme několik příkladů:
Příklady: Změna vlastnictví jednoho souboru nebo složky:
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"
Příklady: Změna vlastnictví rekurzivně:
Možnost 1: Chcete-li rekurzivně nastavit vlastnictví složky a jejích podsložek (ne pro soubory), použijte jeden z těchto příkladů:
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
– rekurze je povolena. -
cont
– rekurze a zpracování pouze adresářů.
Možnost 2: Chcete-li rekurzivně nastavit vlastnictví souborů ve složce a jejích podsložkách (nikoli složek), použijte jeden z těchto příkladů:
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
– rekurze je povolena. -
obj
– rekurze a zpracování pouze souborů.
Možnost 3: Chcete-li rekurzivně nastavit vlastnictví složky, jejích podsložek a souborů, použijte jeden z těchto příkladů:
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
– rekurze je povolena. -
cont_obj
– rekurze a zpracování adresářů a souborů.
Příklady: Přiřazení požadovaných oprávnění pro soubor nebo složku:
Pokud máte vlastnictví, můžete objektu přiřadit požadovaná oprávnění. Zde je několik příkladů:
Chcete-li přiřadit oprávnění pro jeden soubor nebo složku, použijte jeden z těchto příkladů:
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"
Příklady: Přiřazení požadovaných oprávnění rekurzivně:
Možnost 1: Pro složku a podsložky (nikoli soubory) rekurzivně, použijte jeden z těchto příkladů:
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
– rekurze je povolena. -
cont
– rekurze a zpracování pouze adresářů.
Možnost 2: Pro soubory ve složce a podsložkách (nikoli složkách) rekurzivně použijte jeden z těchto příkladů:
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
– rekurze je povolena. -
obj
– rekurze a zpracování pouze souborů.
Možnost 3: Pro složku, její podsložky a soubory rekurzivně použijte jeden z těchto příkladů:
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
– rekurze je povolena. -
cont_obj
– rekurze a zpracování adresářů a souborů.
Můžete se podívat do oficiální dokumentace SetACL, abyste se dozvěděli o všech jeho možnostech. K nastavení práv k vlastnictví souborů a složek & však většině uživatelů bohatě postačí soubory takeown.exe a icacls.exe.
.