현재 Windows의 Ubuntu에 Bash를 설치하고 있습니다.
Bash를 설치하고 정상적으로 사용자를 설정했습니다. 모든 것이 잘 작동하지만 sudo
모든 명령을 계속 실행하고 싶지는 않습니다 . "Wwindows의 Ubuntu on Bash"를 제거한 다음 다시 설치했습니다.
lxrun /install /y
사용자 이름은 저장되었지만 이전 비밀번호는 저장되지 않았습니다. 내가 사용하고 있는 사용자의 현재 비밀번호를 보려고 합니다.
Bash에서 내 사용자의 비밀번호를 어떻게 볼 수 있나요?
답변1
실제로는 할 수 없습니다. 귀하의 비밀번호는 해시되어 있으며 한 방향으로만 디코딩됩니다.
전체적으로 로그인을 시도할 때마다 다음과 같은 작업이 수행된다고 상상해 보세요.
if hash('password') == currentHash;
do grantAccess();
비밀번호를 저장할 때마다
hashedPass = hash('password');
writeOnShadowFile('hashedPass')
이는 실제 비밀번호를 저장하지 않고 대신 함수의 결과를 저장하고 그렇게 평가하는 해싱 보안 표준을 기반으로 합니다. 해시 함수의 목적은 데이터 손실 시 원래 값으로 많은 변환을 수행하는 것이며, 데이터 손실로 인해 원래 비밀번호를 아는 것이 거의 불가능합니다.
usermod -p <password> <user>
비밀번호를 사용하거나 변경할 수 있습니다 passwd <user>
.
답변2
운영 체제 사용자 비밀번호를 볼 수 없습니다. 비밀번호는 다음 위치에 저장됩니다.해시된형태. 그 중 하나를 알고 있는 경우에만 확인할 수 있습니다. 이는 보안 위협이 될 뿐만 아니라 비밀번호를 정기적으로 변경해야 합니다. 그리고 새 것은 이전 것과 너무 유사해서는 안됩니다. 그러나 가정 환경(전문 환경과 반대)에서는 명령줄에 갇혀서는 안 됩니다.
답변3
당신은 할 수 없습니다! 그럴 만한 이유가 있습니다. 이는 엄청난 보안 결함이 될 것입니다. 명령을 사용하여 비밀번호를 변경할 수 있습니다 passwd
( 참조 man passwd
).
루트라면 모든 사용자의 비밀번호를 변경할 수 있습니다.