如何透過 AWS 上的 CloudInit 變更預設使用者 (ubuntu)

如何透過 AWS 上的 CloudInit 變更預設使用者 (ubuntu)

我正在使用 CloudInit 自動啟動 AWS 上的執行個體。我遵循了以下位置提供的(稀缺)文件:http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/annotate/head%3A/doc/examples/cloud-config.txt和範例/usr/share/doc/cloud-init,但仍然沒有弄清楚如何更改預設使用者名稱(ubuntu,id:1000)。

我知道我可以創建一個腳本來手動刪除預設的 ubuntu 並添加我的用戶,但考慮到 CloudInit 的存在正是為了自動化初始設置,這似乎違反直覺。

有任何想法嗎?

答案1

根據,CloudInit 應該支援自訂指令來建立新用戶,包括覆蓋預設的「ubuntu」用戶。我已經按照示例進行了嘗試,但未能使其正常工作。

但是,由於 CloudInit 支援使用者資料腳本,並且您幾乎可以在腳本中執行任何操作,因此我更喜歡使用標準命令,而不是嘗試學習一些新的自訂指令。

以下是我如何在使用者資料腳本中更改預設使用者名稱“ubuntu”。此範例使用新使用者名稱“newuser”,您應該根據自己的喜好變更該使用者名稱:

#!/bin/bash -ex
user=newuser
usermod  -l $user ubuntu
groupmod -n $user ubuntu
usermod  -d /home/$user -m $user
mv /etc/sudoers.d/90-cloudimg-ubuntu /etc/sudoers.d/90-cloudimg-$user
perl -pi -e "s/ubuntu/$user/g;" /etc/sudoers.d/90-cloudimg-$user

您可以新增至此使用者資料腳本以執行實例所需的任何其他初始化和配置。

更新:我寫了一篇擴充文章,描述了使用使用者資料腳本的步驟以及如何在最新版本的 Ubuntu 上使用 CloudInit 執行此操作:http://alestic.com/2014/01/ec2-change-使用者名稱

答案2

您可以將其放入用戶資料中:

#cloud-config
system_info:
  default_user:
    name: otherusername

相關內容