디렉터리 및 그룹에 대한 입력을 받는 함수를 사용하여 원격 인스턴스의 디렉터리에 그룹 권한을 설정하려고 합니다. 함수는 아래와 같습니다. 인스턴스 A와 B가 동일한 공용을 공유하는 총 3개의 인스턴스가 있습니다. 열쇠. 그러나 A_IP에 대한 ssh 명령은 A_IP의 원격 인스턴스에 있는 디렉터리의 권한을 변경하지 않지만 B_IP에서는 잘 작동합니다. B_IP를 함수의 첫 번째 줄로 유지하여 명령 실행 순서를 바꾸려고 했습니다. 이 경우 B_IP ssh 명령은 A_IP를 변경하지 않습니다. ssh 명령은 디렉토리의 권한을 변경합니다. 공개 키 파일을 공유하는 A_IP 또는 B_IP 중 하나가 로그인 명령 시퀀스의 첫 번째 IP이고 원격 시스템에서 권한을 변경하기 위해 ssh 명령을 실행할 수 없다는 것을 확인했습니다.
grouppermission () {
dir=$1
group=$2
ssh -i $A_Key -p 2022 ec2-user@$A_IP -t "sudo chown -R :$group $dir"
ssh -i $A_Key -p 2022 ec2-user@$B_IP -t "sudo chown -R :$group $dir"
ssh -i $B_Key -p 2022 ec2-user@$C_IP -t "sudo chown -R :$group $dir"
}
문제를 해결하는 데 도움을 주세요. 저는 센토스 운영체제를 사용하고 있습니다.
답변1
비슷한 환경을 만들었고 말씀하신 것과 같은 문제가 발생하지 않았으며 그룹이 성공적으로 변경되었습니다.
하나씩 실행해 보셨나요? 그게 효과가 있을까요? 작동한다면 ssh 명령 사이에 5초의 절전 시간을 추가하고 시도해 볼 수 있습니까?
답변2
문제는 그룹의 GID에 있습니다. 각 인스턴스에 동일한 이름을 가진 로컬 그룹을 생성했지만 함수에서 실행된 마지막 명령이 권한을 변경하기 때문에 GID가 다릅니다.