Vue d'ensemble

Le Wrapper peut être utilisé pour contrôler un service Windows avec diverses actions, telles que START, STOP, RESUME, QUERY, etc. Par défaut, ces actions nécessitent des privilèges d'administrateur, et une approbation du Contrôle de compte d'utilisateur peut être demandée lors de leur exécution.

Depuis la version 3.5.42, l'édition Professionnelle du Wrapper permet d'accorder des permissions sur les services Windows. Il est possible de configurer autant de permissions que nécessaire, chacune d'elles permettant à un utilisateur ou à un groupe d'exécuter une liste d'actions sur un service spécifique.

Il existe un certain nombre de cas où il peut être utile de modifier les permissions d'un service :

Les permissions sont définies soit lors de l'installation d'un service, soit lors de la mise à jour d'un service installé. Dans le second cas, le service doit être à l'état arrêté.

Mettre à jour un service :
.\wrapper.exe -u ../conf/wrapper.conf

Cette page décrit l'ensemble des propriétés de configuration utilisées pour gérer les permissions.

Les propriétés suivantes peuvent être listées avec des index incrémentés :

Les propriétés individuelles suivantes peuvent également être utilisées pour des configurations avancées :

De plus, il est possible d'interroger les permissions d'un service.

Configuration des permissions

wrapper.ntservice.permissions.<n>.account

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Définit le compte ou le groupe auquel les droits d'accès seront accordés pour le service ciblé.

Les formats valides sont :

  • <local_account_or_group_name>
  • .\<local_account_or_group_name>
  • <domain>\<account_or_group_name>

Il est également possible de définir la propriété avec 'CURRENT_USER' afin de spécifier l'utilisateur actuel sur la machine où la permission sera définie. Cela peut être utile lors du déploiement de la même configuration sur plusieurs machines configurées avec des noms d'utilisateur différents.

Il n'y a pas de valeur par défaut. Cette propriété, ainsi que wrapper.ntservice.permissions.<n>.allow, doivent toutes les deux être définies pour qu'une permission soit valide.

Exemple :
wrapper.ntservice.permissions.1.account=.\mylocalaccount
wrapper.ntservice.permissions.1.allow=START, STOP

Si le compte n'existe pas, par défaut le Wrapper affichera une erreur et s'arrêtera avant de définir toute permission. Cependant, si un compte inexistant est listé dans wrapper.ntservice.permissions.optional_accounts, la permission sera simplement ignorée.

Vous pouvez configurer autant de permissions que vous le souhaitez en incrémentant le composant "<n>" du nom de la propriété (en comptant à partir de "1"). Par défaut, la numérotation doit être séquentielle, sans lacunes. La propriété wrapper.ignore_sequence_gaps peut éventuellement être définie pour autoriser des lacunes dans la séquence.

Si vous avez plusieurs permissions ciblant le même service et le même compte, les permissions seront fusionnées à l'aide de l'opérateur OU bit à bit. Cela signifie que, par exemple, si la permission n°1 accorde START, et la permission n°2 accorde STOP, la permission résultante accordera à la fois START et STOP. Cela peut être utilisé lorsqu'un fichier d'inclusion doit étendre une permission avec des droits d'accès supplémentaires.

NOTE

Par mesure de sécurité, le Wrapper n'autorise pas la modification des permissions du groupe Administrators. Cela pourrait en effet conduire à une situation bloquée où il n'est plus possible d'arrêter/désinstaller le service ou même de réinitialiser ses permissions.

wrapper.ntservice.permissions.<n>.allow

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Définit une liste d'actions séparées par des virgules qu'une permission accorde à un utilisateur ou à un groupe sur un service Windows.

Il n'y a pas de valeur par défaut. Cette propriété, ainsi que wrapper.ntservice.permissions.<n>.account, doivent toutes les deux être définies pour qu'une permission soit valide. Cependant, vous pouvez la définir à une valeur vide ou à 'NONE' pour supprimer toutes les permissions d'un utilisateur ou d'un groupe donné.

Les droits d'accès suivants peuvent être listés :

  • QUERY_STATUS :

    Permet d'interroger l'état du service.

  • QUERY_PERMISSIONS :

    Permet d'interroger les permissions du service. Utilisez cette permission conjointement avec UPDATE_CONFIG lors de la mise à jour d'un service.

  • UPDATE_CONFIG :

    Permet de mettre à jour la configuration du service.

  • UPDATE_PERMISSIONS :

    Permet de mettre à jour les permissions du service.

  • START :

    Permet de démarrer le service.

  • STOP :

    Permet d'arrêter le service.

  • PAUSE_RESUME :

    Permet de mettre en pause/continuer le service.

  • INTERROGATE :

    Permet d'interroger le service. Cette permission doit être utilisée conjointement avec CONTROL_CODE lors de l'envoi d'un code de contrôle pour interroger un service.

  • CONTROL_CODE :

    Permet d'envoyer des commandes de contrôle définies par l'utilisateur au service.

  • ALL :

    Tous les droits d'accès.

  • NONE :

    Aucun droit d'accès.

Exemple :
wrapper.ntservice.permissions.1.account=CURRENT_USER
wrapper.ntservice.permissions.1.allow=START, STOP, PAUSE_RESUME

Si une valeur qui n'est pas listée ci-dessus est trouvée, elle sera ignorée et un avertissement sera affiché.

NOTE

Même lorsque les permissions sont définies lors de l'installation d'un service, elles sont en réalité définies après la création du service. Par conséquent, il n'existe pas de permissions pour installer un service, car son état installé est une condition préalable à la définition des permissions.

wrapper.ntservice.permissions.<n>.service

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Spécifie le nom du service auquel la permission doit s'appliquer.

Cette propriété est facultative. Lorsqu'elle n'est pas spécifiée, la valeur par défaut sera le nom du service actuel (la valeur de wrapper.name).

Exemple :
wrapper.ntservice.permissions.1.account=CURRENT_USER
wrapper.ntservice.permissions.1.allow=START, STOP, PAUSE_RESUME

wrapper.ntservice.permissions.2.service=dependant_service
wrapper.ntservice.permissions.2.account=CURRENT_USER
wrapper.ntservice.permissions.2.allow=PAUSE_RESUME

Un service doit exister pour que la permission soit valide. Si la valeur ne correspond à aucun nom des services installés, par défaut le Wrapper affichera une erreur et s'arrêtera avant de définir toute permission. Cependant, si un service inexistant est listé dans wrapper.ntservice.permissions.optional_services, la permission sera simplement ignorée.

Permissions facultatives (pour la portabilité)

wrapper.ntservice.permissions.optional_accounts

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Permet de lister des comptes facultatifs lors de la définition des permissions d'un service Windows. Si une permission est définie avec un compte présent dans cette liste, et que ce compte n'existe pas sur la machine où le Wrapper est exécuté, la permission sera ignorée au lieu de provoquer une erreur FATAL.

Lister des comptes facultatifs peut être utile lors du déploiement d'un fichier de configuration unique sur plusieurs machines configurées avec des comptes différents. Les permissions pour lesquelles les comptes n'existent pas seront ignorées, laissant la possibilité aux autres permissions d'être définies normalement.

wrapper.ntservice.permissions.optional_services

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Permet de lister des services facultatifs lors de la définition des permissions d'un service Windows. Si une permission est définie avec un service présent dans cette liste, et que ce service n'existe pas sur la machine où le Wrapper est exécuté, la permission sera ignorée au lieu de provoquer une erreur FATAL.

Lister des services facultatifs peut être utile lors du déploiement d'un fichier de configuration unique sur plusieurs machines où différents services sont installés. Les permissions pour lesquelles les services n'existent pas seront ignorées, laissant la possibilité aux autres permissions d'être définies normalement.

Débogage

wrapper.ntservice.permissions.check.loglevel

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Contrôle le niveau de log auquel les sorties de débogage sont affichées lors de la vérification des permissions.

Une permission pour une opération que le Wrapper effectue sur un service est en réalité composée de plusieurs droits d'accès de base fournis par le modèle de sécurité Windows. Avant d'exécuter une opération, le Wrapper vérifiera si l'utilisateur actuel dispose de la permission correspondante, et vérifiera donc que les droits d'accès de base sont accordés. Pendant cette vérification, un message sera affiché pour indiquer l'état (accordé ou non) de chaque droit d'accès. Cette propriété permet de contrôler le niveau de log de ces messages.

La valeur par défaut est DEBUG.

Exemple :
Permission check for testwrapper - QUERY_PERMISSIONS (SERVICE_QUERY_STATUS=TRUE, READ_CONTROL=TRUE) -> OK

Dans l'exemple ci-dessus, vous pouvez voir que QUERY_PERMISSIONS est en réalité composé de SERVICE_QUERY_STATUS et READ_CONTROL. Les deux droits d'accès de base sont TRUE, ce qui a pour résultat que QUERY_PERMISSIONS est accordé à l'utilisateur actuel.

Interroger les permissions d'un service Windows

Compatibilité :3.5.42
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Il est possible d'interroger les permissions d'un service avec la commande suivante :

Interroger les permissions du service actuel :
.\wrapper.exe -qp ../conf/wrapper.conf
wrapperm | Current user: mypc\myuser
wrapperm |   Is member of: NT AUTHORITY\INTERACTIVE
wrapperm |
wrapperm | Permissions for the testwrapper service:
wrapperm |
wrapperm |   mypc\myuser:
wrapperm |     START, STOP, PAUSE_RESUME
wrapperm |
wrapperm |   NT AUTHORITY\SYSTEM:
wrapperm |     QUERY_STATUS, QUERY_PERMISSIONS, START, STOP, PAUSE_RESUME, INTERROGATE, CONTROL_CODE
wrapperm |
wrapperm |   NT AUTHORITY\INTERACTIVE:
wrapperm |     QUERY_STATUS, QUERY_PERMISSIONS, INTERROGATE, CONTROL_CODE
wrapperm |
wrapperm |   NT AUTHORITY\SERVICE:
wrapperm |     QUERY_STATUS, QUERY_PERMISSIONS, INTERROGATE, CONTROL_CODE

Dans la sortie de l'exemple ci-dessus, vous pouvez voir que myuser est membre de NT AUTHORITY\INTERACTIVE et hérite donc de ses permissions. De plus, START, STOP, PAUSE_RESUME sont spécifiquement accordés à l'utilisateur.

Vous pouvez également interroger les permissions d'un autre service en utilisant '-qp=serviceName'.

Interroger les permissions d'un service différent en utilisant son nom :
.\wrapper.exe -qp=otherservice ../conf/wrapper.conf

Référence - Services Windows

[Vue/Affichage]

[Démarrage/Arrêt]