FileSystemRights Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan hak akses yang akan digunakan saat membuat aturan akses dan audit.
Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.
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
- Warisan
- Atribut
Bidang
AppendData | 4 | Menentukan hak untuk menambahkan data ke akhir file. |
ChangePermissions | 262144 | Menentukan hak untuk mengubah aturan keamanan dan audit yang terkait dengan file atau folder. |
CreateDirectories | 4 | Menentukan hak untuk membuat folder Hak ini memerlukan nilai |
CreateFiles | 2 | Menentukan hak untuk membuat file. Hak ini memerlukan nilai |
Delete | 65536 | Menentukan hak untuk menghapus folder atau file. |
DeleteSubdirectoriesAndFiles | 64 | Menentukan hak untuk menghapus folder dan file apa pun yang terkandung dalam folder tersebut. |
ExecuteFile | 32 | Menentukan hak untuk menjalankan file aplikasi. |
FullControl | 2032127 | Menentukan hak untuk memberikan kontrol penuh atas folder atau file, dan untuk mengubah kontrol akses dan aturan audit. Nilai ini mewakili hak untuk melakukan apa pun dengan file dan merupakan kombinasi dari semua hak dalam enumerasi ini. |
ListDirectory | 1 | Menentukan hak untuk membaca konten direktori. |
Modify | 197055 | Menentukan hak untuk membaca, menulis, mencantumkan konten folder, menghapus folder dan file, dan menjalankan file aplikasi. Hak ini mencakup kanan ReadAndExecute, kanan Write, dan kanan Delete. |
Read | 131209 | Menentukan hak untuk membuka dan menyalin folder atau file sebagai baca-saja. Hak ini mencakup kanan ReadData, kanan ReadExtendedAttributes, kanan ReadAttributes, dan kanan ReadPermissions. |
ReadAndExecute | 131241 | Menentukan hak untuk membuka dan menyalin folder atau file sebagai baca-saja, dan untuk menjalankan file aplikasi. Hak ini mencakup kanan Read dan kanan ExecuteFile. |
ReadAttributes | 128 | Menentukan hak untuk membuka dan menyalin atribut sistem file dari folder atau file. Misalnya, nilai ini menentukan hak untuk melihat pembuatan file atau tanggal yang dimodifikasi. Ini tidak termasuk hak untuk membaca data, atribut sistem file yang diperluas, atau aturan akses dan audit. |
ReadData | 1 | Menentukan hak untuk membuka dan menyalin file atau folder. Ini tidak termasuk hak untuk membaca atribut sistem file, atribut sistem file yang diperluas, atau aturan akses dan audit. |
ReadExtendedAttributes | 8 | Menentukan hak untuk membuka dan menyalin atribut sistem file yang diperluas dari folder atau file. Misalnya, nilai ini menentukan hak untuk melihat informasi penulis dan konten. Ini tidak termasuk hak untuk membaca data, atribut sistem file, atau aturan akses dan audit. |
ReadPermissions | 131072 | Menentukan hak untuk membuka dan menyalin aturan akses dan audit dari folder atau file. Ini tidak termasuk hak untuk membaca data, atribut sistem file, dan atribut sistem file yang diperluas. |
Synchronize | 1048576 | Menentukan apakah aplikasi dapat menunggu handel file disinkronkan dengan penyelesaian operasi I/O. Nilai ini secara otomatis diatur saat mengizinkan akses dan secara otomatis dikecualikan saat menolak akses. |
TakeOwnership | 524288 | Menentukan hak untuk mengubah pemilik folder atau file. Perhatikan bahwa pemilik sumber daya memiliki akses penuh ke sumber daya tersebut. |
Traverse | 32 | Menentukan hak untuk mencantumkan konten folder dan menjalankan aplikasi yang terkandung dalam folder tersebut. |
Write | 278 | Menentukan hak untuk membuat folder dan file, dan untuk menambahkan atau menghapus data dari file. Hak ini mencakup kanan WriteData, kanan AppendData, kanan WriteExtendedAttributes, dan kanan WriteAttributes. |
WriteAttributes | 256 | Menentukan hak untuk membuka dan menulis atribut sistem file ke folder atau file. Ini tidak termasuk kemampuan untuk menulis data, atribut yang diperluas, atau aturan akses dan audit. |
WriteData | 2 | Menentukan hak untuk membuka dan menulis ke file atau folder. Ini tidak termasuk hak untuk membuka dan menulis atribut sistem file, atribut sistem file yang diperluas, atau aturan akses dan audit. |
WriteExtendedAttributes | 16 | Menentukan hak untuk membuka dan menulis atribut sistem file yang diperluas ke folder atau file. Ini tidak termasuk kemampuan untuk menulis data, atribut, atau aturan akses dan audit. |
Contoh
Contoh berikut menggunakan enumerasi FileSystemRights
untuk menentukan aturan akses lalu menghapus aturan akses dari file. Anda harus menyediakan akun pengguna atau grup yang valid untuk menjalankan contoh ini.
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
Keterangan
Enumerasi FileSystemRights menentukan tindakan sistem file mana yang diizinkan untuk akun pengguna tertentu dan tindakan sistem file mana yang diaudit untuk akun pengguna tertentu.
Gunakan enumerasi FileSystemRights saat membuat aturan akses dengan kelas FileSystemAccessRule atau saat membuat aturan audit dengan kelas FileSystemAuditRule.
Enumerasi ini berisi beberapa nilai hak sistem terperinci dan beberapa nilai yang merupakan kombinasi dari nilai granular tersebut. Lebih mudah menggunakan nilai kombinasi seperti FullControl
, Read
, dan Write
, daripada menentukan setiap nilai komponen secara terpisah.
Hak CreateDirectories
dan CreateFiles
memerlukan hak Synchronize
. Jika Anda tidak secara eksplisit mengatur nilai Synchronize
saat membuat file atau direktori, nilai tersebut diatur secara otomatis untuk Anda.