Oracle Linux 서버에서 루트 사용자에 액세스할 수 없습니다.

Oracle Linux 서버에서 루트 사용자에 액세스할 수 없습니다.

내 서버에서 Ansible을 구성하고 모든 서버에서 Ansible 사용자를 생성한 다음 그들에게 sudo 액세스 권한을 부여했습니다. 따라서 Ansible 사용자를 사용하여 다른 서버로 ssh할 때마다 비밀번호를 묻지 않아야 합니다. 두 서버 모두에서 성공적으로 구성했지만 파일을 변경하여 다른 서버에서 구성하면 /etc/sudoers/시스템이 응답하지 않게 된 다음 터미널을 다시 시작했고 이제 루트 사용자로 서버에 로그인하려고 하면 오류가 발생합니다.

$ sudo su

/etc/sudoers: syntax error near line 121 <<< sudo: parse error in /etc/sudoers near line 121 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin

답변1

sudoers파일이 손상되었으므로 sudo모든 액세스가 거부됩니다. 루트 비밀번호가 있으면 이를 사용하여 문제를 해결할 수 있습니다.

su -
visudo

그렇지 않은 경우 복구 디스크를 사용하여 시스템을 부팅하고 sudoers그런 방식으로 파일을 재설정해야 합니다. 훨씬 더 복잡합니다.

이를 방지하기 위해 구문 검사를 수행하므로 /etc/sudoers파일을 사용하지 않고 수동으로 편집 하지 마십시오 .visudo

그건 그렇고, 사용할 필요가 없습니다 sudo su(루트 권한을 얻는 데 사용되며 이미 루트 권한으로 다시 제공하도록 sudo요청합니다 ). 아니면 완전히 적절할 수도 있습니다.susudo -ssudo -i

답변2

루트 비밀번호가 없지만 사용자 계정이 해당 wheel그룹(또는 sudoDebian/Ubuntu의 경우 그룹)에 있는 경우 시도해 볼 수 있는 작업이 한 가지 더 있습니다.

pkexec visudo

비밀번호를 묻는 메시지가 표시되고(보다 자세한 정보 ) 파일을 sudo편집할 수 있습니다 ./etc/sudoers

활성 루트 세션이 남아 있지 않고 이를 가져올 수 없는 경우( 또는 사용 중 sudo) pkexec유감스럽게도 가동 중지 시간 없이 이 문제를 해결할 수 있는 방법이 없습니다.

저는 Oracle Cloud OPC에 익숙하지 않습니다. 그러나 분명히 클라우드 서버에 있고 이러한 서버가 여러 개 있으므로 이 문제를 해결하는 마지막 방법은 클라우드 관리 인터페이스를 사용하여 서버를 강제 종료한 다음 문제의 클라우드 서버에서 가상 시스템 디스크의 연결을 일시적으로 끊는 것입니다. 가상 디스크를 두 번째 클라우드 서버에 추가 디스크로 추가합니다. 그런 다음 문제 서버의 루트 파일 시스템을 /mnt두 번째 서버("복구 서버")에 마운트하고 이를 실행하여 visudo -f /mnt/etc/sudoers구문 오류를 수정할 수 있습니다. 이 작업을 수행한 후 복구 서버에서 디스크를 마운트 해제하고 연결을 끊은 다음 문제가 있는 서버로 반환합니다.

클라우드 관리 인터페이스에 가상 머신으로 이 작업을 수행하는 데 필요한 기능이 없는 경우 클라우드 운영자(예: Oracle?)에 문의하여 지원을 받아야 합니다. 그들은 이런 종류의 문제에 대해 매우 잘 알고 있을 것입니다. 오타로 인해 클라우드 서버에 대한 루트 액세스 권한을 잃은 사람은 확실히 당신이 처음은 아닙니다.

관련 정보