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

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

제가 겪고 있는 문제는 흔하지 않은 것 같아요. 나는 썼다

chsh -s /bin/false root

이제 로그인할 수 없습니다 root. 로그인할 수 있는 방법이 있나요 root? 명령을 시도하면

chsh -s /bin/true root

내가 얻은 대답은 아마도 쉘을 변경하지 않을 것이라는 것이었고 root, 물론 편집을 시도했을 때 /etc/passwd그렇게 nano할 권한이 없다는 메시지를 받았습니다.

그렇다면 로그인할 수 있는 솔루션은 없을까요 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 공개키 인증을 이용하셔야 합니다^^.

관련 정보