사용자로부터 루트 쉘을 변경할 수 있습니까?

사용자로부터 루트 쉘을 변경할 수 있습니까?

나는 그다지 흔하지 않은 문제에 직면하고 있다고 생각합니다. 나는 썼다

chsh -s /bin/false root

이제 로 로그인할 수 없습니다 root. 어떻게 로그인할 수 있나요 root? 내가 명령을 시도할 때

chsh -s /bin/true root

쉘을 변경할 수 없다는 답변을 받았으며 물론 with root을 편집하려고 하면 해당 작업을 수행할 권한이 없다는 메시지가 나타납니다./etc/passwdnano

그렇다면 로그인할 수 있는 방법이 있나요 root?

답변1

다음을 수행하십시오.

ssh root@localhost /bin/bash

쉘 프롬프트가 표시되지 않습니다. 그러나 ls를 입력하고 Enter를 누르면 출력이 표시됩니다. 그런 다음 이 sed 명령을 사용하여 루트 셸을 재설정할 수 있습니다.

/usr/bin/sed -i -e 's|^\(root.*:\)[^:]*$|\1/bin/bash|g' /etc/passwd

배포판에 따라 sed 명령이 /bin/sed 아래에 있을 수 있습니다.

분명히 이것은 절박한 조치이다.

답변2

아마도 가장 쉬운 방법은 설치 미디어의 복구 모드로 부팅하여 수정하는 것입니다 /etc/passwd.

답변3

sudo /bin/bash일을 해야 합니다. bash슈퍼유저 권한으로 실행하므로 편집 /etc/passwd이나 실행에는 chsh문제가 없습니다.

답변4

sudo가 설치되어 있지 않으면 쉽게 설치할 수 있으며 sudo /bin/bash제대로 작동합니다. 모든 Linux 배포판은 sudo를 사용할 수 있습니다.

또한 비밀번호 프롬프트가 표시되면 공개 키 인증을 사용한 다음 비밀번호 없는 sudo를 활성화해야 합니다. 이것을 구성하려면 이것을 사용하십시오https://spinupwp.com/doc/passwordless-sudo/

이 경우 SSH 공개 키 인증을 사용해야 합니다 ^^.

관련 정보