跳到主要内容 跳到补充内容

通过 sudo 启动 Talend JobServer

sudo 启动 Talend JobServer,授予它特权操作所需的权限,例如访问特定资源或使用受限端口。

信息注释重要: 如果您已经从此服务器启动了作业,建议在使用 sudo 重新启动服务器之前删除目录 <jobserver_path>/TalendJobServerFiles。这有助于避免对已部署的作业或缓存文件进行意外授权。

步骤

  1. 为受信任的用户设置目录权限:
    1. 将允许执行任务的每个用户(例如,名为 subuser 的用户)添加到拥有 Talend JobServer 的以下父目录的 root 组和用户组(例如,称为 myuser 的用户):

      示例

      > sudo usermod -a -G myuser_group subuser
      > sudo usermod -a -G root subuser           
    2. 通过执行 chmod g+rx /<directory_path>,在所有必需的目录中为组授予 execute 权限:

      示例

      chmod g+rx /opt
      chmod g+rx /opt/talend
      chmod g+rx /opt/talend/Talend-JobServer
      chmod g+rx /opt/talend/Talend-JobServer/TalendJobServersFiles
      chmod g+rx /opt/talend/Talend-JobServer/TalendJobServersFiles/cache
      chmod g+rx /opt/talend/Talend-JobServer/TalendJobServersFiles/cache/lib               
      本例中 Talend-JobServer 文件夹的父文件夹仅用于演示。它们强调了在目录结构的每个级别授予 execute 权限的必要性,以确保正确运行。
      信息注释注: 仅部署的文件需要组的 read 权限。
  2. 为启动 Talend JobServer 的用户配置 umask 以控制文件权限。

    术语 umask 是调用 user-file-creation-mask 命令的快捷方式。此设置控制创建新文件或目录时的默认文件和目录权限。

    1. 使用以下 umask命令设置用户的配置文件:

      示例

      umask u=rwx,g=rx,o=

      这等同于 umask 0027

      此配置可确保:

      • 目录具有组授权 r-x
      • 文件具有组授权 r--
      • 没有针对其他用户的授权。
  3. 使用以下命令启动 Talend JobServer

    示例

    sudo sh start_rs.sh
    信息注释重要: 如果不使用 sudo,作业将停止响应,因为 JobServer 端需要密码提示。

从预先配置的 sudo 权限启动 Talend JobServer

为了避免重复使用 sudo 命令,请配置系统的 sudoers 文件,以自动执行 Talend JobServer 所需的特定命令的权限。

步骤

  1. 使用 sudo visudo 命令更改运行 Talend JobServer 的计算机上的 sudoers 文件。
  2. 编辑 sudoers 文件以指定用户和命令别名。

    示例

    # ...
    # User alias specification
    User_Alias JOB_SERVER = jerry
                            
    # Cmnd alias specification
    Cmnd_Alias RUN_JOB = /bin/ps, /usr/bin/java, /bin/sh, /bin/grep, /bin/kill
                            
    # ...
    # Add after the line: %sudo	ALL=(ALL:ALL) ALL
    JOB_SERVER      ALL=(jules,jim) NOPASSWD: RUN_JOB

    在这个例子中,用户 jerry 启动 Talend JobServer。任务必须在现有用户 julesjim 的权限下运行。

    jerry 启动的 Talend JobServer 进程允许以 julesjim 的身份执行以下命令:

    /bin/ps
    /usr/bin/java
    /bin/sh
    /bin/grep
    /bin/kill

    出于安全考虑,不要允许执行更多的命令。

结果

用户 jerry 可以通过运行 sh start_rs.sh 而不是 sudo sh start_rs.sh 来启动 Talend JobServer

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们!