Permitir solo un acceso de lectura/escritura de un servicio específico a una carpeta

Permitir solo un acceso de lectura/escritura de un servicio específico a una carpeta

¿Hay alguna manera de evitar el acceso de lectura y/o escritura a una carpeta específica en Windows y otorgar solo acceso a un servicio/proceso específico?

Parece que los permisos se basan en el usuario y no en el servicio, pero me gustaría saber si hay alguna manera de lograr esa funcionalidad de todos modos.

Respuesta1

Sí, hay una manera de hacer esto en Windows 7, aunque puede ser necesario reconfigurar el servicio, lo que presenta un riesgo (probablemente bastante pequeño) de introducir un problema de compatibilidad.

Se puede hacer referencia al ID de seguridad asociado con un servicio como

NT SERVICE\SERVICENAME

donde servicenamese reemplaza con el nombre real del servicio (que se muestra como "Nombre del servicio" en la herramienta administrativa de Servicios y es distinto del nombre para mostrar que se muestra en la lista principal de servicios). Si está utilizando la GUI para cambiar la configuración de seguridad y la máquina está unida a un dominio, deberá cambiar el alcance de la búsqueda a la computadora local. También tenga en cuenta que esto sólo funciona para los servicios que están actualmente instalados.

Puede determinar el SID asociado con un nombre de servicio en particular, ya sea que dicho servicio esté instalado o no, usando el sc showsidcomando:

C:\working>sc showsid wjkjk

NAME: wjkjk
SERVICE SID: S-1-5-80-492907775-8774055-3223757035-3566066944-1037782649

Si está configurando la seguridad en un archivo o carpeta usando el icaclscomando, puede especificar un SID anteponiendole el prefijo *, por ejemplo, *S-1-5-80-492907775-8774055-3223757035-3566066944-1037782649.

Para que el servicio pueda acceder a archivos utilizando este ID de seguridad, debe configurarse con un tipo de SID de servicio "sin restricciones" o "restringido". Si está configurado con un tipo de SID de servicio "ninguno", el SID de servicio no funcionará. Puede verificar el tipo de SID de servicio de un servicio instalado con el sc qsidtypecomando:

C:\working>sc qsidtype wuauserv
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: wuauserv
SERVICE_SID_TYPE:  UNRESTRICTED

Si el tipo de servicio es "ninguno", puede cambiarlo a "sin restricciones" usando el sc sidtypecomando:

C:\working>sc qsidtype psexesvc
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: psexesvc
SERVICE_SID_TYPE:  NONE

C:\working>sc sidtype psexesvc unrestricted
[SC] ChangeServiceConfig2 SUCCESS

C:\working>sc qsidtype psexesvc
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: psexesvc
SERVICE_SID_TYPE:  UNRESTRICTED

Esto no tendrá efecto hasta que se reinicie el servicio.

Nota:deberíanocambie el tipo de SID de un servicio de "ninguno" a "restringido". Es casi seguro que hacerlo provocará un mal funcionamiento del servicio. Es mucho menos probable que cambiar el tipo de "ninguno" a "sin restricciones" cause problemas. Si el tipo de SID del servicio ya está "restringido" o "sin restricciones", no debe cambiarlo.

Respuesta2

Hay un pseudo "usuario" llamado SERVICEque utilizan todos los servicios, por lo que puede simplemente restringir el acceso permitiendo únicamente el acceso a este "usuario".

Sin embargo, esto no es exactamente lo que usted solicitó, ya que no se trata de un servicio específico, sino de todos los servicios. No existe ningún mecanismo predeterminado para restringir a un solo servicio, aunquepuedesería posible con algunas molestias considerables al intentar forzar a un servicio a utilizar una ID diferente al inicio; no lo recomendaría.

información relacionada