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

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

启用可配置的壳配置文件

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

重要

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

  • 为 IAM 用户和角色创建自定义的会话类型文档。然后修改这些用户和角色的 IAM 策略,以便StartSessionAPI 操作只能使用您为其创建的会话类型文档。有关信息,请参阅。创建会话管理器首选项(命令行)会话管理器的快速入门最终用户策略

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

启用可配置壳配置文件

  1. 以下网址打开 AWS Systems Manager 控制台:https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择会话管理器

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

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

  5. 选择 Save

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

更改为 bash shell 并在 Linux 实例上更改为 /usr 目录。

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