필수 도구 및 설치:
다음 도구 및 소프트웨어를 설치해야 합니다.
– 비밀번호 변경을 위한 쉘 스크립트
– Sudo 액세스
– Apache 또는 Lighttpd 웹 서버
프로그램.
1단계: 사용자 비밀번호를 수정할 수 있는 쉘 스크립트 설치
이 스크립트는 실제로 Linux 사용자의 비밀번호를 수정하는 데 사용할 수 있습니다(Linux 및 FreeBSD에서 테스트됨).
예: 쉘 스크립트 코드
#!/bin/sh # exec Expect -f “$0″ ${1 ”$@”} 비밀번호 설정 [linindex $argv 1] generate passwd [linindex $argv 0] sleep 1 “assword:” 보내기 “$passwordr” 기대 “assword:” 보내기 “$passwordr” 기대 eof 쉘 스크립트 실행(다운로드 링크):
$ chpasswd 사용자 이름 비밀번호 스크립트를 다운로드한 다음 웹 루트에 복사합니다. 디렉토리 또는 웹 서버의 다른 위치(사용자가 읽을 수 있음):
$ cp chpasswd /var/www/ 또는 Lighttpd 웹 서버를 사용하는 경우:
$ cp chpasswd /home/lighttpd 2단계: 루트로 sudo를 통해
명령을 실행합니다. Apache 또는 Lighttpd 웹 서버는 백그라운드에 진입한 후 즉시 루트가 아닌 권한을 사용합니다. passwd 명령이 다른 사용자 계정의 비밀번호를 변경하려면 루트 권한이 필요한 것처럼 이는 비밀번호 변경을 매우 효과적으로 방지할 수 있습니다.
일반적으로 Apache 2는 www-data 사용자를 사용하고, Lighttpd는 lighttpd 사용자를 사용합니다(둘 다 일반 사용자, 루트가 아닌 사용자). 루트 사용자로 로그인한 후 다음 명령을 실행하십시오.
# visudo 이제 웹 서버에서 비밀번호 수정 스크립트(chpasswd)의 실행을 허용합니다. Apache 웹 서버를 사용하는 경우 다음 명령을 실행합니다.
www-data ALL=NOPASSWD: /var/www/chpasswd 또는 Lighttpd 웹 서버를 사용하는 경우 다음 명령을 실행합니다.
httpd ALL= NOPASSWD: /home/lighthttpd/chpasswd 파일을 저장하고 종료합니다.
3단계. PHP 기반 인터페이스 생성
이제 PHP 스크립트를 작성해야 합니다. 다음은 PHP 스크립트의 예입니다. 필요에 따라 수정할 수 있습니다. 최소한 쉘 스크립트 위치를 올바르게 설정해야 합니다. PHP 스크립트를 열고 쉘스크립트 줄을 찾으세요:
$shellscript = “sudo /home/lighttpd/chpasswd”; 올바른 위치를 가리키도록 쉘스크립트를 수정하세요. 여기에서 PHP 소스 코드를 다운로드하세요.
4단계: 스크립트 실행
웹 브라우저의 주소 표시줄에 웹 주소를 입력하면 사용자 이름과 비밀번호 프롬프트가 표시됩니다.
비밀번호가 다음과 같은 경우 성공적으로 수정되면 다음과 같은 확인 메시지가 표시됩니다.
어떤 이유로 인해 비밀번호 수정에 실패하면 다음 메시지를 참조하여 자세한 오류 정보를 확인할 수 있습니다.
5단계: 보안
◆ 위의 내용을 http 프로토콜 스크립트를 통해 직접 실행하지 말고 대신 https 프로토콜을 사용하세요.
◆스크립트를 비밀번호로 보호된 디렉토리에 넣으세요.
◆사용자 입력을 절대 믿지 마세요. 위의 PHP 스크립트는 단지 예일 뿐입니다. 실제 프로덕션 환경에서는 더 강력한 사용자 입력 검증 사용을 고려해야 합니다. PHP 프로그래밍의 보안에 대한 논의는 이 기사의 범위를 벗어납니다. 좋은 PHP 책을 참조하거나 즐겨찾는 검색 엔진을 사용하여 관련 웹사이트를 검색할 수 있습니다.
위에서는 unixtimestamp 내용을 포함하여 PHP를 통해 Linux나 Unix 비밀번호를 수정하는 unixtimestamp 방법을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.