একটি স্বয়ংক্রিয় অ্যাপ্লিকেশনটিতে একটি পাসওয়ার্ড পাস করা


9

আমি আমার সিস্টেমে একটি FTP সংযোগ খোলার জন্য নিম্নলিখিত শেল স্ক্রিপ্ট সহ একটি অটোমেটার অ্যাপ্লিকেশন লিখেছি:

sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
osascript -e 'tell app "Finder" to display alert "SFTP Opened"'

এটি sudo কমান্ডের একটি পাসওয়ার্ডের প্রয়োজন ব্যতীত প্রত্যাশা মতো ঠিক কাজ করে । টার্মিনালে যখন একই কমান্ডটি চালানো হয় তখন এটি আমাকে একটি পাসওয়ার্ডের জন্য অনুরোধ করে তবে যখন অটোমেটর অ্যাপ হিসাবে চালানো হয় তখন কোনও ইনপুট দেওয়ার জন্য আমাকে অনুরোধ জানায় না। অটোমেটর স্ক্রিপ্টের মধ্যে এই সুডোর কাছে পাসওয়ার্ড পাসওয়ার্ড দেওয়ার জন্য কি কোনও উপায় আছে? আমি জানি এটি নিরাপদ অনুশীলন নয় তবে আমি এখনও এটি করতে চাই কারণ আমার সিস্টেমটি যথাযথভাবে সুরক্ষিত এবং আমাকে ব্যতীত অন্য কারও দ্বারা অচ্ছুত।

একটি "শেল স্ক্রিপ্ট ... প্রশাসকের অধিকার সহ" পদ্ধতিটি নিম্নলিখিত ত্রুটিটি দিচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


10

অ্যাপলস্ক্রিপ্ট ব্যবহার করে এটি করতে দেওয়া উচিত with administrator privileges:

osascript -e 'do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges'

এটি পাসওয়ার্ডটি পাস করে না, তবে এটি একটি স্ট্যান্ডার্ড ওএস এক্স প্রম্পটের সাহায্যে অনুরোধ করবে:

আপনি নিম্নলিখিত দুটি উপায়ের একটিতে এটি আপনার অটোমেটার ওয়ার্কফ্লোতে ব্যবহার করতে পারেন:


1
@ এমিট ওসাস্ক্রিপ্ট বাশার জন্য :) আপনি যদি অ্যাপলস্ক্রিপ্ট অটোমেটার ক্রিয়াকলাপে খাঁটি আপেলস্ক্রিপ্ট চান, তবে ওসাস্ক্রিপ্টটিকে এইভাবে সরান: do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges( এই ছবি থেকে নিম্নলিখিতগুলির মধ্যে একটি করুন )
গ্রিগ

1
হ্যাঁ, এই মোহন মত কাজ! আপনার ধৈর্য জন্য ধন্যবাদ ... আমাকে বোকা!
TheLearner

2

আশা করা

মত পরিবর্তে আপনি একটি টুল ব্যবহার করতে পারে আশা স্ক্রিপ্টে সাথে পারস্পরিক sudoexpectএই পরিস্থিতির জন্য ডিজাইন করা হয়েছে।

প্রত্যাশা - ইন্টারেক্টিভ প্রোগ্রামগুলির সাথে প্রোগ্রামযুক্ত সংলাপ

নিম্নলিখিত দুটি শেল স্ক্রিপ্ট আপনার দুটি কমান্ডের জন্য যথেষ্ট হতে পারে:

#!/usr/bin/expect -f
spawn sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
send "my-secret-password\n"

অ্যাপলস্ক্রিপ্ট এবং প্রশাসকের সুবিধাসমূহ সহ

একটি বিকল্প পন্থা হ'ল অ্যাপলস্ক্রিপ্টের ডু শেল স্ক্রিপ্ট কমান্ডটি ব্যবহার করা। কমান্ডটি অ্যাডমিনিস্ট্রেটর সুবিধাগুলি সহ একটি বিকল্প প্রস্তাব করে। অ্যাপলের টেকনিক্যাল নোট 2065 কভারে শেল স্ক্রিপ্টটি বিশদভাবে রয়েছে।

প্রতিধ্বনি

এই সমস্যার অন্যান্য সাধারণ পদ্ধতির মধ্যে পাইপের সাহায্যে echoপাসওয়ার্ড পাসওয়ার্ড ব্যবহার করা জড়িত sudo। এই স্ট্যাকওভারফ্লো উত্তরটি এই এবং অন্যান্য সম্পর্কিত পন্থাগুলি নিয়ে আলোচনা করে, কীভাবে কোনও আদেশে পাসওয়ার্ড সরবরাহ করা যায় যা ব্যাশের জন্য অনুরোধ জানায়?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.