Windows安全机制学习笔记(六)-修改文件ACL

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;

namespace SetFileAcl
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "c:\\testFile.txt";
            using (FileStream fStream = File.Create(fileName))
            {
                StreamWriter writer = new StreamWriter(fStream);
                writer.WriteLine("This is a test file.");
                writer.Close();
            }

            FileInfo fInfo = new FileInfo(fileName);
            FileSecurity fileAcl = fInfo.GetAccessControl();
            NTAccount acc = (NTAccount)fileAcl.GetOwner(typeof(NTAccount));
            Console.WriteLine("File owner:" + acc.Value);

            FileSystemAccessRule rule = new FileSystemAccessRule(@"BuiltIn\Users", FileSystemRights.FullControl, AccessControlType.Allow);    
            fileAcl.RemoveAccessRuleAll(rule);
            fileAcl.SetAccessRule(rule);
            fInfo.SetAccessControl(fileAcl);
        }
    }
}

 

posted @ 2013-07-12 13:48  Mr..Hu  阅读(890)  评论(0)    收藏  举报