配置 sudo 自定义

如果您组织的 IT 安全策略不允许 root 访问或对使用 sudo 有限制,则在安装 AEN 后,您可以自定义 AEN 以满足他们的要求。

您的组织可以选择实施以下任何一项或所有措施:

将文件复制到服务器节点后,必须在终端窗口中完成这些自定义。

从服务帐户中删除所有 root 访问权限

由于需要 root 访问权限useradd,因此以下过程限制 AEN 管理用户帐户。

  1. 修改/etc/sudoers.d/wakari_sudo文件为:

    Defaults:wakari !requiretty, visiblepw
    Runas_Alias    OP = ALL,!root
    wakari ALL=(OP) NOPASSWD: ALL
    

    注意:如果您使用 wakari 以外的服务帐户名称,请输入该名称而不是wakari

  2. 修改 /opt/wakari/wakari-compute/etc/wakari/config.json文件为:

    "MANAGE_ACCOUNTS": false,
    

使用此选项意味着您的 IT 部门必须在操作系统级别创建和管理所有用户帐户。

存在操作系统级别的帐户后,您可以在主 AEN 网页上创建一个使用相同名称的 AEN 帐户。您选择的密码不会以任何方式与帐户的操作系统级密码相关联。

或者,您可以将系统配置为使用 LDAP 来验证用户

允许公共用户访问您的 AEN 项目

任何可以访问 AEN 服务器的人都可以看到公共帐户。此帐户的名称可以配置为您希望的任何名称。例如,publicanonymous。要禁用此功能,请使用特殊值disabled

  1. /opt/wakari/wakari-compute/etc/wakari/wk-compute-launcher-config.json 文件中,将 ANON_USER 行修改为:

    "ANON_USER": "public"
    
  2. 重启 AEN 计算节点:

    sudo service wakari-compute restart
    
  3. /opt/wakari/wakari-server/etc/wakari/wk-server-config.json 文件中,将 ANON_USER 行修改为:

    "ANON_USER": "public"
    
  4. 重启 AEN 服务器:

    sudo service wakari-server restart
    

有关配置键的更多信息,请参阅 使用配置文件

使用 sudo 替代方案

您可以使用 sudo 替代方案,只要它支持与原始 sudo 相同的执行语义。必须将替代方案配置为授予服务帐户代表 AEN 用户运行命令的权限。

  1. 在终端窗口中,打开 /opt/wakari/wakari-compute/etc/wakari/config.json文件。

  2. 将 AEN_SUDO_CMD 行修改为:

    "AEN_SUDO_CMD": "/path/to/alternative/sudo",
    

    注意:如果备用 sudo 命令在 PATH 上可用,则不需要完整路径。

限制对单个网守的 sudo 访问

默认情况下,sudoers 配置为允许 AEN 以特定用户身份运行任何命令,从而允许平台以登录的最终用户身份启动进程。如果需要更严格的控制,则应使用合适的 sudoers 策略来实施。如果这不可能或不切实际,也可以通过单个网守路由所有 AEN ID 更改操作。

该守门人包装了所需的可执行文件,并提供了一种替代方法来记录、监视或控制 AEN 可以代表用户启动哪些进程。

注意:Gatekeeper 是一种特殊情况配置,应仅在需要时使用。

配置 AEN 网守:

  1. 修改/etc/sudoers.d/wakari_sudo文件以包含:

    Defaults:wakari !requiretty, visiblepw
    Runas_Alias    OP = ALL,!root
    wakari ALL=(OP) NOPASSWD: /path/to/gatekeeper
    
  2. /opt/wakari/wakari-compute/etc/wakari/config.json 文件中,将 AEN_SUDO_SH 行修改为:

    "AEN_SUDO_SH": "/path/to/gatekeeper"
    

示例:网守可以像包含以下内容的脚本一样简单:

#!/bin/bash
first_cmd=$1
if [ 'bash' == $1 ]; then
    shift
    export HOME=~
    export SHELL=/bin/bash
    export PATH=$PATH:/opt/wakari/anaconda/bin
    bash "$@"
else
    exec $@
fi