FileSystemRights Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert die Beim Erstellen von Zugriffs- und Überwachungsregeln zu verwendenden Zugriffsrechte.
Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.
public enum class FileSystemRights
[System.Flags]
public enum FileSystemRights
[System.Flags]
[System.Security.SecurityCritical]
public enum FileSystemRights
[<System.Flags>]
type FileSystemRights =
[<System.Flags>]
[<System.Security.SecurityCritical>]
type FileSystemRights =
Public Enum FileSystemRights
- Vererbung
- Attribute
Felder
AppendData | 4 | Gibt das Recht an, Daten an das Ende einer Datei anzufügen. |
ChangePermissions | 262144 | Gibt das Recht auf Änderung der Sicherheits- und Überwachungsregeln an, die einer Datei oder einem Ordner zugeordnet sind. |
CreateDirectories | 4 | Gibt das Recht zum Erstellen eines Ordners an. Für dieses Recht ist der |
CreateFiles | 2 | Gibt das Recht zum Erstellen einer Datei an. Für dieses Recht ist der |
Delete | 65536 | Gibt das Recht zum Löschen eines Ordners oder einer Datei an. |
DeleteSubdirectoriesAndFiles | 64 | Gibt das Recht zum Löschen eines Ordners und aller Dateien in diesem Ordner an. |
ExecuteFile | 32 | Gibt das Recht zum Ausführen einer Anwendungsdatei an. |
FullControl | 2032127 | Gibt das Recht an, die vollständige Kontrolle über einen Ordner oder eine Datei auszuüben und Zugriffssteuerungs- und Überwachungsregeln zu ändern. Dieser Wert stellt das Recht dar, alles mit einer Datei zu tun und ist die Kombination aller Rechte in dieser Enumeration. |
ListDirectory | 1 | Gibt das Recht zum Lesen des Inhalts eines Verzeichnisses an. |
Modify | 197055 | Gibt das Recht auf Lese-, Schreib-, Listenordnerinhalte, Löschen von Ordnern und Dateien und Ausführen von Anwendungsdateien an. Dieses Recht umfasst das ReadAndExecute Recht, das Write Recht und das Delete Recht. |
Read | 131209 | Gibt das Recht zum Öffnen und Kopieren von Ordnern oder Dateien als schreibgeschützt an. Dieses Recht umfasst das ReadData Recht, ReadExtendedAttributes Recht, ReadAttributes Recht und ReadPermissions Rechts. |
ReadAndExecute | 131241 | Gibt das Recht zum Öffnen und Kopieren von Ordnern oder Dateien als schreibgeschützt an und zum Ausführen von Anwendungsdateien. Dieses Recht umfasst das Read Recht und das ExecuteFile Recht. |
ReadAttributes | 128 | Gibt das Recht zum Öffnen und Kopieren von Dateisystemattributen aus einem Ordner oder einer Datei an. Dieser Wert gibt z. B. das Recht zum Anzeigen des Erstellungs- oder Änderungsdatums der Datei an. Dies schließt nicht das Recht auf Lesen von Daten, erweiterten Dateisystemattributen oder Zugriffs- und Überwachungsregeln ein. |
ReadData | 1 | Gibt das Recht zum Öffnen und Kopieren einer Datei oder eines Ordners an. Dies schließt nicht das Recht ein, Dateisystemattribute, erweiterte Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen. |
ReadExtendedAttributes | 8 | Gibt das Recht zum Öffnen und Kopieren erweiterter Dateisystemattribute aus einem Ordner oder einer Datei an. Dieser Wert gibt z. B. das Recht zum Anzeigen von Autoren- und Inhaltsinformationen an. Dazu gehört nicht das Recht, Daten, Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen. |
ReadPermissions | 131072 | Gibt das Recht auf Öffnen und Kopieren von Zugriffs- und Überwachungsregeln aus einem Ordner oder einer Datei an. Dazu gehört nicht das Recht, Daten, Dateisystemattribute und erweiterte Dateisystemattribute zu lesen. |
Synchronize | 1048576 | Gibt an, ob die Anwendung warten kann, bis ein Dateihandle mit abschluss eines E/A-Vorgangs synchronisiert wird. Dieser Wert wird automatisch festgelegt, wenn der Zugriff zugelassen und automatisch ausgeschlossen wird, wenn der Zugriff verweigert wird. |
TakeOwnership | 524288 | Gibt das Recht an, den Besitzer eines Ordners oder einer Datei zu ändern. Beachten Sie, dass Besitzer einer Ressource vollzugriff auf diese Ressource haben. |
Traverse | 32 | Gibt das Recht auf, den Inhalt eines Ordners auflisten und Anwendungen auszuführen, die in diesem Ordner enthalten sind. |
Write | 278 | Gibt das Recht zum Erstellen von Ordnern und Dateien an und zum Hinzufügen oder Entfernen von Daten aus Dateien. Dieses Recht umfasst das WriteData Recht, AppendData Recht, WriteExtendedAttributes Recht und WriteAttributes Rechts. |
WriteAttributes | 256 | Gibt das Recht zum Öffnen und Schreiben von Dateisystemattributen in einen Ordner oder eine Datei an. Dies schließt nicht die Möglichkeit zum Schreiben von Daten, erweiterten Attributen oder Zugriffs- und Überwachungsregeln ein. |
WriteData | 2 | Gibt das Recht zum Öffnen und Schreiben in eine Datei oder einen Ordner an. Dies schließt nicht das Recht auf Öffnen und Schreiben von Dateisystemattributen, erweiterten Dateisystemattributen oder Zugriffs- und Überwachungsregeln ein. |
WriteExtendedAttributes | 16 | Gibt das Recht zum Öffnen und Schreiben erweiterter Dateisystemattribute in einen Ordner oder eine Datei an. Dies schließt nicht die Möglichkeit zum Schreiben von Daten, Attributen oder Zugriffs- und Überwachungsregeln ein. |
Beispiele
Im folgenden Beispiel wird die FileSystemRights
-Aufzählung verwendet, um eine Zugriffsregel anzugeben und dann die Zugriffsregel aus einer Datei zu entfernen. Sie müssen ein gültiges Benutzer- oder Gruppenkonto angeben, um dieses Beispiel auszuführen.
using System;
using System.IO;
using System.Security.AccessControl;
namespace FileSystemExample
{
class FileExample
{
public static void Main()
{
try
{
string fileName = "test.xml";
Console.WriteLine($"Adding access control entry for {fileName}");
// Add the access control entry to the file.
AddFileSecurity(fileName, @"DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow);
Console.WriteLine($"Removing access control entry from {fileName}");
// Remove the access control entry from the file.
RemoveFileSecurity(fileName, @"DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow);
Console.WriteLine("Done.");
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
// Adds an ACL entry on the specified file for the specified account.
public static void AddFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileInfo fileInfo = new(fileName);
FileSecurity fSecurity = fileInfo.GetAccessControl();
// Add the FileSystemAccessRule to the security settings.
fSecurity.AddAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
fileInfo.SetAccessControl(fSecurity);
}
// Removes an ACL entry on the specified file for the specified account.
public static void RemoveFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileInfo fileInfo = new(fileName);
FileSecurity fSecurity = fileInfo.GetAccessControl();
// Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
fileInfo.SetAccessControl(fSecurity);
}
}
}
Imports System.IO
Imports System.Security.AccessControl
Module FileExample
Sub Main()
Try
Dim fileName As String = "test.xml"
Console.WriteLine("Adding access control entry for " & fileName)
' Add the access control entry to the file.
AddFileSecurity(fileName, "DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow)
Console.WriteLine("Removing access control entry from " & fileName)
' Remove the access control entry from the file.
RemoveFileSecurity(fileName, "DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow)
Console.WriteLine("Done.")
Catch e As Exception
Console.WriteLine(e)
End Try
End Sub
' Adds an ACL entry on the specified file for the specified account.
Sub AddFileSecurity(ByVal fileName As String, ByVal account As String,
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
Dim fileInfo As New FileInfo(fileName)
Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()
' Add the FileSystemAccessRule to the security settings.
Dim accessRule As New FileSystemAccessRule(account, rights, controlType)
fSecurity.AddAccessRule(accessRule)
' Set the new access settings.
fileInfo.SetAccessControl(fSecurity)
End Sub
' Removes an ACL entry on the specified file for the specified account.
Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String,
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
Dim fileInfo As New FileInfo(fileName)
Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()
' Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(New FileSystemAccessRule(account,
rights, controlType))
' Set the new access settings.
fileInfo.SetAccessControl(fSecurity)
End Sub
End Module
Hinweise
Die FileSystemRights Enumeration gibt an, welche Dateisystemaktionen für ein bestimmtes Benutzerkonto zulässig sind und welche Dateisystemaktionen für ein bestimmtes Benutzerkonto überwacht werden.
Verwenden Sie die FileSystemRights-Aufzählung beim Erstellen einer Zugriffsregel mit der FileSystemAccessRule Klasse oder beim Erstellen einer Überwachungsregel mit der FileSystemAuditRule Klasse.
Diese Enumeration enthält mehrere granulare Systemrechtewerte und mehrere Werte, die eine Kombination dieser granularen Werte sind. Es ist einfacher, die Kombinationswerte wie FullControl
, Read
und Write
zu verwenden, anstatt jeden Komponentenwert separat anzugeben.
Die rechte CreateDirectories
und CreateFiles
erfordern das Synchronize
Recht. Wenn Sie den Synchronize
Wert beim Erstellen einer Datei oder eines Verzeichnisses nicht explizit festlegen, wird er automatisch für Sie festgelegt.