কম্পিউটার

SHC ব্যবহার করে লিনাক্সে আপনার ব্যাশ শেল স্ক্রিপ্ট কীভাবে এনক্রিপ্ট করবেন

প্রশ্ন :আমি কিভাবে লিনাক্স পরিবেশে আমার ব্যাশ শেল স্ক্রিপ্ট এনক্রিপ্ট করব? শেল স্ক্রিপ্টে পাসওয়ার্ড রয়েছে এবং আমি চাই না যে অন্যদের এক্সিকিউট এক্সেস আছে তারা শেল স্ক্রিপ্ট দেখতে এবং পাসওয়ার্ড পেতে। আমার শেল স্ক্রিপ্ট এনক্রিপ্ট করার একটি উপায় আছে?

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

এটি বলা হচ্ছে, আপনি যদি এখনও একটি শেল স্ক্রিপ্ট এনক্রিপ্ট করার জন্য জোর দেন তবে আপনি নীচের ব্যাখ্যা অনুসারে SHC ইউটিলিটি ব্যবহার করতে পারেন। অনুগ্রহ করে মনে রাখবেন যে shc দ্বারা তৈরি এনক্রিপ্ট করা শেল স্ক্রিপ্ট সাধারণ ব্যবহারকারীদের দ্বারা পাঠযোগ্য নয়। তবে যে কেউ বুঝতে পারে যে এটি কীভাবে কাজ করে সে shc দ্বারা তৈরি এনক্রিপ্ট করা বাইনারি থেকে আসল শেল স্ক্রিপ্টটি বের করতে পারে।

SHC মানে শেল স্ক্রিপ্ট কম্পাইলার।

1. shc ডাউনলোড করুন এবং এটি ইনস্টল করুন

shc ডাউনলোড করুন এবং নীচে দেখানো হিসাবে এটি ইনস্টল করুন।

# wget https://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# tar xvfz shc-3.8.7.tgz
# cd shc-3.8.7
# make

যাচাই করুন যে shc সঠিকভাবে ইনস্টল করা আছে৷

$ ./shc -v
shc parse(-f): No source file specified

shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script

2. একটি নমুনা শেল স্ক্রিপ্ট তৈরি করুন

একটি নমুনা ব্যাশ শেল স্ক্রিপ্ট তৈরি করুন যা আপনি পরীক্ষার উদ্দেশ্যে shc ব্যবহার করে এনক্রিপ্ট করতে চান৷

পরীক্ষার উদ্দেশ্যে, আসুন আমরা নিম্নলিখিত random.sh শেল স্ক্রিপ্ট তৈরি করি যা র্যান্ডম সংখ্যা তৈরি করে। আপনি কতগুলি র্যান্ডম সংখ্যা তৈরি করতে চান তা আপনাকে নির্দিষ্ট করতে হবে৷

<কেন্দ্র>
$ vi random.sh
#!/bin/bash

echo -n "How many random numbers do you want to generate? "
read max

for (( start = 1; start <= $max; start++ ))
do
 echo -e $RANDOM
done

$ ./random.sh
How many random numbers do you want to generate? 3
24682
1678
491

3. shc

ব্যবহার করে শেল স্ক্রিপ্ট এনক্রিপ্ট করুন

নীচে দেখানো হিসাবে shc ব্যবহার করে random.sh শেল স্ক্রিপ্টিং এনক্রিপ্ট করুন।

$ ./shc -f random.sh

এটি নিম্নলিখিত দুটি ফাইল তৈরি করবে:

$ ls -l random.sh*
-rwxrw-r--. 1 ramesh ramesh 149 Mar 27 01:09 random.sh
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
-rw-rw-r--. 1 ramesh ramesh 10174 Mar 27 01:12 random.sh.x.c
  • random.sh হল আসল আনএনক্রিপ্ট করা শেল স্ক্রিপ্ট
  • random.sh.x হল বাইনারি বিন্যাসে এনক্রিপ্ট করা শেল স্ক্রিপ্ট
  • random.sh.x.c হল random.sh ফাইলের C সোর্স কোড। এই সি সোর্স কোডটি উপরের এনক্রিপ্ট করা random.sh.x ফাইলটি তৈরি করতে কম্পাইল করা হয়েছে। shc এর পিছনে পুরো যুক্তি হল random.sh শেল স্ক্রিপ্টকে random.sh.x.c C প্রোগ্রামে রূপান্তর করা (এবং অবশ্যই random.sh.x এক্সিকিউটেবল তৈরি করতে কম্পাইল করুন)
$ file random.sh
random.sh: Bourne-Again shell script text executable

$ file random.sh.x
random.sh.x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

$ file random.sh.x.c
random.sh.x.c: ASCII C program text

4. এনক্রিপ্ট করা শেল স্ক্রিপ্ট চালান

এখন, আসুন আমরা এনক্রিপ্ট করা শেল স্ক্রিপ্টটি এক্সিকিউট করি যাতে এটি আশানুরূপ কাজ করে।

$ ./random.sh.x
How many random numbers do you want to generate? 3
7489
10494
29627

অনুগ্রহ করে মনে রাখবেন যে বাইনারি নিজেই এখনও শেলের উপর নির্ভরশীল (random.sh. অর্থাৎ /bin/bash-এ দেওয়া প্রথম লাইন) স্ক্রিপ্ট চালানোর জন্য উপলব্ধ।

5. আপনার শেল স্ক্রিপ্টের জন্য মেয়াদ শেষ হওয়ার তারিখ উল্লেখ করা হচ্ছে

shc ব্যবহার করে আপনি মেয়াদ শেষ হওয়ার তারিখও উল্লেখ করতে পারেন। অর্থাৎ এই মেয়াদ শেষ হওয়ার তারিখের পরে যখন কেউ শেল স্ক্রিপ্ট চালানোর চেষ্টা করে, তারা একটি ত্রুটি বার্তা পাবে৷

আসুন আমরা বলি যে আপনি চান না যে 31-ডিসেম্বর-2011-এর পরে কেউ random.sh.x কার্যকর করুক (আমি পরীক্ষার উদ্দেশ্যে গত বছরের তারিখ ব্যবহার করেছি)।

মেয়াদ শেষ হওয়ার তারিখ নির্দিষ্ট করতে "shc -e" বিকল্প ব্যবহার করে একটি নতুন এনক্রিপ্ট করা শেল স্ক্রিপ্ট তৈরি করুন। মেয়াদ শেষ হওয়ার তারিখটি dd/mm/yyyy বিন্যাসে উল্লেখ করা হয়েছে।

$ ./shc -e 31/12/2011 -f random.sh

এই উদাহরণে, 31-ডিসেম্বর-2011-এর পরে যদি কেউ random.sh.x চালানোর চেষ্টা করে, তাহলে তারা নীচে দেখানো হিসাবে একটি ডিফল্ট মেয়াদ শেষ হওয়ার বার্তা পাবে৷

$ ./random.sh.x
./random.sh.x: has expired!
Please contact your provider

আপনি যদি আপনার নিজস্ব কাস্টম মেয়াদ শেষ হওয়ার বার্তা নির্দিষ্ট করতে চান তবে -m বিকল্পটি ব্যবহার করুন (নীচে দেখানো হিসাবে -e বিকল্পের সাথে)।

$ ./shc -e 31/12/2011 -m "Contact admin@thegeekstuff.com for new version of this script" -f random.sh

$ ./random.sh.x
./random.sh.x: has expired!
Contact admin@thegeekstuff.com for new version of this script

6. পুনরায় বিতরণযোগ্য এনক্রিপ্টেড শেল স্ক্রিপ্ট তৈরি করুন

-e, এবং -m (মেয়াদ শেষ হওয়ার জন্য), আপনি নিম্নলিখিত বিকল্পগুলিও ব্যবহার করতে পারেন:

  • -r একটি পুনঃবন্টনযোগ্য বাইনারি তৈরি করতে নিরাপত্তা শিথিল করবে যা অন্য সিস্টেমে কার্যকর করে যা একই অপারেটিং সিস্টেম চালায় যেটি এটি কম্পাইল করা হয়েছিল।
  • -T স্ট্রেস, ltrace ইত্যাদি প্রোগ্রাম ব্যবহার করে তৈরি করা বাইনারি ফাইলগুলিকে ট্রেসযোগ্য করার অনুমতি দেবে।
  • -v verbose-এর জন্য

সাধারণত আপনি নীচে দেখানো হিসাবে একটি পুনরায় বিতরণযোগ্য এবং ট্র্যাকেবল শেল এনক্রিপ্ট করা শেল স্ক্রিপ্ট তৈরি করতে -r এবং -T উভয় বিকল্প ব্যবহার করতে চাইতে পারেন৷

$ ./shc -v -r -T -f random.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc random.sh.x.c -o random.sh.x
shc: strip random.sh.x
shc: chmod go-r random.sh.x

$ ./random.sh.x
How many random numbers do you want to generate? 3
28954
1410
15234

অবশেষে, এটি আবার পুনরাবৃত্তি করা মূল্যবান:প্রথমে আপনার শেল স্ক্রিপ্টটি এনক্রিপ্ট করা উচিত নয়। কিন্তু, আপনি যদি shc ব্যবহার করে আপনার শেল স্ক্রিপ্ট এনক্রিপ্ট করার সিদ্ধান্ত নেন, অনুগ্রহ করে মনে রাখবেন যে একজন স্মার্ট ব্যক্তি এখনও এনক্রিপ্ট করা বাইনারি থেকে আসল শেল স্ক্রিপ্ট তৈরি করতে পারে যা shc দ্বারা তৈরি করা হয়েছিল৷


  1. লিনাক্সে কীভাবে সাধারণ শেল স্ক্রিপ্ট তৈরি করবেন

  2. উইন্ডোজ 10 এ ব্যাশ (লিনাক্স শেল) কীভাবে ইনস্টল ও ব্যবহার করবেন [টিউটোরিয়াল]

  3. উইন্ডোজ 10 এ কীভাবে লিনাক্স ব্যাশ শেল ইনস্টল করবেন

  4. ব্যাশ শেল PS1:অ্যাঞ্জেলিনা জোলির মতো আপনার লিনাক্স প্রম্পট তৈরি করার 10 উদাহরণ