শেল স্ক্রিপ্টে পাসওয়ার্ড দেওয়া কি সম্ভব?


11

দীর্ঘদিন আমি এটি অনুসন্ধান করছি, আমি জানতে চাই যে শেল স্ক্রিপ্টে পাসওয়ার্ডগুলি পাস করা কি সম্ভব? অনেক উত্তর উত্তর দিয়েছিল। সম্প্রতি আমি একটি নিবন্ধ পড়েছিলাম যাতে উল্লেখ করা হয়েছে যে কীভাবে শেল স্ক্রিপ্টে পাসওয়ার্ডগুলি পাস করতে হয়। আমি চেষ্টা করেছি, কিন্তু কাজ করে বলে মনে হচ্ছে না। এই লিঙ্কটি । কেউ কি চেকআউট করে ফিরে যেতে পারবে? এছাড়াও pls বলুন আমাকে শেল স্ক্রিপ্টে পাসওয়ার্ড দেওয়ার কোনও উপায় আছে? যদি কোনও প্লিজ আমাকে বলেন না যে লিনাক্স পাসওয়ার্ডের জন্য কীভাবে ইনপুট দেয়?

উত্তর:


12

"পাসওয়ার্ড প্রবেশ করানো" দ্বারা, আপনি সম্ভবত ব্যবহারকারীর জন্য দৃশ্যমান না হয়ে ডেটা প্রবেশ করাতে চাইছেন।

(গিরিহা দ্বারা প্রস্তাবিত) বাশ ব্যবহার করার সময়, আপনি -sটাইপ করা অক্ষরগুলি প্রদর্শিত হতে আটকাতে বিকল্পটি ব্যবহার করতে পারেন :

read -p "Password please: " -s pass

বিকল্পভাবে, stty -echo(অক্ষম echo) সহ টাইপযুক্ত অক্ষরগুলি গোপন করতে টার্মিনালের আচরণ পরিবর্তন করুন । শেলটি দিয়ে অন্তর্নির্মিত readএকটি ভেরিয়েবল (নীচের উদাহরণে $pass) এর সাহায্যে পাসওয়ার্ডটি পড়ার পরে এটিটি আবার চালু করুন stty echo। যেহেতু নতুন লাইনটি এতে Enterলুকানো রয়েছে তাই আপনাকে নতুন লাইনে ভবিষ্যতের আউটপুট পেতে একটি নতুন লাইন মুদ্রণ করতে হবে।

stty -echo
read -p "Password please: " pass
stty echo
printf '\n'

readএবং printfশেল বিল্ট-ইনগুলি। ডিফল্টরূপে ইনস্টল করা প্যাকেজটি sttyসরবরাহ করে coreutils। তার মানে এই স্নিপেটটি খুব বহনযোগ্য।

দ্রষ্টব্য: -pবিকল্প মান নয়, কিন্তু থেকে bash। অন্য শেলগুলিতে আপনাকে যদি প্রম্পট প্রদর্শন করতে হয় তবে ব্যবহার করুন:

printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'

তথ্যসূত্র:


আমি কেবল স্ক্রিপ্টে রিমোট সিস্টেমের মূল পাসওয়ার্ড দিতে চাই। এটা কি আপনার ক্ষেত্রে সম্ভব?
karthick87

@ কর্থিক ৮87: না, এই স্ক্রিপ্টটি কেবল ইন্টারেক্টিভভাবে ব্যবহারকারীদের ডেটা ক্যাপচার করে। আপনি যদি স্ক্রিপ্টগুলিতে রুট পাসওয়ার্ড রাখতে চান তবে আপনি কী-বেসড লগইনগুলি বিবেচনা করবেন না?
লেকেনস্টেইন

1
লাইনের পড়ার সময় বাশের পঠনটিতে প্রতিধ্বনি নিষ্ক্রিয় করার বিকল্প রয়েছে। দেখুন help '\read'
গিরিহা

এর zshমাধ্যমে প্রাপ্তিযোগ্য read -s 'pw?Prompt text', কোথায় pwএকটি পরিবর্তনশীল যেখানে পাসওয়ার্ড স্থাপন করা হবে এবং -sইনপুট আড়াল করার জন্য এটি একটি পতাকা।
টাকরা

2

আপনি কোন প্রোগ্রামে একটি পাসওয়ার্ড পাস করতে চান?

লিঙ্কের স্ক্রিপ্টটি আমার পক্ষে কাজ করে। দ্রষ্টব্য যে শেল স্ক্রিপ্ট নয় তবে একটি প্রত্যাশিত স্ক্রিপ্ট (প্যাকেজ expectইনস্টল করার দরকার আছে)। প্রত্যাশা ব্যবহার করা পাঠ্যভিত্তিক ইন্টারেক্টিভ প্রোগ্রামগুলি স্বয়ংক্রিয় করার একটি সাধারণ উপায়।

অ-ইন্টারেক্টিভ sshলগইনগুলি প্রায়শই খালি পাসফ্রেজের সাহায্যে কী-ভিত্তিক প্রমাণীকরণ ব্যবহার করে করা হয়।

কিছু অন্যান্য প্রোগ্রামের (যেমন sudo) স্টিডিন থেকে পাসওয়ার্ড পড়ার বিকল্প রয়েছে।

কমান্ড লাইন বিকল্প হিসাবে একটি পাসওয়ার্ড সরবরাহ করা প্রায়শই একটি সুরক্ষা সমস্যা যেমন বেশিরভাগ সিস্টেমে যে কোনও ব্যবহারকারী দেখতে পাবেন যেমন সহজ সরঞ্জামগুলি ব্যবহার করে কমান্ড লাইন আর্গুমেন্ট সহ যে কোনও ব্যবহারকারী ব্যবহার করতে পারে ps


আমি কেবল ssh প্রোগ্রামে একটি পাসওয়ার্ড দিতে চাই।
karthick87

সুতরাং সম্ভবত কী প্রমাণীকরণ আপনার জন্য কাজ করে: ssh-keygenএকটি প্রমাণীকরণ কী তৈরি করতে ব্যবহার করুন (পাস বাক্যাংশ জিজ্ঞাসা করার জন্য কেবল এন্টার টিপুন) এবং এটি ব্যবহার করে এটি দূরবর্তী ব্যবহারকারীর কাছে অনুলিপি করুন ssh-copy-idkey আপনাকে একটি পাসওয়ার্ড চাইবে না
ফ্লোরিয়ান ডিয়েচ

1

একটি স্ক্রিপ্ট কখনও সত্যিই পাসওয়ার্ড হ্যান্ডেল করা উচিত। যে কোনও অ্যাপ্লিকেশনটির পাসওয়ার্ডের জন্য এটির জন্য নিজেই জিজ্ঞাসা করুন, বা যদি এটি সম্ভব না হয় তবে অ্যাপ্লিকেশনটির সাথে প্রমাণীকরণের আরও ভাল উপায় আবিষ্কার করুন। দয়া করে http://mywiki.wooledge.org/BashFAQ/069 পড়ুন


0

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

উপরের পৃষ্ঠায়, আপনাকে যা করতে হবে তা হ'ল আপনার স্ক্রিপ্ট জমা দেওয়া (আপনি নিজের মানসিক শান্তির জন্য প্রথমে একটি নমুনা স্ক্রিপ্ট জমা দিতে পারেন)। আপনার জন্য একটি জিপ ফাইল তৈরি করা হবে। ডাউনলোড লিঙ্কে ডান ক্লিক করুন এবং আপনার সরবরাহ করা URL টি অনুলিপি করুন। তারপরে, আপনার ইউনিক্স বাক্সে যান এবং নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন।

স্থাপন:

   wget link-to-the-zip-file
   unzip the-newly-downloaded-zip-file
   cd /tmp/KingLazySHIELD
   ./install.sh  /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username)  -force 

উপরের ইনস্টল কমান্ডটি আপনার জন্য কি করবে:

  1. এটি ডিরেক্টরিতে এনক্রিপ্ট হওয়া স্ক্রিপ্ট ইনস্টল করবে /var/tmp/KINGLAZY/SHIELDX-(your-script-name)

  2. এটি এই এনক্রিপ্ট হওয়া স্ক্রিপ্টের একটি লিঙ্ক স্থাপন করবে আপনার যে কোনও ডিরেক্টরিতে প্রতিস্থাপনের ক্ষেত্রে /home/(your-username)- যেভাবে, এটি আপনাকে নিখুঁত পাথ টাইপ না করে সহজেই স্ক্রিপ্ট অ্যাক্সেস করতে দেয়।

  3. কোনও স্ক্রিপ্টটি সংশোধন করতে পারে না তা নিশ্চিত করে - এনক্রিপ্ট হওয়া স্ক্রিপ্টটি সংশোধন করার যে কোনও প্রচেষ্টা এটিকে অক্ষম রেন্ডার করবে ... যতক্ষণ না সেই প্রচেষ্টাগুলি থামানো বা সরিয়ে না দেওয়া হয়।

  4. একেবারে নিশ্চিত করে যে এটির অনুলিপি কেউ তৈরি করতে পারে না। কেউ আপনার স্ক্রিপ্টকে নির্জন স্থানে অনুলিপি করতে পারে এবং এটি কীভাবে কাজ করে তা দেখতে এটির সাথে স্ক্রু করার চেষ্টা করতে পারে না। স্ক্রিপ্টের সমস্ত অনুলিপিগুলি অবশ্যই ইনস্টল করার সময় নির্দিষ্ট অবস্থানের লিঙ্কে থাকতে হবে

বিঃদ্রঃ:

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


-1

আপনি এই জাতীয় কিছু করতে পারেন।

# echo -e "password_here\npassword_here" | su user

উৎস

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