linux - Ec2 实例登录问题 - Linux
问题描述
我已经使用我的 AMI 创建了一个实例(来自一个黄金 AMI——其中默认安装了 5 个卷——根据我认为的 cis 建议)。当我使用此 AMI 启动实例时,我看不到登录有任何问题,但没有安装驱动器。所以我在我的打包程序代码中定义了将这些卷附加在 launch_block_device_mappings 和 ami_block_device_mappings 下。现在我可以看到我自己的 AMI 连接了驱动器。
问题来了:当我在没有安装这些驱动器的情况下启动时,我的实例允许我登录但是当我在它下面运行时不允许我登录:
Error : Access Denied.
供应商下的打包程序代码:(刚刚创建了一个名为脚本的新目录并执行它 - 早些时候尝试从打包程序执行得到错误,因此尝试复制到实例并从那里执行)。
{
"type": "shell",
"inline": [
"sudo chmod u+x /scripts/mountpartitions.sh",
"sudo sh /scripts/mountpartitions.sh",
"sudo rm -rf /scripts"
],
"execute_command": "{{ .Vars }} sudo -E -S sh '{{ .Path }}'"
}
Mountshell 脚本:
#!/bin/bash
sudo mkfs.ext4 /dev/xvdj
echo '/dev/xvdj /tmp ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdj /tmp
sudo mkdir -p /srv/home
sudo mkfs.ext4 /dev/xvdf
sudo mount /dev/xvdf /srv/home
sudo rsync -av /home/* /srv/home/
sudo rm -rf /home/*
sudo umount /srv/home
echo '/dev/xvdf /home ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdf /home
sudo rm -rf /srv/home/
sudo mkfs.ext4 /dev/xvdh
echo '/dev/xvdh /var/log ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdh /var/log
sudo mkfs.ext4 /dev/xvdi
sudo mkdir /var/log/audit
echo '/dev/xvdi /var/log/audit ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdi /var/log/audit
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk /dev/xvdl
o # clear the in memory partition table
n # new partition
p # primary partition
1 # partition number 1
# default - start at beginning of disk
# default, extend partition to end of disk
t # change a partition's system id
82 # 82 Linux swap
p # print the in-memory partition table
w # write the partition table
q # and we're done
EOF
echo '/dev/xvdl1 none swap sw 0 0' | sudo tee -a /etc/fstab
mkswap -L /dev/xvdl1 /dev/xvdl1
swapon -a
我尝试使用 AMI 手动构建实例并使用 pem 键登录以查看错误在哪里,我可以看到所有 sudoer 都可用。
还从用户数据而不是打包程序代码(来自未连接驱动器的 ami)尝试了如下脚本,但仍然相同。
已验证安全,消息日志仅显示在
Jul 9 01:39:38 sshd[10595]: input_userauth_request: invalid user [preauth]
Jul 9 01:39:49 sshd[10595]: pam_sss(sshd:auth): authentication failure;
实例应该允许我通过 AD 身份验证登录。
为什么仅通过添加用于安装驱动器的脚本就会出错?
解决方案
发现我们缺少 sssd 的重启,因为我们只做 ssshd 解决了它。
推荐阅读
- appian - 在字典中查找关联值
- artificial-intelligence - 极小极大算法:转弯顺序重要吗?
- c# - 由于错误代码,程序将无法运行 * 程序不包含适合入口点的静态“Main”方法
- algorithm - 确定循环具有乘法因子时的时间复杂度
- java - Android - 如何使用 Volley 库将多维 JSON 结果处理为微调器
- python - pandas to_sql 中的 dtype 引发 ValueError
- oracle - 在 Oracle 的参数过程中传递 1000 条表记录
- python - python - 将多个字符串日期时间格式转换为特定的日期格式
- reactjs - 使用反应数据网格进行编辑后启用更新我的表
- python - 如何通过scrapy获取动态数据?