Compteur dons : 107,69 €

Tutoriels SwissTeamspeak

Les tutoriels présentés ici sont l'œuvre de travail et sont protégés de la copie. Vous pouvez partager notre site mais aucune reproduction totale ou partielle n'est admise sans notre accord explicite.


Les permissions de Teamspeak3

Pré requis: Pour aborder ce tuto, il vaut mieux connaître la manière dont on ajoute quelqu’un dans un groupe et comment on l’en enlève. Un minimum de pratique de TS3 en général est nécessaire. Durant ce tuto, je pars du principe que vous êtes admin de votre serveur.

Vous l’aurez sans doute remarqué, le système des permissions de TS3 n’a plus rien à voir avec celui de TS2. Ceux qui ne voient pas très loin diront que TS3 avec les perms c’est « pourri » !
Mauvaise réaction, ce système n’est certes pas facile à maîtriser au départ, mais une fois que l'on s'y met, on y découvre une souplesse et une puissance formidable.
Comparé à TS2, vous pouvez vraiment tout modifier et dans tous les sens imaginables, oui je sais votre copine aussi vous pouvez la manipuler dans tous les sens mais je ne veux rien savoir ! (Que la gente féminine m’excuse pour cette blague grinçante. )
Alors maintenant, oubliez ce que vous saviez avec TS2 et lisez attentivement ce qui suit !

Comment accéder aux permissions ?

Depuis la mise-à-jour à la version 3.0.0-RC1, un système "simplifié" de permissions a été mis en place, mais il est foireux, nous n'en parlerons donc pas, je vous recommande même de ne pas y toucher pour éviter les soucis!
Pour accéder au système avancé de permissions dont je vais vous parler, allez dans le menu "Settings", puis "Options" ou faire le raccourci "Alt + P", puis allez dans l'onglet "Application" et cochez "Advanced permissions system" et le tour est joué, c'est parti!

C’est tout simple, allez dans « Permissions » puis « server permissions » (ou Channel Permissions, etc. Suivant les permissions que vous souhaitez changer.) Les permissions peuvent être appliquées à un groupe, à un channel, ou à une personne en particulier. Nous verrons cela un peu plus en détail plus loin. Voici un aperçu de ce que vous devriez voir, avec quelques explications en plus (L'apparence du client peu varier selon le thème utilisé) :

Figure 1: Présentation des permissions
Figure 1: Présentation des permissions

Il est utile de savoir qu’on peut choisir de voir les descriptions des permissions ou leurs noms. D’un point de vue pratique, vous préférerez sûrement les descriptions qui seront plus claires sur l’utilité de celle-ci, mais dans ce tuto j’utiliserai les noms dans un souci de compréhension. Choisissez donc « Show names ». Ceci vous aidera aussi à mieux comprendre les messages d'erreurs comme dans l'exemple suivant : <13:33:10> insufficient client permissions (failed on i_client_needed_private_textmessage_power).

Exemple: La permission relative au quota d’upload par client pour le transfert de fichier s’appelle « i_ft_quota_mb_upload_per_client » et la description est « Upload Quota per Client (MByte) »

De plus, le champ « filter », en haut, permet de faire des recherches rapides de permissions. La case à cocher « Show granted only », quant à elle, vous permet de voir uniquement les permissions qui sont activées pour un groupe, une personne, etc...

De manière générale, il existe 2 types de permissions:
  • Les permissions dites booléennes (Boolean Permissions)
  • Les permissions à nombres entiers relatifs (Integer Permissions)
Un peu plus en détail :

Boolean Permissions : Ceux qui font de la programmation ne seront pas étonné par le nom de ce type de permission pour les autres, il faut savoir qu’en programmation une variable booléenne est simplement une variable qui peut prendre la valeur Vrai ou la valeur Faux. Qu’est-ce que je raconte ? Non laissez ça, il faut juste savoir que ces permissions là sont cochées ou pas, en gros j’ai la permission ou je ne l’ai pas.
Exemple de permission : « b_virtualserver_modify_name ».
Toutes les permissions dont le nom commence par « b » sont des permissions booléennes. Vous comprendrez maintenant pourquoi je vous disais qu’on préférait le nom des permissions aux descriptions, c’est plus évident.

Interger Permissions : Sont facilement reconnaissables grâce à leur préfixe « i ». Le nom, enfin la traduction que j’ai faite du nom de ce type de permissions peut en rebuter certains (Les permissions à nombre entiers relatifs), mais voyons détendez-vous, respirez un bon coup, je ne vais pas faire de cours de math, l’idée est simple, ces permissions reçoivent une valeur si elles sont activées, donc je peux y mettre toute sorte de valeurs entières (1235, 54, 658,etc...) donc des chiffres positifs ou négatifs, sans virgule. La valeur dépend de la permission, généralement ça correspond à un pouvoir ou à un nombre de choses (c’est vague je suis d’accord, mais tout dépend de la permission dont on parle c’est un peu spécifique). Petite précision, il existe 2 valeurs un peu spéciales pour ces permissions le -1 qui veut dire infini et le 0 qui veut dire que la permission n’est pas activée. Attention : le 0 n’est PAS recommandé. En effet cette valeur est souvent mal utilisée et peu avoir plusieurs signification suivant la permissions. Nous vous recommandons donc d'utiliser des valeurs positives ou négative comme le -1.

Power et needed power :

Là où ça se complique un peu c’est quand on a des permissions de ce type qui sont « power » ou « needed power ». Si vous êtes fatigués, lisez ceci plus tard, si vous avez besoin d’aller aux toilettes allez-y sinon c’est parti !

Basiquement, l’idée est de voir quel groupe/personne a le droit de faire telle ou telle chose et qui ne peut pas le faire. L’exemple qui revient souvent est celui du chat (permissions i_client_private_textmessage_power et i_client_needed_private_textmessage_power). J’aimerais, par exemple que le groupe guest puisse envoyer des messages au groupe normal, mais pas au groupe admin, par contre les membres du groupe normal pourront. Ah oui, mais comment faire ?

Je vais tout d’abord définir pour chaque groupe un i_client_private_textmessage_power différent, par exemple, je vais mettre 25 pour le groupe Guest, 50 pour le groupe Normal et 75 pour le groupe Admin. (Ce sont les valeurs par défaut généralement utilisées pour ces groupes, mais vous pouvez en mettre d’autres le but est de pouvoir créer des groupes entre deux ayant un peu plus de droits par exemple un groupe VIP avec un power à 60, ce qui ne serait pas possible si vous utilisez 1, 2, 3).
Vous pouvez voir le power comme votre niveau de pouvoir. Un power est TOUJOURS lié à un needed.

On en parle, le voici: le needed ! Allez, je suis sympa, ceux qui savent pas ce que ça veut dire le sauront, needed signifie ici nécessaire (ou pour reprendre notre terme plus haut, niveau de pouvoir requis). Tout de suite, c’est censé être plus clair ! Pour continuer mon exemple, je mettrai un needed pour le groupe admin de 50, comme ça les gens du groupe normal pourront m’écrire, mais pas les invités puisque ils n’ont un power qui n’est que de 25. Pour les 2 autres groupes, je ne toucherai pas au needed, car par défaut la permissions est désactivée donc tout le monde peut leur écrire, on l’activera en mettant une valeur pour ces groupes si on veut restreindre le nombre de personnes pouvant leur écrire.

En résumé, le needed est le pouvoir qu'il vous faut (power) pour pouvoir effectuer une « action » lié à la permission.
Vous savez désormais comment éviter que les guest envoient des messages d’amour aux admins. L’exemple ci-dessus est valable pour toutes les permissions power-needed.

Grant permission :

C’est quoi ça ? Un nouveau type de permission ?
Non, en fait c’est juste une colonne qu’on retrouve après toute permission, elle permet de modifier le pouvoir nécessaire à ajouter/retirer une permission à un groupe, on reverra ça plus loin quand il s’agira de la modification des droits de manière plus précise.

Les couches de permissions :

Non, non pas les couches culottes , mais les différents niveaux de permissions. Oui, les permissions sont organisées en couches différentes :

  • Couche 1: Groupes serveur
  • Couche 2: Permissions spécifiques au client
  • Couche 3: Permissions spécifiques au channel
  • Couche 4: Groupes Channel
  • Couche 5: Permissions spécifiques au client et au channel

Plus la permission se trouve dans un niveau élevé plus elle domine. Je parle chinois ? Oui c’est normal ! L’exemple type est celui du guest qui n'a pas le droit de modifier les channels sur le serveur (Couche 1) mais qui l’a dans un channel précis parce qu’il est channel admin (Couche 4). Chaque couche à des propriétés que nous allons voir.

Couche 1 : Groupes serveur :

Lorsque vous faites partie des plusieurs groupes serveur, par exemple VIP et admin alors les permissions qui primeront seront celles à la valeur la plus élevée. Sauf si le skip ou le negate est activé, on se calme, j’y viens ! Sur tout serveur, il y a un groupe par défaut dans lequel est mis tout nouveau client, par défaut c’est le groupe guest, bien sûr ça se change !

Negate et Skip : Commençons par le negate, comme on l’a vu, si j’ai plusieurs groupes, le serveur me met automatiquement les valeurs les plus élevées de ces groupes, ahah mais si j’ai pas envie que ce soit le cas pour une permission, je n’ai qu’à mettre la croix dans la colonne negate et de cette manière le serveur choisira la valeur la plus basse qui a le negate au lieu de prendre la plus haute de toutes.

En fait, le skip, c’est pile le contraire, ça évite que les permissions que j’acquiers en étant dans un groupe serveur -> couche 1 (comme admin) soient écrasées par les perms des couches supérieures. Par exemple, vous ne souhaitez pas qu'une personne du server group guest (groupe par défaut) puisse kicker d'un channel même s'il est Channel Admin. Dans ce cas, vous mettrez une valeur de -1 au group guest avec un skip. De ce fait, même si une personne est Channel Admin, il lui sera impossible de kicker quelqu'un de son channel car le skip bloque la valeur de cette permission a celle ou il se trouve. Toutes autre valeur d'une autre couche est dès lors ignorée.

Couche 2: Permissions spécifiques au client

On ne s’y attarde pas, c’est tout con, si je veux mettre des droits spécifiques à une personne sans lui assigner un groupe particulier juste pour une ou deux permissions, je peux les lui mettre directement. (Attention si vous virez un admin, vérifiez qu’il ne s’est pas associé des droits à son client et donc indépendants du groupe !)

Couche 3 : Permissions spécifiques au channel

Là aussi, c’est simple, c’est comme la couche 2 si ce n’est que c’est au niveau d’un channel en particulier et non à tous le serveur.

Couche 4 : Groupes Channel

Tous client sur un channel peut faire partie d’un channel group pas plus donc si je mets Harry Potter (ouais c’est juste pour le style !) channel admin, il ne sera plus dans le groupe channel par défaut. Si je suis channel admin sur un channel, je ne le suis pas forcément sur les autres.

Couche 5 : Permissions spécifiques au client et au channel

C’est comme une combinaison des couches 2 et 3. L’exemple type de cette permission est le priority speaker, cette permission dans un channel s’applique à une personne spécifique et à ce channel là. Cette couche n’est pas très importante, il faut juste savoir qu’elle existe pour comprendre quels droits prennent le dessus sur les autres.

Ajout/suppression/modification de permissions :

Voici une petite checklist, écrite par Teamspeak et traduite par mes soins, assez explicative sur ce sujet :

La réponse à toutes les questions ci-dessous doit être oui pour ajouter, retirer ou éditer une permission sur n’importe qu’elle couche :

  • Est-ce que j’ai un Grant pour la permission concernée ayant une valeur qui n’est pas zéro ?
  • Est-ce que j’ai un i_permission_modify_power plus grand ou égal à mon Grant pour la permission concernée ?
  • Quand je modifie le i_group_modify_power, est-ce que la nouvelle valeur est plus petite ou égale à mon i_group_modify_power ?
  • Quand je modifie le i_permission_modify_power, est-ce que la nouvelle valeur est plus petite ou égale au i_permission_modify_power
  • Quand je modifie un Grant , est-ce que la nouvelle valeur est plus petite ou égale à mon grant power pour la permission en question ?

Mise-à-jour automatique des permissions :

Ce système est très ingénieux, en fait le but est d’éviter les problèmes avec les perms après une mise-à-jour du serveur, il va modifier les permissions en fonction des infos qu’on lui a donné. Pour activer ceci, il suffit d’activer la permission i_group_auto_update_type du groupe voulu.

Les valeurs suivantes sont valables :

  • Valeur 0: Le groupe va être traité comme le groupe 'Query Guest'
  • Valeur 1: Le groupe va être traité comme le groupe 'Query Admin'
  • Valeur 2: Le groupe va être traité comme le groupe 'Server Admin'
  • Valeur 3: Le groupe va être traité comme le groupe 'Server Normal'
  • Valeur 4: Le groupe va être traité comme le groupe 'Server Guest'
  • Valeur 5: Le groupe va être traité comme le groupe 'Channel Admin'
  • Valeur 6: Le groupe va être traité comme le groupe 'Channel Operator'
  • Valeur 7: Le groupe va être traité comme le groupe 'Channel Voice'
  • Valeur 8: Le groupe va être traité comme le groupe 'Channel Guest'
(Ces groupes sont les groupes par défaut sur tous serveurs TS.)

Pour terminer, une petite précision concernant nos serveurs, ils ont tous un groupe « Admin SwissTeamspeak », ce groupe est intouchable, en fait il existe pour que nous puissions intervenir sur tous les serveurs en tant que Query admin donc l’admin qui a les droits les plus élevés du système.

Si vous avez des questions générales, n'hésitez pas à les poser au support !