Share via


FileSystemRights Enum

Definisi

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
FileSystemRights
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 Synchronize nilai .

CreateFiles 2

Menentukan hak untuk membuat file. Hak ini membutuhkan Synchronize 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 mengerahkan 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 termasuk kanan ReadData , ReadExtendedAttributes kanan, ReadAttributes kanan, dan ReadPermissions kanan.

ReadAndExecute 131241

Menentukan hak untuk membuka dan menyalin folder atau file sebagai baca-saja, dan untuk menjalankan file aplikasi. Hak ini termasuk 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 termasuk kanan WriteData , AppendData kanan, WriteExtendedAttributes kanan, dan WriteAttributes kanan.

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 FileSystemRights enumerasi untuk menentukan aturan akses lalu menghapus aturan akses dari file. Anda harus menyediakan akun pengguna atau grup yang valid untuk menjalankan contoh ini.

using namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;

// Adds an ACL entry on the specified file for the specified account.

void AddFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{
    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

    // Add the FileSystemAccessRule to the security settings. 
    fSecurity->AddAccessRule(gcnew FileSystemAccessRule
                                   (account,rights, controlType));

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

// Removes an ACL entry on the specified file for the specified account.

void RemoveFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{

    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

    // Remove the FileSystemAccessRule from the security settings. 
    fSecurity->RemoveAccessRule(gcnew FileSystemAccessRule
                                      (account,rights, controlType));

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

int main()
{
    try
    {
        String^ fileName = "test.xml";

        Console::WriteLine("Adding access control entry for " + fileName);

        // Add the access control entry to the file.
        AddFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Removing access control entry from " + fileName);

        // Remove the access control entry from the file.
        RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Done.");
    }
    catch (Exception^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
  
        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As FileSystemAccessRule = _
            New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, 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)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
            rights, controlType))

        ' Set the new access settings.
        File.SetAccessControl(fileName, fSecurity)

    End Sub
End Module

Keterangan

FileSystemRights Enumerasi menentukan tindakan sistem file mana yang diizinkan untuk akun pengguna tertentu dan tindakan sistem file mana yang diaudit untuk akun pengguna tertentu.

FileSystemRights Gunakan enumerasi saat membuat aturan akses dengan FileSystemAccessRule kelas atau saat membuat aturan audit dengan FileSystemAuditRule kelas .

Enumerasi ini berisi beberapa nilai hak sistem terperinci dan beberapa nilai yang merupakan kombinasi dari nilai granular tersebut. Lebih mudah untuk menggunakan nilai kombinasi seperti FullControl, , Readdan Write, daripada menentukan setiap nilai komponen secara terpisah.

Hak CreateDirectories dan CreateFiles membutuhkan hak Synchronize . Jika Anda tidak secara eksplisit mengatur Synchronize nilai saat membuat file atau direktori, nilai tersebut diatur secara otomatis untuk Anda.

Berlaku untuk