로그인 쉘을 변경해 보았습니다.
첫 번째 줄은 다음과 같습니다 /etc/passwd
(Debian Wheezy 설치 시):
rootx:0:0:root:/root:/:zsh
로그인을 시도할 때 root
:
Cannot execute zsh: No such file or directory
사용 가능한 것으로 알고 있음 zsh
:
$ which zsh
/usr/bin/zsh
zsh
글쎄, 전체 경로로 바꾸는 것이 논리적인 것 같습니다. 그런데 어떻게 해야 합니까?
내 시스템에 다른 사용자( )가 있지만 user
루트 권한이 없고 sudo
시스템에 설치되어 있지 않습니다.
어떤 이유로(암호화, 물리적 액세스...) 파일을 수정하기 위해 Live CD로 부팅할 수 없다고 가정해 보겠습니다.
하지만 나는 그 계정의 자격 증명을 알고 있습니다 root
.
root
내 질문은: 프로그래밍 방식으로도 로그인 셸을 먼저 시작하지 않고 계정 프로세스를 시작할 수 있는 방법이 있습니까?
답변1
su 허가를 받음
다음 명령을 사용하여 모든 사용자의 쉘을 변경할 수 있습니다.
su -c "/usr/bin/chsh -s /bin/bash root"
물리적으로 접근할 수 있는 경우
Grub 시작 중에 콘솔 액세스 권한이 있고 Grub 메뉴에 액세스하는 데 방해가 되는 비밀번호가 없다면 어떤 시스템에도 들어갈 수 있습니다.
시스템을 처음 부팅하는 동안 Grub 메뉴가 나타날 때 메뉴로 이동하여 커널 줄을 편집( ekeypress 다음 중 하나를 추가하여 커널이 단일 사용자 모드로 부팅되도록 할 수 있습니다.
- 하나의
- 초기화=/bin/sh
- 1
줄은 다음과 같습니다.
kernel /vmlinuz-2.6.15-27-386 root=/dev/mapper/Ubuntu-root ro init=/bin/bash
Grub에서는 다음과 같아야 합니다.
변경을 완료한 후 커널을 시작합니다( 키를 누릅니다 b).
/etc/passwd
그러면 vi/vim을 사용하여 파일을 원하는 대로 변경할 수 있는 셸을 통해 시스템에 임시로 액세스할 수 있습니다 . reboot
완료되면 입력하시면 됩니다.