passende dir / a: r und icacls

985
Miserable Variable

Ich versuche, Dateiberechtigungen in der Befehlszeile anzuzeigen. Ich bin auf eine ähnliche Frage gestoßen, kann aber die icaclsAusgabe nicht verstehen .

Im folgenden Beispiel c10.datist eine schreibgeschützte Datei, wie durch dir /a:rund der Fehler beim Überschreiben mit angezeigt dir > c10.dat.

In der icaclsAusgabe DOMAIN\USERsteht Platzhalter für meine eigene ID. Wie wird angezeigt, dass c10.dates sich um eine schreibgeschützte Datei handelt? Von dem, was ich verstehe, bedeuten seine ACLs (I)geerbten und (F)vollen Zugriff.

X:\>dir /a:r c10.dat Volume in drive X is OSDisk Volume Serial Number is 6621-4FA8  Directory of X:\  04/08/2013 11:11 AM 8,192 c10.dat 1 File(s) 8,192 bytes 0 Dir(s) 40,525,492,224 bytes free  X:\>icacls c10.dat c10.dat NT AUTHORITY\SYSTEM:(I)(F) BUILTIN\Administrators:(I)(F) DOMAIN\USER:(I)(F)  Successfully processed 1 files; Failed processing 0 files  X:\>dir > c10.dat Access is denied. 
0
Die Dateiattribute (wie schreibgeschützt) und Berechtigungen unterscheiden sich völlig. Der Befehl icacls zeigt die ACLs der Datei an. David Marshall vor 11 Jahren 1
Danke @DavidMarshall. Es scheint, dass ich die andere Frage und ihre Antwort missverstanden habe. Gibt es eine Möglichkeit, das schreibgeschützte Attribut einer Datei in der Befehlszeile zu finden, außer durch `dir / a: r` oder` attrib`? Miserable Variable vor 11 Jahren 0

2 Antworten auf die Frage

2
STTR

Сlear read-only attribute:

X:\>attrib -R c10.dat 

test:

X:\>dir > c10.dat 

SKU:

ls -al

Output:

total 148 drwxrwxrwx+ 1 Domain Users Domain Users 0 Apr 9 04:06 . drwxrwxrwx+ 1 +Administrators 513 0 Apr 8 14:43 .. -rwxrwxrwx+ 1 +Administrators Domain Users 354 Jun 5 2012 2.ps1 -rwxrwxrwx+ 1 +Administrators Domain Users 115 Oct 22 22:43 3.ps1 -rwxrwxrwx+ 1 +Administrators Domain Users 154 Apr 9 02:15 4.ps1 -r-xr-xr-x+ 1 +Administrators Domain Users 12030 Apr 9 02:25 Aliases.txt -rwxrwxrwx+ 1 +Administrators Domain Users 267 Feb 21 2012 ps-run.cmd -rwxrwxrwx+ 1 +Administrators Domain Users 61436 Apr 9 04:07 sub2.txt 
Ich versuche nicht, das schreibgeschützte Attribut zu löschen, ich versuche zu verstehen, wie die Datei von der icacls-Ausgabe schreibgeschützt ist Miserable Variable vor 11 Jahren 0
@HemalPandya Mit icacls wahrscheinlich. Es ist ein Werkzeug zum Verwalten der Liste der Rechte und nicht der Änderungen und zum Anzeigen der einfachen Attribute. `dir / A: RD c10.dat | find / C / I "c10.dat" `oder` dir / A: RD c10.dat` Vielleicht habe ich die Frage nicht verstanden, und Sie suchen effektive Rechte für den Benutzer, um schreibgeschützte ACLs bereitzustellen. . STTR vor 11 Jahren 0
Ich versuche, eine Möglichkeit zu finden, eine Liste der Dateien zusammen mit ihrem schreibgeschützten Status abzurufen, etwa 'ls -al' unter Unix Miserable Variable vor 11 Jahren 0
@HemalPandya http://www.suacommunity.com/SUA.aspx kann SFU / SUA oder einen Server verwenden - http://www.microsoft.com/de-de/download/details.aspx?id=274 STTR vor 11 Jahren 0
Vielen Dank. Ich verwende bereits "cygwin" auf meinem Rechner, der diese Informationen liefert, aber ich habe etwas vorinstalliertes gesucht. Miserable Variable vor 11 Jahren 0
2
Kevin Fegan

Es scheint, dass Sie das Read-onlyAttribut einer Datei mit der verwechseln ACL(wie andere bereits erwähnt haben).

Wenn eine Datei mit dem Read-onlyAttribut gekennzeichnet ist (wie durch attriboder sichtbar ist dir /a:r), kann sie (Read-only)vom System und allen Benutzern unabhängig von den ACLBerechtigungen der Datei für jeden Benutzer nicht beschrieben werden.

Wenn Sie versuchen, die WriteBerechtigung (ACL)einer Datei für einen bestimmten Benutzer zu finden, wird dies mit angezeigt icacls.

Zum Beispiel habe ich eine Datei mit dem Namen "test.txt" erstellt. Die Datei ist NICHT markiert Read-only.

C:\>attrib test.txt A C:\test.txt  C:\> 


Ich habe die Datei geprüft mit icacls:

C:\>icacls test.txt test.txt BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX)  C:\> 


Ich habe die Datei markiert Read-onlymit attrib:

C:\>attrib +R test.txt A R C:\test.txt  C:\>attrib test.txt A R C:\test.txt  C:\> 


Ich habe die Datei noch einmal geprüft mit icacls:

C:\>icacls test.txt test.txt BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX)  C:\> 

Wie Sie gesehen haben, ändert sich die Ausgabe von icaclsfür diese Datei nicht.

Dann änderte ich die Erlaubnis der Datei BUILTIN\Userszu Deny Write(diese annähert Read-only), und überprüft die Datei erneut mit icacls:

C:\>icacls test.txt test.txt BUILTIN\Users:(DENY)(W) BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX)  C:\> 

Beachten Sie, dass jetzt BUILTIN\Users:(DENY)(W)die Datei angezeigt wird.

Wenn ich die Erlaubnis der Datei ändern für BUILTIN\Usersauf Deny Full controlund prüfen Sie die Datei erneut icaclszeigt:

C:\>icacls test.txt test.txt BUILTIN\Users:(N) BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX)  C:\> 

Es wird jetzt BUILTIN\Users:(N)für die Datei angezeigt.

Wenn ich die Erlaubnis der Datei ändern für BUILTIN\Userszu Allow Full controlund dann Deny Modifyund überprüfen Sie die Datei erneut icaclszeigt:

C:\>icacls test.txt test.txt BUILTIN\Users:(DENY)(M) BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX)  C:\> 

Es wird jetzt BUILTIN\Users:(DENY)(M)für die Datei angezeigt.

Wenn Sie die Einstellung des Attributs "Schreibgeschützt" für eine Datei anzeigen möchten, können Sie sie nicht sehen, icaclsda sie Read-onlynicht Teil der Datei ist ACL. Sie sollten verwenden attrib.

Vielen Dank. Ich habe verstanden, dass sich ACL von Readonly von der anderen Antwort unterscheidet. Vielen Dank, dass Sie sich die Mühe gemacht haben, eine detaillierte Antwort vorzubereiten Miserable Variable vor 11 Jahren 0
Können Sie sagen, warum Sie ** `attrib` ** nicht dafür verwenden wollen (oder nicht können)? Kevin Fegan vor 11 Jahren 0
Ich wollte attrib nicht verwenden, weil ich vergessen hatte, wie es funktioniert. Jetzt geht es mir gut :) Miserable Variable vor 11 Jahren 0