실수로 들어갔다
chsh -s /usr/bin
대신에
chsh -s /bin/bash
이제 루트 쉘에 로그인 할 수 없습니다. bash 쉘을 루트로 수동으로 시작하는 방법은 무엇입니까?
sudo vipw
일을?
실수로 들어갔다
chsh -s /usr/bin
대신에
chsh -s /bin/bash
이제 루트 쉘에 로그인 할 수 없습니다. bash 쉘을 루트로 수동으로 시작하는 방법은 무엇입니까?
sudo vipw
일을?
답변:
root는 액세스 권한이 없지만 sudo 그룹의 사용자는 여전히 권한있는 명령을 실행할 수 있습니다. 오류는 sudo가 아니라 sudo chsh
명령의 다른 위치 (예 : chsh 오류) 인 것 같습니다.
따라서 sudo는 분명히 작동합니다.
passwd 파일은 다음을 사용하여 편집 할 수 있습니다.
sudo vipw
그리고 루트 쉘은 수동으로 변경되었습니다.
( /etc/passwd
보통 첫 줄 )
root:x:0:0:root:/root:/bin/bash
안개 남자 VIPW
vipw 및 vigr 명령은 / etc / passwd 및 / etc / group 파일을 각각 편집합니다. -s 플래그를 사용하면 해당 파일의 섀도 버전 인 / etc / shadow 및 / etc / gshadow를 각각 편집합니다. 프로그램은 파일 손상을 방지하기 위해 적절한 잠금을 설정합니다.
vipw
하고 vigr
, 감사합니다! 나는 항상 사용sudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html , 너무 @tac
sudo -e
모든 편집에 대해이 잠금 편집 기능을 수행합니다.
다른 계정에 액세스 할 수 있다고 가정하는 다른 옵션은 다음을 사용하여 기본 셸을 수동으로 재정의하는 것입니다 su --shell=/bin/bash
.
-s, --shell = SHELL
/ etc / shells가 허용하는 경우 실행합니다.
이것의 주요 장점은 다른 권한있는 계정이 아닌 다른 계정에만 액세스 할 수 있다는 것 입니다.
보안상의 이유로 텍스트 또는 그래픽 및 유틸리티와 같은 로그인 su
및 sudo
다른 사용자가 모든 대상 사용자의 쉘을 통해 그 명령을 실행 당신이 명령을 실행 할 수있다. 대상 사용자의 쉘이 작동하지 않으면 결과를 볼 수 있습니다.
setuid-root 바이너리 또는이를 우회 할 수있는 기능을 수행하는 여전히 기능적인 루트 쉘이없는 한, 복구 시스템 또는 라이브 이미지를 사용하여 재부팅하고 문제를 해결하는 것이 가장 좋습니다.
복구 시스템을 부팅하고 실제 시스템의 루트 파일 시스템을 어딘가에 마운트 /mnt/foo
하고 편집 /mnt/foo/etc/passwd
하여 셸을 수정하십시오. 저장하고 마운트를 해제하면 완료됩니다.
/etc/passwd
평문이 아닌가? 나는 적어도 10 년 동안 그것을 보지 못했습니다. 일부 시스템에서는 여전히 문제입니까? 어쨌든, chroot /mnt/foo chsh -s /bin/bash
그 경우 트릭을 할 수 있다고 생각 합니까?
sudo usermod -s /bin/bash jdoe
의 쉘 변경됩니다 은 jdoe 에를 bash
. 그런 다음 sudo egrep jdoe /etc/passwd
확인할 수 있습니다 .