Cacls

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

cacls a icacls jsou programy pro prostředí příkazového řádku v Microsoft Windows sloužící pro zobrazování a modifikaci popisovačů zabezpečení (resp. Access Control List - ACL) souborů a složek. ACL je seznam oprávnění, který určuje, jakým uživatelům a skupinám uživatelů jsou povoleny jaké operace s objektem (souborem nebo složkou).

cacls

Původní program pro Windows NT 3. +more5 a pozdější operační systémy rodiny Windows NT, cacls. exe, je v současnosti zastaralý. Firma Microsoft vytvořila několik novějších programů, které poskytují podporu pro změny zavedené v systému souborů NTFS od verze 3. 0 (některé jsou již také zastaralé): * xcacls. exe - dostupný od Windows 2000; přidává nové vlastnosti jako nastavení oprávnění Execute, Delete a Take Ownership * xcacls. vbs * fileacl. exe * icacls. exe - od Windows Server 2003 SP2 * SubInAcl. exe - program z Resource Kitu pro nastavování a nahrazování oprávnění různým typům objektů včetně souborů, služeb a položek v registrech * cmdlety Get-Acl a Set-Acl ve Windows PowerShell.

icacls

Počínaje Windows Server 2003 Service Pack 2 je k dispozici řádkový příkaz icacls, který umožňuje zobrazování a změny ACLs souborů a složek; jejich ukládání do souboru a zpětné načítání; ve Windows Vista a pozdější verzích podporuje také nastavování úrovní integrity a vlastnictví. Není však úplnou náhradou za cacls; mimo jiné nepodporuje syntaxi Security Descriptor Definition Language (SDDL) přímo v parametrech příkazového řádku (pouze volbou /restore). +more Zkratka icacls znamená Integrity Control Access Control List.

Syntaxe

DAC je Discretionary Access Control, DACL Discretionary Access Control List:

ICACLS name /save aclfile [/T] [/C] [/L] [/Q] stores the DACLs for the files and folders that match the name into aclfile for later use with /restore. Note that SACLs, owner, or integrity labels are not saved.

ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile [/C] [/L] [/Q] applies the stored DACLs to files in directory.

ICACLS name /setowner user [/T] [/C] [/L] [/Q] changes the owner of all matching names. This option does not force a change of ownership; use the takeown.exe utility for that purpose.

ICACLS name /findsid Sid [/T] [/C] [/L] [/Q] finds all matching names that contain an ACL explicitly mentioning Sid.

ICACLS name /verify [/T] [/C] [/L] [/Q] finds all files whose ACL is not in canonical form or whose lengths are inconsistent with ACE counts.

ICACLS name /reset [/T] [/C] [/L] [/Q] replaces ACLs with default inherited ACLs for all matching files.

ICACLS name [/grant[:r] Sid:perm [...]] [/deny Sid:perm [...]] [/remove[:g|:d]] Sid [...]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy [...]]

/grant[:r] Sid:perm grants the specified user access rights. With :r, the permissions replace any previouly granted explicit permissions. +more Without :r, the permissions are added to any previously granted explicit permissions.

/deny Sid:perm explicitly denies the specified user access rights. An explicit deny ACE is added for the stated permissions and the same permissions in any explicit grant are removed.

/remove[:[g|d]] Sid removes all occurrences of Sid in the ACL. With :g, it removes all occurrences of granted rights to that Sid. With :d, it removes all occurrences of denied rights to that Sid.

/setintegritylevel [(CI)(OI)]Level explicitly adds an integrity ACE to all matching files. The level is to be specified as one of: L[ow] M[edium] H[igh] Inheritance options for the integrity ACE may precede the level and are applied only to directories.

/inheritance:e|d|r e - enables inheritance d - disables inheritance and copy the ACEs r - remove all inherited ACEs

Note: Sids may be in either numerical or friendly name form. If a numerical form is given, affix a * to the start of the SID.

/T indicates that this operation is performed on all matching files/directories below the directories specified in the name.

/C indicates that this operation will continue on all file errors. Error messages will still be displayed.

/L indicates that this operation is performed on a symbolic link itself versus its target.

/Q indicates that icacls should supress success messages.

ICACLS preserves the canonical ordering of ACE entries: Explicit denials Explicit grants Inherited denials Inherited grants

perm is a permission mask and can be specified in one of two forms: a sequence of simple rights: N - no access F - full access M - modify access RX - read and execute access R - read-only access W - write-only access D - delete access a comma-separated list in parentheses of specific rights: DE - delete RC - read control WDAC - write DAC WO - write owner S - synchronize AS - access system security MA - maximum allowed GR - generic read GW - generic write GE - generic execute GA - generic all RD - read data/list directory WD - write data/add file AD - append data/add subdirectory REA - read extended attributes WEA - write extended attributes X - execute/traverse DC - delete child RA - read attributes WA - write attributes inheritance rights may precede either form and are applied only to directories: (OI) - object inherit (CI) - container inherit (IO) - inherit only (NP) - don't propagate inherit (I) - permission inherited from parent container

Examples:

icacls c:\windows\* /save AclFile /T - Will save the ACLs for all files under c:\windows and its subdirectories to AclFile.

icacls c:\windows\ /restore AclFile - Will restore the Acls for every file within AclFile that exists in c:\windows and its subdirectories.

icacls file /grant Administrator:(D,WDAC) - Will grant the user Administrator Delete and Write DAC permissions to file.

icacls file /grant *S-1-1-0:(D,WDAC) - Will grant the user defined by sid S-1-1-0 Delete and Write DAC permissions to file.

Použití

Následující příkaz

icacls .

vypíše všechny popisovače zabezpečení aktuálního adresáře:

. NULL SID:(DENY)(Rc,S,X,DC) OBCHOD\novakk:(F) OBCHOD\Domain Users:(Rc,S,RA) OBCHOD\Domain Users:(R) Everyone:(Rc,S,RA)

V tomto případě má prázdný sid NULL SID odebrána (DENY) práva read control, synchronize, execute/traverse a delete child; uživatel novakk v doméně OBCHOD má plný přístup (full access - F); skupina Domain Users v doméně OBCHOD má dva záznamy, jeden s právy read control, synchronize a read attributes, druhý s právem read-only access; skupina Everyone má práva read control, synchronize a read attributes. Příkaz

icacls . /deny Everyone:(RC)

přidá uživateli Everyone zákaz read control a synchronize a zároveň z grantovaných práv vypustí explicitně zadané právo read control; ve výsledku bude původní záznam u příslušného adresáře pro skupinu Everyone nahrazen dvěma záznamy:

Everyone:(DENY)(Rc,S) Everyone:(S,RA)

Další příkaz změní u všech souborů v aktuálním adresáři popisovače zabezpečení pro skupinu Everyone na R, což umožní všem uživatelům čtení těchto souborů:

icacls *.* /grant:r Everyone:(R)

Vymazání všech práv garantujících i zakazujících přístup uživateli CREATOR OWNER u všech souborů v aktuálním adresáři lze provést dvojicí příkazů:

icacls *.* /remove:g "CREATOR OWNER":(R) icacls *.* /remove:d "CREATOR OWNER":(R)

Problémy

Všechny známé verze icacls mají vážnou chybu; pro objekty s chráněnými ACL: * ignoruje tuto ochranu, * tuto ochranu resetuje/ruší, * dědičná oprávnění nadřízeného objektu aplikuje/propaguje do jeho potomka a potomků jeho potomka.

Odkazy

Reference

Literatura

[url=http://blogs.technet.com/b/askds/archive/2008/04/18/the-security-descriptor-definition-language-of-love-part-1.aspx]The Security Descriptor Definition Language of Love (Part 1)[/url]

Související články

SetACL * chmod

Kategorie:Příkazy Windows

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top