第 7 章 使用 cloud-init 配置身份验证
您可以使用 cloud-init 工具管理用户、访问权限和密码。特别是,您可以设置 cloud-init 来在虚拟机中执行以下任一操作:
-
在
users部分中创建并描述用户。如果添加了users部分,您还必须在该部分中设置默认的用户选项。您可以修改这个部分,来向初始系统配置添加更多用户,并设置其他用户选项。 -
通过在
users部分中添加sudo和groups条目,将用户配置为 sudoer。 -
配置用户数据,以便只有您有
root用户访问权限。 -
强制
cloud-user在第一次登录时更改cloud-user密码,来重置密码。 -
通过创建一个用户列表来设置
root密码。
先决条件
根据数据源的要求,编辑
user-data文件或在cloud.cfg.d目录中添加以下指令:注意所有用户指令都包括文件顶部的
#cloud-config,以便cloud-init将文件识别为包含用户指令。当您在cloud.cfg.d目录中包含指令时,将该文件命名为*.cfg,且始终在文件的顶部包含#cloud-config。
流程
添加用户和用户选项 :
添加或修改
users部分以添加用户。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您希望
cloud-user与您指定的其他用户一起创建的默认用户,请确保将default添加为这个部分中的第一个条目。如果这不是第一个条目,则不会创建cloud-user。 默认情况下,如果没有
selinux-user值,用户会被标记为unconfined_u。注意这个示例将用户
user2放在两个组中:users和wheel。
将 sudo 用户添加到用户列表 :
-
添加
sudo条目并指定用户访问权限。例如,sudo: ALL=(ALL)NOPASSWD:ALL允许用户进行不受限制的用户访问。 添加一个
groups条目,并指定包含用户的组:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
添加
为用户配置一个专用的
root访问权限 :通过修改
name选项,为users部分中的用户root创建一个条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:为
root用户设置 SSH 密钥:users: - name: root ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA..vz user@domain.comusers: - name: root ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA..vz user@domain.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要更改默认的
cloud-init用户名,请遵循:添加行
user: <username>,使用新的默认用户名替换 <username> :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要为新用户重置密码 :
将行
chpasswd: {expire: False}改为chpasswd: {expire: True}:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意-
这可让密码过期,因为除非您另有说明,否则
password和chpasswd只针对默认的用户执行操作。 -
这是一个全局设置。当您将
chpasswd设置为True时,您创建的所有用户都需要在登录时更改其密码。
-
这可让密码过期,因为除非您另有说明,否则
要设置 root 密码 :
在
chpasswd部分中创建一个用户列表:注意空格很重要。请勿在您的用户列表的冒号之前或之后包括空格。如果您包含空格,密码会被设置为包括空格。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果使用此方法设置用户密码,则必须在本节中设置 all passwords。