¿Qué opciones tengo en las plataformas MS Windows para el equivalente de SUID de las plataformas basadas en Unix?

ara comprender lo que pregunto, es importante distinguir entre los diversos usos de SUID 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 manera, 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á algún tiempo. Mientras tanto, ¿cómo puedo replicar este tipo de comportamiento en los sistemas Windows?

Tenga en cuenta que los ejecutables del proyecto no llaman a la llamada de 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 root del sistema. Su 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 de usuario" para acceder al archivo sistema como si fuera el usuario llamante. (De esta forma, podría determinar más fácilmente qué está bien que el proyecto toque y qué no).

El proyecto está escrito en una combinación de C y Java: un programa C con un conjunto SUID llama al código Java ...

stoy ansioso por conocer todos esos mecanismos, y estoy especialmente enfocado en aquellos que son:

Adecuado para C y Java, y; Fácil de implementar para programadores que no son de Windows, y;Require una codificación mínima exclusiva de Windows.

Si algunas soluciones son superiores, comparta sus pensamientos sobre lo que sea que tenga en cuenta a este respecto.

NOTAS:

LogonUser: requiere una contraseña en texto sin formato. ¿Cómo puede ser esa una respuesta?RunAs: Requiere que se ingrese la contraseña en PROMPT! ... Como con LogonUser solo peor; No veo cómo esta es una respuesta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta