실행이 가능한가요?비밀번호새로 입력한 비밀번호를 표시하는 옵션이 있는 명령? 기본적으로 내가 입력한 내용이 표시되지 않으며 이를 원하지 않습니다.
[dave@hal9000 ~]$ passwd
Changing password for user dave.
Changing password for dave.
(current) UNIX password:
New password: bowman
Retype new password: bowman
passwd: all authentication tokens updated successfully.
답변1
정말로 이 길을 가고 싶었지만 아직 가지 못했다면비밀번호매개변수, 이것을 사용할 수 있습니다예상되는스크립트:
#!/usr/bin/env expect -f
set old_timeout $timeout
set timeout -1
stty -echo
send_user "Current password: "
expect_user -re "(.*)\n"
set old_password $expect_out(1,string)
stty echo
send_user "\nNew password: "
expect_user -re "(.*)\n"
set new_password $expect_out(1,string)
set timeout $old_timeout
spawn passwd
expect "password:"
send "$old_password\r"
expect "password:"
send "$new_password\r"
expect "password:"
send "$new_password\r"
expect eof
작동 방식:
[dave@hal9000 ~]$ ./passwd.tcl
Current password:
New password: bowman
spawn passwd
Changing password for user dave.
Changing password for dave.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
이 쉘 스크립트도 작동할 수 있습니다(bash-4.2.47-2 및 passwd-0.79-2를 사용하여 Fedora 20에서 테스트됨).
#!/bin/sh
stty -echo
echo -n "Current password: "
read old_password
stty echo
echo
echo -n "New password: "
read new_password
passwd << EOF
$old_password
$new_password
$new_password
EOF
작동 방식:
[dave@hal9000 ~]$ ./passwd.sh
Current password:
New password: bowman
Changing password for user dave.
Changing password for dave.
(current) UNIX password: New password: Retype new password: passwd: all authentication tokens updated successfully.
답변2
정확히 무엇을 보고 싶은지 확신할 수 없습니다. 자신의 비밀번호가 무엇입니까? 다른 사람?
귀하의 비밀번호는 해시되어 있기 때문에 운영 체제에서도 몰랐던 것으로 기억합니다. 섀도우 파일에서 비밀번호를 지우고 비밀번호를 효과적으로 비운 다음(보통 다른 부팅 디스크에서 부팅하여) 비밀번호를 다시 입력할 수 있지만, 실제 비밀번호를 훔치려면 해시 문자열을 해독해야 합니다... 무차별 대입 또는 사전 공격, 레인보우 테이블 또는 이와 유사한 것. 역학은 Google fu에 맡기겠습니다.
즉, 키 입력을 가로채거나 기록하지 않으면 비밀번호를 검색할 수 없습니다. 하지만 드라이브(또는 이미지)에 물리적으로 액세스할 수 있는 경우 비밀번호를 삭제할 수 있습니다.
편집: 아, 입력할 때 표시되는 내용을 명확히 했습니다. 다시 말하지만, 아니요, 제가 아는 어떤 버전에도 없습니다. 나는 이것이 어깨 너머로 서핑을 하거나 타이핑하는 동안 원격으로 모니터를 바라보는 것을 방지하기 위한 것이라고 생각합니다.
이 문제를 해결하려면(예를 들어 GUI를 사용하는 경우) 텍스트 문자열을 잘라내어 프롬프트에 붙여넣을 수 있습니다. 하지만 일반적으로 이 작업은 번거롭습니다. 텍스트가 에코되기를 원하는 이유에 따라 다릅니다. 입력하는 내용을 볼 수 있으면 비밀번호를 두 번 입력하는 이유는 오타를 줄이기 위해 비밀번호를 다시 입력하도록 하는 목적입니다.
Linux 버전의 작동 방식에 따라 비밀번호 문자열을 직접 해싱하고 결과 해시를 섀도우 파일에 공급해 볼 수 있을 것 같습니다. 이상한 해결 방법이지만 작동할 수 있습니다. 또는 다른 시스템/데이터베이스에 대해 인증하는 PAM 모듈이 있고 이를 더 직접적으로 변경할 수 있는 이상한 해결 방법을 찾을 수도 있습니다. 그러나 보안 관점에서 볼 때 어떤 단계에서 일반 텍스트를 통해 비밀번호가 유출되면 문제가 발생할 수 있습니다. 얼마나 많은 위험을 감수할 것인지 결정해야 합니다.