기본이 아닌 셸에 로그인할 수 있나요?

기본이 아닌 셸에 로그인할 수 있나요?

나는 물고기를 좋아합니다. 일부 서비스를 실행하는 멋진 Ubuntu 8.04 서버가 있습니다. 그래서 이전과 마찬가지로 /etc/passwd 파일을 편집하여 기본 셸을 bash에서 fish로 변경했습니다. 그리고, 네, 제가 오타를 냈습니다. (BTW: 저는 chsh에 대해 알고 있습니다. 저는 너무 멍청하고 과신합니다.) 제발 웃지 마세요.

예상대로 이제 로그인이 안되네요. 서버를 재시작하지 않고 로그인이 가능한가요?. 안전 모드에서 서버를 다시 시작하고 문제를 해결할 수 있다는 것을 알고 있지만 피하고 싶습니다.

아 예, 해당 서버에는 sudo 권한을 가진 다른 사용자가 없습니다. 다시 웃지 마세요.

그런데 SSH를 사용하여 엉망으로 만들었지만 서버에 물리적으로 쉽게 액세스할 수 있고 방 몇 개만 떨어져 있습니다.

답변1

불행하게도; 당신은 자신을 잠갔습니다. 쉘이 없으면 SSH에서 로그인을 허용하지 않습니다. 시도는 다음과 같습니다 /var/log/auth.log.

Dec 23 15:04:59 ubuntu sshd[5585]: User kees not allowed because shell /bin/fish does not exist

그리고 콘솔 내 TTY 로그인은 항상 구성된 셸을 시작하려고 시도합니다. 권한이 있는 다른 사용자가 없으면 sudo문제를 해결하려면 단일 사용자 모드로 부팅해야 합니다. :(

답변2

루트 비밀번호가 설정되어 있는 경우 시스템 자체(X 또는 alt-F1을 눌러 가상 콘솔에서)에 루트로 로그인하거나, sudoing을 사용하지 않는 사용자로 원격 로그인한 다음 다음을 사용하여 루트로 전환할 수 있습니다. su터미널에서.

물론 Ubuntu에서는 기본적으로 루트로 로그인하는 것을 허용하지 않으므로 이전에 이를 변경했다고 가정합니다.

답변3

일부 구성 파일을 이전 상태로 복원하려면 Ubuntu CD의 라이브 버전으로 서버를 부팅하여 언제든지 편집을 시도하고 /etc 파일이 있는 실제 파티션을 마운트한 다음 다음을 사용하여 편집할 수 있습니다. vi.

더 많은 사용자에게 루트 권한을 부여하기 위해 /etc/sudoers 파일을 편집할 수도 있습니다.

관련 정보