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

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

启用可配置的 Shell 配置文件

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

重要

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

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

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

启用可配置的 Shell 配置文件

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

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

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

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

  5. 选择 Save

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

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

/bin/bash cd /usr

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

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