Me gustaría tener algunas sugerencias sobre cómo se pueden configurar los permisos en Windows-2012 para el siguiente caso de uso:
- Cada usuario (llamémoslo
bob
) ejecuta una aplicación (llamémoslamyapp
). myapp
requiere permisos de lectura/escritura para todos los archivos y carpetas enc:\Users\bob\myapp
(1)bob
Requiere permisos de lectura/escritura enc:\Users\bob\myapp\templates
.bob
no puedo leer la carpetac:\Users\bob\myapp\logs
- De forma predeterminada y a menos que se especifique en 3 y 4,
bob
puede leer cualquier archivo y carpeta enc:\Users\bob\myapp\
Mi experiencia es Linux y no estoy tan seguro de cómo organizar esto en un servidor Windows.
¡Agradecería que alguien pudiera indicarme la dirección correcta!
(1) Hice el camino. Estará en algún lugar de Windows. (No creo que sea importante, pero si es así, ¡comparta sus conocimientos!)
EDITAR: Solución en Linux
- La aplicación se ejecuta bajo usuario
bobapp
, grupobobapp
. - El usuario se ejecuta bajo el usuario
bob
, que es parte del grupo.bobapp
- Todos los archivos y carpetas que aparecen a continuación
/users/bob/myapp
son propiedad del usuariobobapp
y grupo.bobapp
- En
/users/bob/
, las carpetas tienen permisos750
(lectura/escritura/ejecutable para el propietario, lectura/ejecutable para el grupo, ninguno para todos) y archivos normales640
(lectura/escritura para el propietario, lectura para el grupo, ninguno para todos), archivos ejecutables750
(lectura/escritura/ ejecutable para el propietario, leído/ejecutable para el grupo, ninguno para todos) /users/bob/myapp/logs
tiene permisos 700 (lectura/escritura/ejecutable para el propietario, ninguno para el grupo y ninguno para los demás)
Nota 1: Que la aplicación gráfica que se ejecuta bobapp
se muestre en bob
la sesión sería otro problema, pero hay muchas opciones para permitir que bob
la sesión vea e interactúe con bobapp
la aplicación gráfica.
Nota 2:
sudo
se usaría en caso de que bob
quiera iniciar myapp
, ya que necesita obtener permisos temporalmente para ejecutar la aplicación. sudo
Sería muy restringido y solo permitiría bob
iniciar el programa como bobapp
usuario.
Nota 3: Cuando la aplicación o el usuario crea nuevos archivos y carpetas, debe tener cuidado con los permisos predeterminados que se heredarán cuando se creen los nuevos archivos y carpetas (varias opciones, probablemente usaría algo comoeste)
Respuesta1
¿Cómo solucionarías esto en sistemas Linux?
Dado que la aplicación se ejecuta en el contexto del usuario, los permisos de lectura y escritura son los mismos.
Puede configurar permisos de directorio con Cacls
o mediante la rutina del instalador.
Probablemente haría que el directorio principal pudiera c:\Users\bob\myapp
leerse y escribirse.
Herede esos permisos en todos los subdirectorios excepto c:\Users\bob\myapp\logs
.
Mencionaste sudo
en la recompensa, así que supongo que ves el mismo problema. No puede aplicar restricciones cuando la aplicación se ejecuta en el mismo contexto. Por lo tanto, necesitará ejecutar la aplicación en un contexto de usuario diferente o necesitará encontrar una solución diferente para el logs
directorio. Puede anular los permisos, leer/escribir y luego volver a establecer los permisos. Dado que el usuario es el propietario del directorio cuando lo creó, puede cambiar los permisos en cualquier momento.
Acerca de su pregunta sobre la ruta de Windows: hay rutas protegidas C:\Program Files\
que C:\Windows\
necesitan privilegios administrativos (y son propiedad de TrustedInstaller). Por eso es importante dónde crear sus directorios.
Editar:
De la actualización del OP referida sudo
. Esta herramienta es necesaria para ejecutar un programa como otro usuario, generalmente configurada para no necesitar una contraseña para cambiar de contexto. Hasta donde yo sé, no existe ningún equivalente en Windows estándar.
Puedes ver la discusión.aquísobre cómo lograr mensajes elevados, etc., pero en su mayoría requieren derechos administrativos y/o requieren que ingrese una contraseña como runas
.
Además "Hacerse pasar por un cliente después de la autenticación"Podría ayudar, pero nunca lo he usado y no puedo decir nada al respecto.