/[projects]/dao/ChangeFileOwner/ChangeFileOwner.cs
ViewVC logotype

Contents of /dao/ChangeFileOwner/ChangeFileOwner.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2063 - (show annotations) (download)
Tue Sep 17 10:34:22 2013 UTC (10 years, 8 months ago) by torben
File size: 1637 byte(s)


1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.IO;
6 using System.Security.AccessControl;
7 using System.Security.Principal;
8
9 namespace ChangeFileOwner
10 {
11 class ChangeFileOwner
12 {
13 static void Main(string[] args)
14 {
15 if (args.Length != 1)
16 {
17 Console.WriteLine("Usage: changefileowner.exe <filename>");
18 Environment.Exit(1);
19 }
20 string filename = args[0];
21
22 if ( !File.Exists(filename) )
23 {
24 Console.WriteLine("File not found: " + filename);
25 Environment.Exit(2);
26 }
27
28 FileSecurity acl = File.GetAccessControl(filename);
29 IdentityReference owner = acl.GetOwner(typeof(NTAccount));
30 Console.WriteLine(owner); // SID
31
32 //step 2
33 NTAccount ntAccount = new NTAccount("DAO", "Administrator");
34 acl.SetOwner(ntAccount);
35
36 FileSystemAccessRule facls = new FileSystemAccessRule(owner, FileSystemRights.Read, AccessControlType.Allow);
37 acl.RemoveAccessRuleAll(facls);
38
39
40 try
41 {
42 File.SetAccessControl(filename, acl);
43 }
44 catch (InvalidOperationException ex)
45 {
46 Console.WriteLine("You cannot assign ownership to that user." +
47 "Either you don't have TakeOwnership permissions, or it is not your user account."
48 );
49 throw;
50 }
51 }
52 }
53 }

  ViewVC Help
Powered by ViewVC 1.1.20