'무언가'를 보호하기위한 Bash (bash + md5)의 고급 스크립트 (+ 자세한 설명)

일부 일 전 나는 그들에 대해 말했다 플랫프레스, 데이터베이스를 사용하거나 매우 복잡해지지 않고도 블로그 등을 가질 수 있는 웹 애플리케이션(CMS) 

글쎄, 나는 내 노트북에 플랫프레스 개인적인 메모로는 잊어버리고 싶지 않은 일들이 있어서 이 개인 일지에 기록합니다. 하지만 많은 분들이 이미 알고 계시겠지만... 저는 보안에 대해 다소 편집증적이며, 그것이 내 생각의 보안에 관한 것이라면 제가 얼마나 편집증적일 수 있는지 여러분은 전혀 모릅니다 

그래서 저는 문제에 직면했습니다. FlatPress를 사용하여 모든 콘텐츠를 어떻게 보호 할 수 있습니까?

데이터 암호화를 허용하는 여러 응용 프로그램을 생각했지만… 내가 원하는 것을 정확히 수행하지 않았기 때문에 내가 원하는 것을 프로그래밍하는 작업을 맡았습니다.

이제 다음과 같은 작업을 수행하는 스크립트를 보여 드리겠습니다.

스크립트는 KDE에서 작업,없는 경우 KDE 대화 상자가 나타나지 않습니다.

1. KZKG ^ Gaara인지 묻는 대화 상자가 표시되고 NO를 누르면 스크립트가 닫히고 YES를 누르면 모든 것이 정상적으로 계속됩니다.

2. 암호가 무엇인지 묻는 텍스트 상자를 표시합니다.

3. 취소를 누르면 스크립트가 닫히고 이제 스크립트의 트릭 중 하나가 나타납니다 ...

3.1. 논리는 스크립트가 우리가 작성한 비밀번호를 동일한 스크립트 내에 이미 사전 정의된 비밀번호와 비교하고, 비밀번호가 일치하면 계속 실행되고, 비밀번호가 일치하지 않으면 오류 메시지가 표시된다는 것입니다. 문제는, 그렇게 스크립트 안에 올바른 비밀번호를 넣으면, 텍스트 편집기로 스크립트를 여는 사람은 누구나 정확한 비밀번호를 아주 명확하게 볼 수 있다는 것입니다... 그리고 친구 여러분, 이것은 단순히 용서할 수 없는 실패입니다 

3.2. 이와 같은 암호를 스크립트에 일반 텍스트로 넣는 것을 피하기 위해 MD5를 사용했습니다. 즉, 스크립트 시작 부분에서 올바른 비밀번호가«2dac690b816a43e4fd9df5ee35e3790d«, 그리고 이것은 다음의 MD5입니다 :«desdelinux«. ... 나는 아무것도 이해하지 못한다 !! …

좀 더 자세히 살펴 보겠습니다. 이제 파일 ( ~ / pass.txt)의 텍스트 : desdelinux

터미널에 다음과 같이 씁니다. md5sum ~ / pass.txt

나에게 돌아올 것입니다. 2dac690b816a43e4fd9df5ee35e3790d sum

그리고 ... 보시다시피, 명백한 순서없이 많은 숫자와 문자가있는 첫 번째 열은 위에서 입력 한 것과 동일하며 선언 된 스크립트에있는 열입니다.

첫 번째 열은 MD5입니다. desdelinux

다음을 입력하면 관심있는 첫 번째 열만 반환됩니다. md5sum ~/pass.txt | awk '{print $1}'

4. 따라서이 특정 부분의 스크립트 작업은 다음과 같습니다.

4.1. 스크립트는 작성한 암호를 임시 파일에 넣습니다. 임시.txt, 그리고 다음 명령을 사용하여 해당 파일의 내용에서 MD5를 추출합니다.

md5sum temp.txt | awk '{print $1}'

4.2. 방금 작성한 암호의 MD5가 정의한 암호 (즉, 스크립트에 작성된 암호)와 동일하지 않으면 닫히고 오류가 발생합니다.

4.3. 비밀번호가 일치하면 완벽합니다... 스크립트가 계속됩니다 

5. 비밀번호가 일치하면 스크립트가 일련의 단계를 수행합니다. 제 경우에는 다음과 같습니다.

5.1. 폴더에 들어갑니다. / 집 / 공유 / 호스팅 / - » cd / 집 / 공유 / 호스팅 /

5.2. FlatPress 폴더는 "me"라고하며 암호로 보호 된 .RAR로 압축되어 있으므로 (암호는 이전에 설정해야하는 것과 동일 함) 스크립트가 해당 파일 (me.rar)의 압축을 풉니 다.-» rar x me.rar -hp $ MWORD

랄엑스 -»이 기능은 동일한 순서로 파일과 폴더의 압축을 푸는 것입니다.

나.rar -»압축을 풀고 싶은 파일입니다.

-hp $ MWORD -»파일의 압축을 풀려면 암호를 사용해야하며 암호는 $ MWORD 변수입니다 (이 변수는 이전에 입력 한 암호입니다).

5.3. 따라서 압축이 잘 풀렸다면 me.rar 파일을 삭제합니다. 이유는 무엇입니까? 내부에있는 파일로 작업하는 경우 .rar가 존재한다는 것이 이해가되지 않고 파일이 작성 중이기 때문에 변경되고 있기 때문입니다. 블로그의 새로운 기능-» 나한테 연락해.rar

5.4. 모든 것이 제대로 작동하려면 권한을 변경해야합니다.-» chmod 777 -R me / (me / 폴더가 압축 된 me.rar를 포함하고 있음을 기억하십시오)

5.5. ""브라우저를 열 수있는 시간이 10 초라는 메시지가 표시됩니다. WTF !, 이것은 무엇을 의미합니까? ...

5.5 (a). 간단해요, 아주 간단해요… … 브라우저를 엽니다(이 경우에는 레콘크) 새 게시물을 작성하고 있지만 브라우저를 닫으면 스크립트가 me / 폴더를 .rar (me.rar에 남아 있음)로 다시 압축합니다.

이것은 스크립트가 Rekonq가 열려 있는지 여부를 3 초마다 확인하기 때문에 가능하며, 열려 있음을 감지하면 스크립트는 아무 작업도 수행하지 않지만 열려 있지 않음을 감지하면 다음을 실행합니다. rar a me.rar -hp $ MWORD me / * && rm -R me /

즉, 폴더를 압축합니다. 나를/ en 나.rar (그리고 그것은 우리가 이미 본 것과 같은 암호를 넣을 것입니다) 압축하고 오류가없는 경우 폴더를 삭제합니다. 나를/ 모든 콘텐츠와 함께.

5.5 (b). 이것이 우리에게 어떻게 도움이 됩니까? …간단합니다. 콘텐츠 작업을 중지하고(브라우저 닫기) 스크립트가 나머지 모든 작업을 수행하므로 콘텐츠를 다시 보호해야 한다는 점을 기억할 필요가 없습니다. 

6. 준비, 일반적인 방법으로 모두 설명했습니다 

… 또 다른 세부 사항이 있지만 

스크립트에는 훨씬 더 강력한 보호 기능이 있으며 비활성화 된 (주석 처리 된) 보호 기능은 다음과 같습니다.

if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi

그것이하는 일은 간단합니다. $ USER 변수는 터미널에 다음을 입력하는 경우 시스템의 전역 변수입니다.

echo $USER

당신은 당신의 사용자가 당신에게 보여준 것을 보게 될 것입니다. 음,이 라인들의 논리는 간단합니다.

$ USER가 $ ME 변수와 일치하지 않는 경우 (스크립트에서 내가 선언했으며 "gaara") 스크립트는 모든 파일을 삭제합니다. .sh 즉, 자체 파괴됩니다 

이것은 다른 사람이 다른 컴퓨터에서 스크립트를 실행하는 것을 방지하기위한 것입니다.

그리고 설명 할 것이 더 많지 않다고 생각하며 스크립트를 남깁니다.

.SH 파일 다운로드
붙여 넣기의 스크립트를 참조하십시오.

나는 많은 사람들이 그것을 매우 복잡하다고 생각하지만 실제로는 생각보다 더 무섭다는 것을 알고 있습니다. 스크립트는 단순한 목적을 위해 정말 간단한 작동 논리를 가지고 있습니다.

나는 내 매우 구체적인 요구 사항을 충족하기 위해 이 작업을 수행했으며 여기에 설명된 다른 라인이나 아이디어가 누군가에게 유용할 수 있기를 바라며 공유합니다 

그건 그렇고, 스크립트가 표시하는 대화 상자 (창)는 KDE (KDialog 사용)에서 왔기 때문에 KDE 용이지만 Gnome / Unity / Cinnamon / Mate를 사용하여 조정할 수 있습니다. 제 니티, 또는 단순히 dialog 명령을 사용하여 터미널에서 100 % 사용하십시오.

그리고 예, 스크립트에는 여전히 몇 가지 결함이 있습니다. 예를 들어 스크립트가 .rar의 압축을 푼 다음 누군가가 스크립트를 강제로 닫으면(종료) .rar의 콘텐츠가 보호되지 않으며 아직 다듬어야 할 세부 사항이 있습니다. … 하지만 누구도 우리 컴퓨터를 확인할 수 없도록 해야 합니다 

마지막으로, 나는 프로그래머가 아니라는 점을 명확히 하고 싶습니다. 나는 프로그래머라고 생각하지 않습니다. 코드의 줄을 최적화하거나 스크립트 작업을 개선하기 위해 일부 기능을 사용할 수 있다고 상상합니다... 하지만 말했듯이 저는 프로그래머가 아닙니다 

이에 대해 궁금한 점이 있으면 알려주십시오. 스크립트가 필요하지 않기 때문에 유용하지 않을 수도 있지만 언제든지 스크립트에서 다른 팁을 배울 수 있습니다 

안부

PD : 알아 엘라 브 그는 내가 너무 편집증 적이거나 ... 시간을 낭비한다고 말할 것입니다. 그러나 그것은 그렇지 않습니다. 저는 매우 구체적인 무언가를 원했고 매우 구체적인 보안 시스템을 원했고 직접 프로그래밍했습니다. 얼마나 괴상한가요? … LOL !!