允许可配置的 Shell 配置文件 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

允许可配置的 Shell 配置文件

默认情况下,适用于 EC2 实例上的会话使用 Bourne shell (sh)Linux 启动。但是,您可能更喜欢使用 Bash 等其他 Shell。通过允许可配置的 Shell 配置文件,您可以自定义会话中的首选项,例如 Shell 首选项、环境变量、工作目录以及在启动会话时运行多个命令。

重要

Systems Manager 不会检查 Shell 配置文件中的命令或脚本,以查看它们在运行之前会对实例进行哪些更改。要限制用户修改在其 Shell 配置文件中输入的命令或脚本,建议执行以下操作:

  • 为您的 Amazon Identity and Access Management (IAM) 用户和角色创建自定义的会话类型文档。然后,修改这些用户和角色的 IAM policy,使 StartSession API 操作只能使用您为他们创建的会话类型文档。有关信息,请参阅 创建Session Manager首选项文档(命令行)Session Manager 的快速入门最终用户策略

  • 修改 IAM 用户和角色的 IAM policy,以拒绝访问您创建的会话类型文档资源的 UpdateDocument API 操作。这样,您的用户和角色便可以使用您为其会话首选项创建的文档,而不允许他们修改任何设置。

要启用可配置的 Shell 配置文件,请执行以下步骤:
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,请选择 Session Manager

  3. 选择 Preferences (首选项) 选项卡,然后选择 Edit (编辑)

  4. 在适用操作系统的字段中指定要在会话启动时运行的环境变量、Shell 首选项或命令。

  5. 选择保存

以下是一些可以添加到 Shell 配置文件的示例命令。

在 Bash shell 上Linux更改为 Bash shell,并更改为 /usr 目录。

exec /bin/bash cd /usr

在会话开始时输出时间戳和欢迎消息。

Linux & macOS
timestamp=$(date '+%Y-%m-%dT%H:%M:%SZ') user=$(whoami) echo $timestamp && echo "Welcome $user"'!' echo "You have logged in to a production instance. Note that all session activity is being logged."
Windows
$timestamp = (Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ") $splitName = (whoami).Split("\") $user = $splitName[1] Write-Host $timestamp Write-Host "Welcome $user!" Write-Host "You have logged in to a production instance. Note that all session activity is being logged."

在会话开始时查看动态系统活动。

Linux & macOS
top
Windows
while ($true) { Get-Process | Sort-Object -Descending CPU | Select-Object -First 30; ` Start-Sleep -Seconds 2; cls Write-Host "Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName"; Write-Host "------- ------ ----- ----- ----- ------ -- -----------"}