मान लीजिए कि मैं sha1pass
कमांड लाइन पर कुछ संवेदनशील पासवर्ड का हैश उत्पन्न करने के लिए उपयोग कर रहा था। मैं sha1pass mysecret
एक हैश उत्पन्न करने के लिए उपयोग कर सकता हूं , mysecret
लेकिन इसका नुकसान यह mysecret
है कि अब बैश इतिहास में है। क्या इस दिशा के अंतिम लक्ष्य को पूरा करने का एक तरीका है, जबकि mysecret
सादे पाठ में प्रकट होने से बचना , शायद passwd
-स्टाइल प्रॉम्प्ट का उपयोग करके ?
मैं किसी भी आदेश के प्रति संवेदनशील डेटा पास करने के लिए ऐसा करने के लिए एक सामान्यीकृत तरीके से दिलचस्पी रखता हूं। जब संवेदनशील डेटा एक तर्क (जैसे sha1pass
) में या एसटीडीआईएन पर कुछ कमांड में पारित किया जाता है तो विधि बदल जाएगी ।
क्या इसको मदद देने का कोई तरीका है?
संपादित करें : इस सवाल ने बहुत ध्यान आकर्षित किया और नीचे दिए गए कई अच्छे उत्तर दिए गए हैं। एक सारांश है:
- के अनुसार @ Kusalananda का जवाब , आदर्श एक एक पासवर्ड या एक उपयोगिता के लिए एक कमांड लाइन तर्क के रूप में गुप्त देने के लिए कभी नहीं होगा। यह कई मायनों में उसके द्वारा वर्णित के रूप में असुरक्षित है, और एक को एक बेहतर डिज़ाइन की गई उपयोगिता का उपयोग करना चाहिए जो STININ के गुप्त इनपुट को लेने में सक्षम है
- @ vfbsilva का उत्तर बताता है कि चीजों को बैश इतिहास में संग्रहीत करने से कैसे रोका जाए
- @ जोनाथन के जवाब में इसे पूरा करने के लिए पूरी तरह से अच्छी विधि का वर्णन किया गया है जब तक कि कार्यक्रम एसटीडीआईएन पर अपने गुप्त डेटा को ले सकता है। जैसे, मैंने इस उत्तर को स्वीकार करने का फैसला किया है।
sha1pass
मेरे ओपी में केवल एक उदाहरण था, लेकिन चर्चा ने स्थापित किया है कि बेहतर उपकरण मौजूद हैं जो एसटीडीआईएन पर डेटा लेते हैं। - @R के रूप में .. उनके उत्तर में नोट्स , एक चर पर कमांड विस्तार का उपयोग सुरक्षित नहीं है ।
इसलिए, संक्षेप में, मैंने @ जोनाथन के उत्तर को स्वीकार कर लिया है क्योंकि यह सबसे अच्छा समाधान है कि आपके पास काम करने के लिए एक अच्छी तरह से डिजाइन और अच्छी तरह से व्यवहार किया गया कार्यक्रम है। यद्यपि कमांड-लाइन तर्क के रूप में एक पासवर्ड या गुप्त गुजरना मौलिक रूप से असुरक्षित है, अन्य उत्तर सरल सुरक्षा चिंताओं को कम करने के तरीके प्रदान करते हैं।
sha1pass mysecret
चल रहा है, और इसलिए पता है कि क्याmysecret
है। (यह केवल कुछ सेकंड के लिए काम करता है, जबकि कार्यक्रम वास्तव में चल रहा है, निश्चित रूप से ...)