cacls
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.5 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[1][2][3][4] – dostupný od Windows 2000; přidává nové vlastnosti jako nastavení oprávnění Execute, Delete a Take Ownershipxcacls.vbs[5][6]fileacl.exe[7]icacls.exe– od Windows Server 2003 SP2[8][9]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[10] aSet-Acl[11] 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). 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.
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[12]; 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
V tomto článku byl použit překlad textu z článku Cacls na anglické Wikipedii.
- ↑ How to use Xcacls.exe to modify NTFS permissions (Revision: 4.5) [online]. Microsoft Corporation, 2007-03-02 [cit. 2011-12-24]. Dostupné online.
- ↑ Xcacls syntax [online]. Microsoft Corporation, 2003-03-28 [cit. 2012-10-30]. Dostupné online.
- ↑ Windows 2000 Resource Kit Tool: Xcacls.exe [online]. Microsoft Corporation, 2002-05-15 [cit. 2011-12-24]. Dostupné online.
- ↑ Windows XP Service Pack 2 Support Tools [online]. Microsoft Corporation, 2004-08-10 [cit. 2011-12-24]. Dostupné online.
- ↑ How to use Xcacls.vbs to modify NTFS permissions (Revision: 2.4) [online]. Microsoft Corporation, 2006-10-30 [cit. 2011-12-24]. Dostupné online.
- ↑ Extended Change Access Control List Tool (Xcacls) [2004-07-02]. Microsoft Corporation [cit. 2011-12-24]. Dostupné online.
- ↑ FILEACL v3.0.1.6 [online]. Microsoft, 2004-03-23 [cit. 2017-10-08]. Dostupné v archivu pořízeném dne 2008-04-16.
- ↑ The Icacls.exe utility is available for Windows Server 2003 with Service Pack 2 (Revision: 4.0) [online]. Microsoft Corporation, 2011-10-09 [cit. 2011-12-24]. Dostupné online.
- ↑ Icacls [online]. Microsoft Corporation, 2007-09-28 [cit. 2011-12-24]. Dostupné online.
- ↑ Get-Acl [online]. Microsoft Corporation, 2010-04-21 [cit. 2012-10-31]. Dostupné online.
- ↑ Set-Acl [online]. Microsoft Corporation, 2010-04-21 [cit. 2012-10-31]. Dostupné online.
- ↑ ICACLS.EXE ignores and destroys SE_DACL_PROTECTED/SE_SACL_PROTECTED
Literatura
- Cacls [online]. Microsoft Corporation [cit. 2011-12-24]. Dostupné online.
- Xcacls Overview [online]. Microsoft Corporation, 2003-03-28 [cit. 2011-12-24]. Dostupné online.
- DACLs and ACEs [online]. Microsoft Corporation, 2011-11-15 [cit. 2011-12-24]. Dostupné online.
- CACLS.exe [online]. SS64.com [cit. 2011-12-24]. Dostupné online.
- Microsoft DOS cacls command [online]. [cit. 2011-12-24]. Dostupné online.
- BRADLEY, Tony. Úvod na Windows Integrity Control [online]. 2010-11-02. Dostupné online.
- The Security Descriptor Definition Language of Love (Part 1)
Související články
- SetACL
- chmod