Estaba tratando de otorgar permisos NTFS en una ruta UNC para un usuario específico, pero veo un comportamiento diferente dependiendo de la ruta UNC. A continuación se muestra el código (de MSDN), que estoy usando para dar permisos y el resultado en cada escenario,Permisos heredados perdidos al dar permisos NTFS
static void GiveNTFSPermissions(string folderPath,
string ntAccountName,
FileSystemRights accessRights)
{
DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule newAccessRule =
new FileSystemAccessRule(
ntAccountName,
accessRights,
AccessControlType.Allow);
dirSecurity.AddAccessRule(newAccessRule);
Directory.SetAccessControl(folderPath, dirSecurity);
}
Supongamos que tengo un recurso llamado “RootShare” en mi máquina local, y otra carpeta “InsideRootShare "dentro de él.
Escenario 1: Cuando llamo,
GiveNTFSPermissions(@"\\sri-devpc\RootShare",
@"domain\username",
FileSystemRights.Write);
Los permisos heredados se perdieron en el camino compartido,
Scenario2: Cuando llamo,
GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare",
@"domain\username",
FileSystemRights.Write);
Los permisos heredados estaban intactos.
He intentado con diferentes constructores de FileSystemAccessRule
pero no tuve suerte.
¿Cuál es la razón detrás de este comportamiento y cualquier solución para esto?
¿Has probado el [constructor] (http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemaccessrule.aspx) que toma 'InheritanceFlags' como argumento? Además, 'AddNTFSPermission' es un nombre más razonable que' GiveNTFSPermissions', ya que intenta * agregar * una nueva regla de acceso a las reglas de acceso existentes. – Nawaz
Consulte este tema: http://stackoverflow.com/questions/243995/setting-folder-permissions-on-vista – Nawaz
@Nawaz: He intentado todos los constructores, y tengo el mismo resultado. Gracias por la sugerencia :) – sri