2010-03-27 9 views
6

नीचे दी गई स्क्रिप्ट मैक ओएस एक्स पर काम करने के लिए प्रयुक्त होती है, लेकिन, इसे उबंटू में ले जाने के बाद, यह पासवर्ड फ़ाइल से बिल्कुल प्रतीत नहीं होता है। यहां तक ​​कि जब मैं इसे कमांड लाइन से चलाता हूं, इससे कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मुझे एक पॉपअप प्रॉम्प्ट मिलता है जो मुझे पासवर्ड के लिए पूछता है। चूंकि यह क्रॉन के माध्यम से चलाएगा, मैं नहीं चाहता कि यह हो ... मैं चाहता हूं कि फ़ाइल से पासवर्ड को कोई प्रॉम्प्ट न हो। ध्यान दें करने के लिए, मैं का उपयोग कर पदबंध-fd और पदबंध-फ़ाइल, न की जो काम किया ...जीएनयूपीजी शैल स्क्रिप्ट - पासवर्ड पढ़ने से इनकार करते हैं

#!/bin/sh 
p=$(<pass.txt) 
set -- $p 
pass_phrase=$1 
destination="/var/www/decrypted" 
cd /var/sl_bin/ 
for FILE in *.pgp; 
do 
    FILENAME=${FILE%.pgp} 
    gpg --passphrase "$pass_phrase" --output "$destination/$FILENAME" --decrypt "$FILE" 
    rm -f $FILE 
done 

उत्तर

0

आपकी समस्या शायद उस $passphrase मान शून्य होगा की कोशिश की थी। उबंटू sh पर dash पर सिम्लिंक किया गया है जो बैश करता है (लेकिन कोई त्रुटि जारी नहीं करता है) $(<file_name) को समझ में नहीं आता है।

आप करने के लिए अपने कुटिया बदल सकते हैं: अगर आप पट्टी की कोशिश कर रहे

#!/bin/bash 

या का उपयोग $(cat pass.txt)

इसके अलावा, क्यों, दूसरे तीसरे और चौथे लाइनों ?: pass_phrase=$(<pass.txt) (या pass_phrase=($(<pass.txt)) गठबंधन नहीं फ़ाइल में पहले "शब्द" के अलावा सभी को बंद करें)।

Your previous question

0

उपयोग

#!/bin/bash 

या

#!/usr/bin/env bash 

#!/bin/sh

अपने पास वाक्यांश समस्या के रूप में करने के बजाय अपने पहली पंक्ति के रूप, तो आप शायद चाहिए टी कुछ स्वचालित तंत्र का उपयोग करने के लिए आरई। जानकारी के लिए जीपीजी दस्तावेज की जांच करें। मैं जीजीपी का उपयोग नहीं करता, लेकिन आप gpg-agent देख सकते हैं।

0

दो समाधान (पहले एक मेरी समस्या ;-) हल)

  • http://www.roguedaemon.net/rephrase/
  • GPG --passphrase-एफडी का उपयोग करता --passphrase नहीं

    गूंज yourpw | GPG --passphrase -fd 0 --output out.txt -d file.txt

0

आप पासवर्ड संकेत मिल रहे हैं क्योंकि आपहैपरिवर्तनीय सेट (यदि आप स्क्रिप्ट को रद्द करने पर क्लिक करते हैं तो फ़ाइलों को डिक्रिप्ट करना जारी रहेगा)। DISPLAY क्रॉन वातावरण में सेट नहीं किया जाना चाहिए, तो आप शायद इसे अनदेखा कर सकते हैं, लेकिन यह सुनिश्चित करने या स्क्रिप्ट की शुरुआत करने के लिए जोड़

unset DISPLAY 

कमांड प्रॉम्प्ट से स्क्रिप्ट का परीक्षण कर सकेंगे या चलने से पहले क्रियान्वित।

इसके अलावा $(<file) सिंटैक्स का उपयोग करने में सक्षम हो, जिसे आप बदलना

#!/bin/sh 

को
#!/bin/bash 

आप --passphrase विकल्प जो बहु उपयोगकर्ता सिस्टम पर अपना पासवर्ड का खुलासा करने के लिए ले जा सकता है का उपयोग कर से बचना चाहिए की जरूरत है। आप इसके बजाय --passphrase-file का उपयोग कर सकते हैं। यहाँ कैसे मैं अपनी स्क्रिप्ट बदल जाएगा है:

#!/bin/sh 
PASSFILE=$(pwd)/pass.txt 
destination="/var/www/decrypted" 
cd /var/sl_bin/ 
for FILE in *.pgp; 
do 
    FILENAME=${FILE%.pgp} 
    gpg --passphrase-file $PASSFILE --output "$destination/$FILENAME" --decrypt "$FILE" 
    rm -f $FILE 
done 

वर्तमान निर्देशिका बदलने से पहले पासवर्ड फ़ाइल का स्थान बचाने के लिए, मैं PASSFILE चर में यह बचा लिया।

3

--passphrase-file विकल्प टूटा हुआ/सम्मानित नहीं लगता है।

cat .password | gpg --passphrase-fd 0 --output foo --decrypt foo.gpg 
+0

हाँ, मैं नहीं --passphrase-फ़ाइल काम करने के लिए या तो, जबकि -passphrase-fd काम मिल सकता है। – Zitrax

+0

यह '--no-use-agent --batch' के साथ संयुक्त कार्य करता है। दिलचस्प बात यह है कि '--passphrase' उन दो विकल्पों के बिना काम करता है। –

0

--archive जोड़ने --passphrase-file

0

से पासवर्ड को पढ़ने के लिए आप चाहिए उपयोग करने के लिए: मैं बहुत तरह के बजाय --passphrase-fd 0 उपयोग करने के लिए, था

gpg --batch --passphrase-fd 1 --passphrase-file your_password_file -c your_file_to_encript.txt 
2

उपयोग विकल्प --no-उपयोग-एजेंट। यह आपको विकल्प --passphrase का उपयोग करने से संकेत नहीं देगा।

2

यदि आप मानक इनपुट के माध्यम से फ़ाइल को आपूर्ति नहीं करना चाहते हैं (उदाहरण के लिए, क्योंकि आप इसे गिट जैसे अन्य कमांड में प्लग कर रहे हैं, जो मानक इनपुट के माध्यम से हस्ताक्षर करने के लिए सामग्री की आपूर्ति करना चाहता है), तो आप दूसरे का उपयोग कर सकते हैं फ़ाइल वर्णनकर्ता:

gpg --passphrase-fd 3 <your command here> 3< pass.txt 
5

यह काम करता है:

gpg --no-use-agent --batch --passphrase-file pass.txt --output kkkk.tar.bz2 --decrypt kkk-data.tar.bz2.gpg 
संबंधित मुद्दे