【发布时间】:2013-01-12 13:56:30
【问题描述】:
查看我在 Server 2003 上的安全事件日志后,我注意到记录了一个带有失败审核的事件。类别是对象访问,需要以下访问:
READ_CONTROL
同步
读取数据(或 ListDirectory)
WriteData(或 AddFile)
AppendData(或 AddSubDirectory 或 CreatePipeInstance)
我似乎找不到任何关于如何以编程方式修改这些属性的文档。这些故障是由 postgres 和 tomcat 可执行文件生成的。
编辑
protected FileSystemRights[] AppendFileSystemRights()
{
return new FileSystemRights[]
{
FileSystemRights.ReadAndExecute,
FileSystemRights.WriteAttributes,
FileSystemRights.Synchronize,
FileSystemRights.ReadAttributes,
FileSystemRights.ReadData
};
}
public void ApplySystemRight(string fileName, FileSystemRights[] rights)
{
if (string.IsNullOrEmpty(fileName))
{
return;
}
if (rights == null || rights.Length <= 0)
{
return;
}
try
{
Console.WriteLine("ATTEMPTING TO OPEN THE FOLLOWING FILE: {0}", fileName);
fileSec = File.GetAccessControl(fileName);
for (int i = 0; i < rights.Length; i++)
{
Console.WriteLine("ATTEMPTING TO ADD THE FOLLOWING ACCESS RULE: {0} TO {1}", rights[i], fileName);
fileSec.AddAccessRule(new FileSystemAccessRule(user,
rights[i], AccessControlType.Allow));
}
Console.WriteLine("ATTEMPTING TO SET THE PRECEDING ACCESS RULES: TO {0}", fileName);
File.SetAccessControl(fileName, fileSec);
}
catch (UnauthorizedAccessException uae)
{
Console.WriteLine("CAUGHT THE FOLLOWING EXCEPTION: {0} \n WHILE PROCESSING: {1}", uae.Message, fileName);
}
catch (ArgumentNullException ane)
{
Console.WriteLine("CAUGHT THE FOLLOWING EXCEPTION: {0} \n WHILE PROCESSING: {1}", ane.Message, fileName);
}
catch (ArgumentException ae)
{
Console.WriteLine("CAUGHT THE FOLLOWING EXCEPTION: {0} \n WHILE PROCESSING: {1}", ae.Message, fileName);
}
}
【问题讨论】:
-
您是否了解拒绝访问的对象是什么?
-
Ronald Tomcat6.exe 和 psql.exe
-
但我不认为这些是无法访问的文件?这些可能是无法访问某个文件(或多个文件)的进程。您需要找出tomcat6.exe或psql.exe都无法访问的文件。
-
@Ronald wildenberg 实际上只是直接指向那些可执行文件
-
是的,但是这些是无法访问的文件吗?在这种情况下,你为什么不简单地为这些文件设置访问控制属性,看看它是否有效?