Amazon Linux 2 EC2 인스턴스에서는 cloud-init
시작 스크립트 중에 다음 명령을 실행하여 원격 사용자에 대한 암호 인증을 활성화합니다 sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
. 따라서 원격 사용자는 Amazon Linux 2 EC2 인스턴스에 로그인할 때 키 페어를 사용하여 인증하지 않습니다. 사용자 중 한 명이 비밀번호를 입력하지 않고도 명령을 실행할 someuser
수 있어야 합니다 .sudo
Cloud-Init 시작 스크립트
전체 cloud-init
시작 스크립트는 다음과 같습니다.
/usr/sbin/useradd someuser
echo someuser:some-password | chpasswd
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd
cat << 'EOF' > /etc/sudoers.d/someuser
someuser ALL=(ALL) NOPASSWD: ALL
EOF
질문
주어진 비밀번호를 사용하여 Putty를 통해 원격으로 로그인하면서 비밀번호 cloud-init
를 반복하지 않고 명령을 someuser
실행할 수 있으려면 위의 시작 스크립트에서 어떤 특정 구문을 사용해야 합니까 ?sudo
someuser
에러 메시지
다음 스크린샷은 오류 메시지를 보여줍니다.
스위칭 오류
위의 현재 구문에서는 someuser
공개 키 누락으로 인해 Putty를 사용할 수 없게 됩니다. 그러나 위의 3줄 명령을 주석 처리하면 오류를 제거하여 someuser
로그인은 가능하지만 명령을 실행할 수는 없습니다.sudo
cat
#cat << 'EOF' > /etc/sudoers.d/someuser
#someuser ALL=(ALL) NOPASSWD: ALL
#EOF
문제는 지난 게시물의 처음 세 줄에 있습니다. sudo
Putty가 비밀번호 전용 기능을 유지하면서 이 사용자가 비밀번호 없이 업그레이드할 수 있도록 이 3줄을 어떻게 다시 작성, 교체 또는 확장할 수 있습니까 ?
답변1
에서 /etc/sudoers.d/README
:
그것은존경받는사용비쥬도, 오류로 인한 변경을 방지하고 새로운 파일 모드(0440 화).
이는 초기화 스크립트가 새로 생성된 파일(/etc/sudoers.d/someuser)의 스키마만 변경하면 된다는 것을 의미합니다.
chmod 0440 /etc/sudoers.d/someuser;
하지만 당신은 해결책을 찾았어요여기더 나은,
echo 'someuser ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo
여기서 Visudo는 필요 없이 새 콘텐츠를 추가하는 tee
대신 사용됩니다.nano
상호 작용, 이것이 내가 놓친 마술이다!