2011-03-07 2 views
0

나는 암호를 읽는 방법 만 알고있다. 하지만 파일에 대해 사용자가 입력 한 암호를 설정하는 방법에 문제가 있습니다. 나는 단지 멀리 갔다. 도와주세요 : 나는 당신이 오해하지 않는 경우UNIX/LINUX를 사용하여 파일에 암호를 저장하려면 어떻게합니까?

if [ -d "$1" ] 
then 
    #reads password 
    read -s -p "Enter Password: " password 
    stty -echo 
    stty echo 
    echo "" 
    echo "" 
    #checks whether the password is valid or not 
    echo $mypassword" == "$PASS" ] && echo "Password accepted" || echo "Access denied" 
else 
    echo "Directory not found." 
fi 
+4

정확한 질문은 무엇입니까? UNIX/Linux는 일반적으로 rwxrwxrwx 형식의 파일 액세스 제어 만 사용합니다. 사용자 계정은 파일에 대한 액세스 권한을 결정하는 유일한 요소입니다. – MSalters

+0

MSalters 주석을 확장하려면 파일 또는 파일 시스템을 암호화/해독하기 위해 사용하는 메커니즘을 말해야합니다. 그런 다음에 만 암호 (또는 해쉬)가 어떻게 저장되는지 알 수 있습니다. 이 질문에 대한 답을 모른다면 시스템에 용량이 내장되어 있지 않을 수도 있습니다. 당신은 당신 자신의 것을 굴려야 할 것입니다. 그리고 그것은 * 전체가 웜의 깡통입니다. – dmckee

답변

1

는이 같은 것을 시도 :

#!/bin/bash 

EXPECTED_PASS="FooBar" 

if [ -d "$1" ] 
then 
    read -s -p "Enter Password: " password 
    stty -echo 
    stty echo 
    echo "" 
    echo "" 

    #Save password to a temporary file 
    echo "${password}" > /tmp/password.txt 

    #Load password from file 
    password=`cat /tmp/password.txt` 

    if [ "${password}" == "${EXPECTED_PASS}" ] 
    then 
     echo "Access granted" 
    else 
     echo "Access denied" 
    fi 


else 
    echo "Directory not found." 
fi 

은 보통 일반 텍스트로 암호를 저장하는 것은 좋은 생각이 아니다. 암호화하거나 더 해시 작업을 수행하는 것이 좋습니다.

EXPECTED_PASS=`echo "FooBar" | md5sum | cut -f1 -d" "` 
... 
#Save password to a temporary file 
echo "${password}" | md5sum | cut -f1 -d" " > /tmp/password.txt 

#Load password from file 
password=`cat /tmp/password.txt` 

희망이 있습니다.

감사합니다.

+0

사용자가 입력 한 비밀번호를 저장하는 방법을 보여줄 수 있습니까? – Penguin

+0

대단히 감사합니다 !! – Penguin

+0

@ 펭귄 : 왜 * redent84가 패스워드를 저장하는 라인을 제안했는지 이해하고 있습니까? 특히'md5sum'의 목적과 나중에 일치하는 사용자를 확인하는 방법을 이해하고 있습니까? – dmckee

관련 문제