63 votos

¿Cómo puedo conceder start/stop/restart permisos en un servicio a cualquier usuario o grupo en un dominio no-miembro de servidor?

Tenemos un conjunto de Servicios de Windows que se ejecuta en nuestros servidores que realizar un montón de tareas automatizadas de forma independiente el uno del otro, con la excepción de un servicio que cuida de los otros servicios.

En el caso de que uno de los servicios que debe dejar de responder o bloquearse, este servicio intenta reiniciar el servicio y, si se produce una excepción durante el intento de, mensajes de correo electrónico al equipo de soporte en su lugar, de modo que se puede iniciar el servicio en sí.

Después de haber hecho un poco de investigación, me he encontrado con un par de 'soluciones' que van desde la solución que se ha mencionado en KB907460 a dar la cuenta bajo la que se ejecuta el servicio de derechos de administrador.

No me siento cómodo con cualquiera de estos métodos - no entiendo las consecuencias de la primer método como se indica en Microsoft knowledge base el artículo, pero yo definitivamente no quiero dar acceso de administrador a la cuenta bajo la que se ejecuta el servicio.

He dado un vistazo rápido a través de la Política de Seguridad Local y otra de la política que define si es o no una cuenta, puede iniciar sesión como un servicio, no veo otra cosa que parece que se refiere a los servicios.

Estamos ejecutando en este Server 2003 y Server 2008, por lo que cualquier idea o punteros sería recibió gratamente!


Aclaración: no quiero conceder la capacidad para iniciar/detener/reiniciar TODOS los servicios a un determinado usuario o grupo - quiero ser capaz de conceder el permiso para hacerlo en específico de servicios a un determinado usuario o grupo.


Aclaración: Los servidores que necesito para conceder estos permisos no pertenecen a un dominio son dos servidores de internet que recibir archivos, procesarlos y enviarlos a terceros, así como de servicio en un par de sitios web, de modo de Grupo de Active Directory Política no es posible. Lo siento que yo no hacer esto más claro.

53voto

abitgone Puntos 603

No parece ser una interfaz gráfica de usuario basada en la manera de hacer esto a menos que usted está unido a un dominio, al menos no uno podía encontrar en cualquier lugar - así que me hizo cavar un poco más y he encontrado una respuesta que funcione para nuestros sitaution.

Yo no entendía lo que la representación de cadena se entiende en el artículo de knowledge base, pero haciendo un poco de cavar me llevó a descubrir que es la sintaxis de SDDL. La excavación adicional me llevó a este artículo por Alun Jones , que se explica cómo obtener el descriptor de seguridad de un servicio y lo que cada uno significa.

Anexar al servicio del descriptor de seguridad existente, utilice sc sdshow "Service Name" para obtener la existente descriptor. Si se trata de un viejo y simple .RED de Servicio de Windows - como es el caso de la nuestra - el descriptor de seguridad debe ser algo como esto:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOC
RRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)S:(AU;FA
;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Necesitábamos para conceder permisos RP (para iniciar el servicio), WP (para detener el servicio), DT (para pausar/continuar el servicio) y LO (para consulta te servicio del estado actual). Esto podría hacerse mediante la adición de nuestra cuenta de servicio para el grupo de Usuarios avanzados, pero solo quiero otorgar el acceso a la cuenta en la que el servicio de mantenimiento de pistas.

El uso de runas para abrir un símbolo del sistema en el servicio de la cuenta, me encontré whoami /all que me dio el SID de la cuenta de servicio, y luego construyeron el adicional SDDL a continuación:

(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)

Este luego se agrega a la D: la sección de la cadena SDDL arriba:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOC
RRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)(A;;RPWP
DTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSWRPWPDTLOC
RSDRCWDWO;;;WD)

Esto se aplica a los servicios a través de los sc sdset comando:

sc sdset "Service Name" D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;
CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU
)(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSW
RPWPDTLOCRSDRCWDWO;;;WD)

Si todo va según el plan, el servicio puede ser iniciado, se detuvo, hizo una pausa y del estado consultados por el usuario definido por el SID de arriba.

34voto

patrx Puntos 141

Yo sólo tenía el mismo problema.
Usted podría utilizar SubInACL.exe desde el Kit de Recursos. Descargar la utilidad independiente aquí: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23510

Uso msiexec /a PathToMSIFile /qb TARGETDIR=DirectoryToExtractTo a extraer los archivos si no se quiere instalar .msi

  1. Abra un símbolo del sistema como Administrador
  2. Vaya al directorio donde se coloca el .exe
  3. Ejecutar subinacl /service SERVICE_NAME /grant=COMPUTER_NAME\USERNAME=TOP

T = Iniciar el servicio
S = servicio de la Parada
P = Pausa/continuar con el servicio

La referencia completa disponible aquí: http://www.sabin-bg.net/utilities/subinacl/subinacl.htm
O escriba subinacl /help

Nota: no intente subinacl /service SERVICE_NAME /perm como se podría meter en problemas (lección aprendida :P). El nombre puede ser engañoso (perm != permiso), ya que elimina todos los permisos a todos los usuarios (incluso Admin!).

4voto

Adam Haile Puntos 58

Estás buscando Configuración del Equipo - Políticas - Configuración de Windows - Configuración de Seguridad - Sistema de Servicios de

Allí no sólo se puede definir el tipo de inicio de servicio, pero usted puede configurar las Acl de seguridad para cada servicio. De forma predeterminada, la interfaz es solamente una lista de los servicios que están instalados en la máquina que está ejecutando el GP Editor.

Para agregar servicios que sólo existen en otra máquina:

  • exportar la clave del registro de la otra máquina
  • la importación, en el gpedit de la máquina
  • aplicar la política de
  • eliminar la clave importada

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: