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

允许可配置的 Shell 配置文件

默认情况下,适用于 Linux 的 EC2 实例上的会话使用 Bourne shell (sh) 启动。但是,您可能更喜欢使用 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 配置文件的示例命令。

在 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 "------- ------ ----- ----- ----- ------ -- -----------"}