KINIT का उपयोग कर केबरोस टिकट बनाने के लिए मैं ऑटोमेटर का उपयोग कैसे कर सकता हूं?


2

मैं अपने मैकबुक प्रो के लिए एक kerberos टिकट उत्पन्न करने में सक्षम होने की जरूरत है हर बार मशीन पुनरारंभ होता है। टिकट बनाने के लिए मैं अपने क्रेडेंशियल के साथ मैन्युअल रूप से KINIT चला सकता हूं। उस प्रक्रिया को स्वचालित करने का सबसे अच्छा तरीका क्या है?


1
क्या kinitआपकी ओर से किसी मैनुअल इनपुट की आवश्यकता है?
nohillside

वास्तव में हाँ। यह मुझे एक पासवर्ड के लिए संकेत देता है।
tlatkovich

का उपयोग कर सकते हैं --password-fileआप के लिए एक विकल्प हो सकता है? अन्यथा इसे स्वचालित करना मुश्किल होगा।
nohillside

मुझे पासवर्ड दर्ज करने में कोई आपत्ति नहीं है। मैं बस किसी तरह के आइकन (आइकन या कीबोर्ड) के माध्यम से एक स्क्रिप्ट निष्पादित करना चाहता हूं जो टर्मिनल ऐप को खोलता है, अपने डोमेन पैरामीटर के साथ KINIT कमांड चलाता है और मुझे एक पासवर्ड दर्ज करने के बिंदु पर ले जाता है। अगर स्क्रिप्ट मेरे लिए पासवर्ड दर्ज कर सकती है, तो और भी बेहतर।
tlatkovich

जवाबों:


2

आप "रन शैल स्क्रिप्ट" क्रिया का उपयोग करके एक स्वचालित अनुप्रयोग (या सेवा) के अंदर शेल कमांड को आसानी से पैकेज कर सकते हैं। हालांकि, यह एक गैर-संवादात्मक शेल में कमांड चलाएगा (इंटरएक्टिव और गैर-संवादात्मक गोले के बीच अंतर के स्पष्टीकरण के लिए, उन्नत बैश स्क्रिप्टिंग गाइड के प्रासंगिक खंड को देखें - सीधे शब्दों में कहें, आपके पास टर्मिनल तक पहुंच नहीं होगी पासवर्ड प्रॉम्प्ट के लिए, और यदि आपको kinitइसकी जानकारी नहीं है, तो आपकी स्क्रिप्ट लटकाएगी)। इसके आसपास दो तरीके हैं:

  1. script टर्मिनल .app को सीधे निष्पादित करने के बजाय अपनी कमांड निष्पादित करने के लिए। उस स्थिति में, आपको निम्न कमांड वाले "Run AppleScript" कार्रवाई की आवश्यकता होगी:

    tell application "Terminal" to do script "kinit <options>"

    जो दिए गए कमांड को चलाने के लिए एक नया टर्मिनल टैब खोलेगा।

  2. उपयोग kinitके --password-fileविकल्प और आपके कार्य की, यानी अंदर यह पासवर्ड पारित

    echo <password> | kinit --passwordfile=STDIN <options>

    वर्कफ़्लो के अंदर सादे पाठ में अपना पासवर्ड संग्रहीत करने से बचने के लिए, आप इसे सुरक्षित रूप से ओएस एक्स कीचेन में संग्रहीत कर सकते हैं और इसे वहां से पुनः प्राप्त कर सकते हैं। यद्यपि एक शेल स्क्रिप्ट के माध्यम से संभव है (टेक्स्टमैट ब्लॉग में यह विवरण है कि इसे कैसे प्राप्त किया जाए - टिप्पणियों को पढ़ना सुनिश्चित करें), ऐसे बहुत से गोच हैं जो कि मैं AppleScript और डैनियल जलकुट के उत्कृष्ट उपयोग करने योग्य कीचिंग स्क्रिप्टिंग ऐप का उपयोग करने की सलाह दूंगा । एक बार स्थापित होने के बाद, AppleScript के निम्नलिखित बिट आपके पासवर्ड को फिर से प्राप्त करेंगे (यह मानते हुए कि खाता नाम "kinit" है):

    tell application "Usable Keychain Scripting" to get password of first generic item of current keychain whose account is "kinit"

    या तो इसे osascriptशेल कमांड में लपेटें , अर्थात

    passphrase=$(osascript -e '<command above>')

    या, जैसा कि आप ऑटोमेटर का उपयोग कर रहे हैं, एक AppleScript कार्रवाई जोड़ें, इसके अंदर पासफ़्रेज़ पुनः प्राप्त करें और इसे शेल स्क्रिप्ट में पास करें।


धन्यवाद Kopischke! ऑटोमेटर और स्क्रिप्टिंग सिंटैक्स के ins और बहिष्कार पर गति प्राप्त करने में मुझे थोड़ा समय लगा। आपके लिए धन्यवाद मैं एक ऑटोमेकर ऐप बनाने में सक्षम था जो मेरे लिए एक केर्बरोस टिकट बनाता है। मैंने अपने लॉगिन आइटम में ऐप जोड़ा है इसलिए यह हर बार मेरे लॉगिन पर चलेगा। Booyah!
tlatkovich

2

बस में झंकार करना चाहता हूँ; मैं अपने पासवर्ड कीचेन में नहीं डाल रहा था, इसलिए मैंने एक उपयोगकर्ता के संकेत पर एक त्वरित ऐप्लस्क्रिप्ट लिखी:

on run {input, parameters}
tell application "System Events"
    set the_username to do shell script "whoami"
    set the_password to "password"
    display dialog "Enter password" default answer "password" buttons {"OK", "Cancel"} default button "OK" with icon 2 with title "SLAC Kerberos" with hidden answer
    set the_password to text returned of the result
end tell
return {the_username, the_password}
end run

बेशक, आप शायद डोमेन को अपने उपयोगकर्ता नाम में भी डालना चाहते हैं। और फिर, शेल स्क्रिप्ट से आप कुछ ऐसा कर सकते हैं:

echo $2 | kinit --password-file=STDIN $1

क्या अच्छा होगा कि गलत पासवर्ड आदि की जाँच के लिए शेल स्क्रिप्ट के आउटपुट फॉर्म की जाँच की जाए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.