关注此论坛后: 在 EC2 实例上禁用 ubuntu 用户的 NOPASSWD sudo 访问
ubuntu
我通过更改中的相应行禁用了默认用户的 sudo 访问/etc/sudoers.d/90-cloud-init-users
。
原来的:
# User rules for ubuntu
ubuntu ALL=(ALL) NOPASSWD:ALL
经过我的改变:
ubuntu ALL=(ALL) ALL
我也从群组ubuntu
中移除了sudo
sudo deluser ubuntu sudo
我想在进行此更改后创建一个 AMI。我这样做了,但随后发现ubuntu
仍然神秘地对从所述 AMI 构建的新实例拥有 sudo 权限。我检查了/etc/sudoers.d/90-cloud-init-users
。看起来 EC2 会自动将原始设置附加到末尾!
ubuntu ALL=(ALL) ALL
# User rules for ubuntu
ubuntu ALL=(ALL) NOPASSWD:ALL
但是,组设置仍然已完成。我如何才能保留更改?我想防止将原始设置重新附加到该文件。即使在常规重启后,这种情况似乎也会发生。
顺便说一下,这是我实现自动化的整个脚本:
#!/bin/bash
# update /etc/sudoers.d/90-cloud-init-users
# take away sudo for default ubuntu user
SUDOER_TMP="$(mktemp)"
sudo cat /etc/sudoers.d/90-cloud-init-users > ${SUDOER_TMP}
echo 'ubuntu ALL=(ALL) ALL' > "${SUDOER_TMP}"
sudo visudo -c -f ${SUDOER_TMP} && sudo cat ${SUDOER_TMP} > /etc/sudoers.d/90-cloud-init-users
rm "${SUDOER_TMP}"
# remove ubuntu from sudo group
sudo deluser ubuntu sudo
答案1
/etc/sudoers.d/90-cloud-init-users
# User rules for ubuntu
ubuntu ALL=(ALL) NOPASSWD:ALL
此行由 cloud-init 写入。已在 上配置/etc/cloud/cloud.cfg
。
目标线就在这里。
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
注释掉,
# sudo: ["ALL=(ALL) NOPASSWD:ALL"]
并保存文件。
此后将不再添加此行。