Para entender lo que estoy preguntando, es importante distinguir entre los diversos usos de SUID en Unix.¿Qué opciones tengo en las plataformas MS Windows para el equivalente de SUID desde plataformas basadas en Unix?
Tengo un proyecto que usa un ejecutable en la RUTA del usuario que es propiedad del proyecto y que tiene el bit SUID establecido. De esta forma, cuando se ejecuta, se ejecuta en el contexto del propietario del archivo, no del usuario llamante. De esta manera, tiene acceso a cosas que el usuario no tiene, y por lo tanto estas cosas están protegidas del usuario por las protecciones normales del sistema de archivos. Esto funciona razonablemente bien. Los planes son mover el proyecto a una arquitectura cliente-servidor, pero eso llevará tiempo. Mientras tanto, ¿cómo puedo replicar este tipo de comportamiento en los sistemas de Windows?
Tenga en cuenta que los ejecutables del proyecto no llaman a la llamada a la biblioteca SETUID aunque, francamente, sería una gran característica para agregar, en mi opinión, dado lo que hace el proyecto. El proyecto no necesita privilegios de administrador del sistema. La primera preocupación de seguridad es que necesita proteger sus propios archivos del usuario (que es simplemente cualquier usuario que no sea el propietario del archivo) y sería muy bueno si tuviera la capacidad de cambiar al "contexto del usuario" para acceder al archivo sistema como si fuera el usuario que llama. (De esta forma, podría determinar más fácilmente lo que está bien que el proyecto toque y lo que no).
El proyecto está escrito en una combinación de C y Java - un programa C con llamadas SUID establece el código Java ...
estoy interesado en saber todos estos mecanismos, y estoy especialmente centrado en aquellos que son:
- Adecuado para C y Java, y;
- Fácil de implementar para programadores que no sean de Windows, y;
- Requiere una codificación mínima exclusiva de Windows.
Si algunas soluciones son superiores, por favor, comparta sus ideas sobre lo que sea que tenga conocimiento al respecto.
NOTAS:
- LogonUser: Requiere una contraseña en texto plano. ¿Cómo puede ser eso una respuesta?
- RunAs: Requiere que se ingrese la contraseña a PRONTO! ... Al igual que con LogonUser, solo es peor; No veo cómo esta es una respuesta.
La solución adecuada es instalar un servicio. –