系统用户、sudo 权限和 systemd

本主题介绍 Tableau Server 上下文中的系统用户、systemd 用户服务和 sudo 权限。

权限分离

按照标准安全最佳做法,适用于 Linux 的 Tableau Server 会尽可能以最小权限来运行进程。在安装过程中,将会在服务器授权组 (tableau) 中创建非特权用户 tableau

下面是 /etc/passwd 文件中的一个示例用户条目:

  • tableau:x:993:991:Tableau Server:/var/opt/tableau/tableau_server:/bin/bash

所有进程都以非特权 tableau 用户身份运行。这意味着,如果其中一个 Tableau Server 进程(如向用户显示可视化项的进程)以某种方式受到威胁,那么只能影响 Tableau Server,而不会影响 Linux 系统的其余部分。因此,您不应将 tableau 非特权用户添加到 tsmadmin 组。tsmadmin 组应仅包含需要授权才能访问 OS 相关 Tableau 配置的帐户。

tableau 用户和 tsmadmin 组通过 Tableau Server 初始化过程创建。您可以在安装过程中指定其他非特权用户或 TSM 授权组。有关系统用户和组的更多信息,请在安装和 LDAP 配置的上下文中参阅身份存储

sudo 权限

Linux 版 Tableau Server 的第一个版本 (10.5) 通过更新 sudoers 文件而依赖于 sudo 权限进行操作。更新 sudoers 文件会与某些系统管理配置最佳做法和安全策略冲突。因此,Tableau Server 的 2018.1 版本(及更高版本)不再创建或使用特权用户 (tsmagent)。Tableau Server 的当前版本也不会更新或包括特定于 Tableau 的 sudoers 文件。

所有特权操作现在都在程序包和软件安装过程中进行。

Systemd 用户服务

在 Linux 版 Tableau Server 的 10.5 版本中,需要 sudo 权限才能修改或重新启动 TSM 服务,执行该操作需要 systemctl 命令。所有 TSM 服务都从正常的系统级 systemd 进程(process ID 1,该进程运行操作系统上的所有进程)中运行。在此方案中,systemd 进程以 root 用户身份运行。因此,10.5 版本的 Tableau Server 需要 sudo 权限。

对于当前的 2018.1(及更高)版本,我们利用 systemd 以用户服务形式运行的能力,从而不再需要 sudo 权限。Systemd 用户服务以普通用户身份运行,因此启用之后不需要任何特殊权限。

在正常使用情况下,您不需要向 systemd 发出命令,因为 TSM 会执行该操作。不过,对于故障排查方案,您可能需要与 TSM 服务交互。像以前的版本一样,您将为这些方案发出相同的 systemctl 命令。但是,命令应以 tableau 用户身份(而不是 root 用户身份)运行。如果在 Tableau Server 设置过程中指定了其他非特权系统用户,则以该用户身份运行命令。

运行 systemctl 命令

使用以下语法示例,通过 systemctl 命令发出 systemd 请求。

以非特权用户身份启动会话。-l 标志对于正确设置环境变量至关重要。

sudo su -l tableau

然后发出命令。例如:

systemctl --user status tabadmincontroller_0

systemctl --user restart tabadmincontroller_0

感谢您的反馈!您的反馈已成功提交。谢谢!