Utilisateur système, privilèges sudo et systemd
Cette rubrique décrit l’utilisateur système, le service utilisateur systemd et les privilèges sudo dans le contexte de Tableau Server.
Séparation des privilèges
Conformément aux recommandations de sécurité standard, Tableau Server pour Linux exécute les processus avec le moins de privilèges possible. Lors de l’installation, l’utilisateur sans privilège, tableau, est créé dans un groupe autorisé du serveur (tableau).
Voici un exemple d’entrée utilisateur dans le fichier /etc/passwd :
tableau:x:993:991:Tableau Server:/var/opt/tableau/tableau_server:/bin/bash
Tous les processus s’exécutent comme utilisateur tableau sans privilèges. Cela signifie que si l’un des processus Tableau Server (par exemple un processus affichant des visualisations pour les utilisateurs) était compromis d’une manière ou d’une autre, cela n’aurait d’incidence que sur Tableau Server, et non sur le reste du système Linux. Pour cette raison, vous ne devriez pas ajouter l’utilisateur tableau
sans privilèges au groupe tsmadmin
. Le groupe tsmadmin
doit uniquement contenir des comptes nécessitant une autorisation d’accès aux configurations Tableau liées au système d’exploitation.
L’utilisateur tableau
et le groupe tsmadmin
sont créés par le processus d’initialisation de Tableau Server. Vous pouvez spécifier un utilisateur sans privilèges différent ou un groupe d’autorisation TSM lors de l’installation. Pour plus d’informations sur les utilisateurs et les groupes système, dans le contexte de l’installation et de la configuration LDAP, consultez Magasin d’identités.
Privilèges sudo
La première version (10.5) de Tableau Server sur Linux reposait sur les privilèges sudo en mettant à jour le fichier sudoers. La mise à jour du fichier sudoers entre en conflit avec certaines meilleures pratiques et politiques de sécurité en matière de configuration de la gestion du système. De ce fait, la version 2018.1 (et versions ultérieures) de Tableau Server ne crée ni n’utilise plus un utilisateur avec privilèges (tsmagent
). La version actuelle de Tableau Server ne met pas à jour et n’inclut pas de fichier sudoers spécifique à Tableau.
Toutes les opérations avec privilèges ont désormais lieu pendant l’installation des packages et des logiciels.
Service utilisateur systemd
Dans la version 10.5 de Tableau Server sur Linux, les privilèges sudo étaient requis pour modifier ou redémarrer les services TSM qui nécessitaient des commandes systemctl. Tous les services TSM étaient exécutés à partir du processus systemd à l’échelle du système (process ID 1
, qui exécute tous les processus sur le système d’exploitation). Dans ce modèle, le processus systemd s’exécute en tant que racine. De ce fait, la version 10.5 de Tableau Server exigeait des privilèges sudo.
Avec les versions 2018.1 actuelles (et versions ultérieures), nous avons supprimé la nécessité de privilèges sudo en utilisant la fonctionnalité systemd d’exécution en tant que service utilisateur. Le service utilisateur systemd s’exécute en tant qu’utilisateur normal et n’a donc besoin d’aucun privilège spécial une fois qu’il a été activé.
Dans des cas d’utilisation standard, vous n’avez pas besoin d’émettre des commandes vers systemd car TSM s’en charge. Toutefois, pour les scénarios de résolution des problèmes, vous pouvez avoir besoin d’interagir avec les services TSM. Comme avec les versions précédentes, vous émettrez les mêmes commandes systemctl pour ces scénarios. Toutefois, les commandes devraient être exécutées en tant qu’utilisateur tableau
et non en tant que racine. Si vous avez spécifié un utilisateur système sans privilèges différent pendant la configuration de Tableau Server, exécutez les commandes en tant que cet utilisateur.
Exécution de commandes systemctl
Utilisez l’exemple de syntaxe suivant pour envoyer une demande à systemd avec les commandes systemctl.
Démarrez une session en tant qu’utilisateur sans privilèges. L’indicateur -l
est essentiel pour définir correctement les variables d’environnement.
sudo su -l tableau
Émettez ensuite les commandes. Par exemple :
systemctl --user status tabadmincontroller_0
systemctl --user restart tabadmincontroller_0