En Windows XP: ¿Cómo crear un usuario con acceso de lectura a un solo directorio determinado?

StackOverflow https://stackoverflow.com/questions/407069

  •  03-07-2019
  •  | 
  •  

Pregunta

Permítame decirle primero: sé que cualquier usuario que quiera ejecutar un programa (o incluso iniciar sesión) debe tener acceso a (probablemente al menos) los directorios del sistema de Windows y las bibliotecas compartidas en % ProgramFiles % , pero me gustaría poder acceder a Skype, por ejemplo, ejecutándolo con un usuario sin privilegios y asegurándome de que no pueda acceder a ningún archivos innecesarios.

Me temo que la única forma de hacerlo sería identificar todos los directorios de gazillion donde almaceno los archivos a los que no quiero que acceda este usuario y luego crear un nuevo grupo de usuarios que pueda acceder a estos directorios, o ejecutar Skype y Azureus en una máquina virtual.

¿Hay una mejor manera?

¿Fue útil?

Solución

Normalmente, las cuentas son, al menos, miembros del grupo Usuarios, lo que sí tiene acceso a muchas cosas. Puede hacer que la cuenta sea miembro de ningún grupo, o el grupo Invitados, que es muy restrictivo.

El problema real es que el token del programa (un objeto de seguridad interno que realiza un seguimiento de las identidades de seguridad que tiene un proceso en ejecución) contendrá los grupos Todos y Usuarios autenticados, que también tienen acceso de lectura a muchas cosas. No hay forma de crear una cuenta sin esos grupos. Podría eliminar el acceso que tienen todos los grupos Usuarios y Usuarios autenticados para casi todo, pero sería mucho trabajo rastrearlos a todos.

Diría que la creación de una cuenta de usuario estándar o de acceso de invitado para programas no confiables sería lo suficientemente segura. Para admitir las actualizaciones automáticas y mantener los archivos relacionados en el mismo lugar, le sugiero que instale esos programas directamente en el perfil de la cuenta de usuario que ejecutarán, por ejemplo. C: \ Documents and Settings \ skype \ Archivos de programa \ Skype

Si desea ser realmente elegante, puede usar un token restringido para hacer que los grupos Todos, Usuarios autenticados, etc., rechacen solo (para que no puedan conceder ningún acceso) o creen una lista de SID restringidos. Esto será difícil de implementar porque hay objetos globales a los que los programas esperarán acceder a los que tiene acceso el grupo Todos, lo que normalmente es una opción segura.

Consulte CreateRestrictedToken Function .

También hay un programa de línea de comandos de código abierto. Creé un programa para crear tokens restringidos y objetos de trabajo sobre la marcha para ese propósito: UlimitNT

Otros consejos

Tal vez sudown es una solución. Es un enfoque similar al sudo (como se conoce en Linux) para ejecutarse como un usuario sin privilegios, pero tiene la posibilidad de ascender a una cuenta administrativa (con contraseña) cuando sea necesario.

Supongo que podría bloquear la máquina para que el usuario pueda iniciar sesión únicamente, ni siquiera iniciar Skype con sus derechos, sino que iniciar Skype al " ejecutar como " con sudown.

Además de usar una máquina virtual, podría considerar el uso de un Sandbox. Mire un ejemplo de Sandboxie .

simplemente use acl apis (muestras en msdn)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top