Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: rigorvzla en 2 Mayo 2020, 14:49 pm



Título: Permisos denegados ¿Con derecho administrativo?
Publicado por: rigorvzla en 2 Mayo 2020, 14:49 pm
Hola amigos, espero todos esten bien, les traigo una consulta,  ya que no entiendo la razon del porque ocurre lo siguiente:

Código:
string[] files = Directory.GetFiles(@"C:\\", "*.*", SearchOption.AllDirectories);

se supone que con este codigo, deberia obtener un arreglo en teoria, de todos los archivos del equipo ubicadosen el disco "C:\" , eh creado un archivo manifiest en mi proyecto, donde doy permiso de administrador al ejecutar el programa, pero me arroja error, segun po r no tener perimiso para leer archivos de programas, alguien me podria ayudar y explicar, la razon de eso.

De antemano gracias.

P.D: en la carpeta windows me ocurre lo mismo con una carpeta llamada  "CSC".


Título: Re: Permisos denegados ¿Con derecho administrativo?
Publicado por: EdePC en 2 Mayo 2020, 19:48 pm
Saludos,

He estado revisando y la carpeta c:\windows\csc tiene únicamente como usuario con privilegios a System

Citar
C:\Users\EdSon>whoami
nt authority\system

C:\Users\EdSon>icacls c:\Windows\CSC
c:\Windows\CSC NT AUTHORITY\SYSTEM:(F)

-- Ahí dice que solamente System tiene Full permisos, no hay nadie más

Se procesaron correctamente 1 archivos; error al procesar 0 archivos

C:\Users\EdSon>

- Osea, ningún otro usuario podría tan siquiera ver que hay dentro o ver sus permisos, ni siquiera Administradores. Cualquier usuario puede poner los permisos que quiera a sus carpetas (ser dueño), incluso negar permisos a los Administradores o System, PERO un usuario con permisos de Administrador puede cambiar el Dueño de la carpeta o archivos y luego si que se puede dar o quitar permisos.

- En conclusión: Hay carpetas y archivos con permisos especificados que deniegan el acceso a estos, estos permisos tienen usa Lista Blanca o Negra que contiene una lista de Usuarios o Grupos de usuarios a los que afecta estos permisos. La metodología para "manipular" estas carpetas o archivos protegidos es tener permisos para hacerlos, si no se tienen hay que cambiar el dueño de estos y luego si que se pueden dar todo tipo de permisos.

- Tienes que buscar la manera de controlar la excepción y saltarte estos de acuerdo al tipo de excepción:
https://docs.microsoft.com/en-us/dotnet/api/system.io.directory.getfiles?view=netcore-3.1
https://docs.microsoft.com/en-us/dotnet/api/system.io.ioexception?view=netcore-3.1


Título: Re: Permisos denegados ¿Con derecho administrativo?
Publicado por: rigorvzla en 3 Mayo 2020, 01:51 am
gracias `por la respuesta, y si me parece buena idea esa de saltarme carpetas, pero... archivos de programas??? esa la necesito, que crees q deberia hacer en ese caso??


Título: Re: Permisos denegados ¿Con derecho administrativo?
Publicado por: RayR en 3 Mayo 2020, 18:38 pm
Lo que pasa es que la carpeta "Archivos de programa" en realidad se llama "Program Files", independientemente del idioma de tu Windows. La versión traducida es en realidad un enlace simbólico o (más correctamente, un junction point) y para esa no tienes permisos, pero sí para Program Files. Algo similar pasa con otras carpetas como "Documents and Settings" o "Archivos comunes".

En resumen, no te preocupes por ese error. Ve la forma de saltarte carpetas, y así, aunque tu programa no leerá "Archivos de programa", sí que lo hará con "Program Files", que es lo que en realidad quieres.


Título: Re: Permisos denegados ¿Con derecho administrativo?
Publicado por: rigorvzla en 3 Mayo 2020, 18:45 pm
ok, buscare de hacer eso, pero ahora algo me inquieta , independientemente el nombre sea en español o en ingles, si me salto la que sale en C:\ , entocnes donde mas registrara dichos archivos??


Título: Re: Permisos denegados ¿Con derecho administrativo?
Publicado por: RayR en 3 Mayo 2020, 19:23 pm
Primero, aclaro que lo de los enlaces simbólicos y junctions no sólo pasa por cuestiones de traducción. En algunos casos Windows los usa para mantener compatibilidad hacia atrás (por ejemplo, "Documents and Settings" apunta a "Users") u otras razones, así que estos problemas de permisos te los encontrarás aún con carpetas cuyo nombre no cambia en la versión en español de Windows.

No sé si entendí bien la pregunta. ¿Por qué tendrías que saltarte "C:\"? Es perfectamente posible leer su contenido. Otra cosa es que alguna subcarpeta te niegue el acceso, pero en ese caso lo que te saltarías sería dicha carpeta, no la raíz.

En todo caso, si ejecutas el comando "dir /al", te mostrará los enlaces que hay dentro de la carpeta actual y a dónde apuntan.

Ten en cuenta que independientemente de esto, va a haber carpetas a las que simplemente no vas a tener acceso porque no tienes los permisos. No te recomiendo que intentes cambiarlos (y de todas formas, por lo general estas carpetas son de muy poco interés) así que lo mejor es saltártelas.