আমি কীভাবে বাশ স্ক্রিপ্ট কার্যকর করতে পারি যার জন্য মূল সুবিধার প্রয়োজন?


15

আমি আমার আইএসপি থেকে এই স্ক্রিপ্ট লাইন আছে:

sudo bash
echo "plugin L2TP.ppp">>/etc/ppp/options 
echo "l2tpnoipsec">>/etc/ppp/options

যদি আমি টার্মিনালে লাইন লাইন পেস্ট করি তবে এটি কাজ করে। আমি একটি *। কম্যান্ড ফাইল তৈরি করতে এবং ডাবল ক্লিক করে এটি চালাতে চাই। তবে আমি যা পাই তা হ'ল পাসওয়ার্ড প্রম্পট করা এবং তারপরে খালি বাশ উইন্ডো। ফলস্বরূপ "বিকল্পগুলি" ফাইলটি খালি।

আমি এটি চেষ্টা করেছি:

#!/bin/bash

echo "plugin L2TP.ppp">>/etc/ppp/options 
echo "l2tpnoipsec">>/etc/ppp/options

আমি পাই:

/ ইত্যাদি / পিপিপি / বিকল্পসমূহ: অনুমতি অস্বীকার করা হয়েছে

আমি মনে করি অভ্যন্তর ব্যাশ থেকে রুট সুবিধার্থে পেতে আমাকে কিছু কমান্ড ব্যবহার করতে হবে।


আপনি যখন আপনার স্ক্রিপ্টটি তৈরি করেছেন আপনি কি এটি sudo ./ispscript.command টাইপ করে সম্পাদন করেছিলেন? এছাড়াও, বাশ স্ক্রিপ্টগুলিতে সাধারণত একটি .sh প্রত্যয় থাকে: ipscript.sh।
অ্যারোন লেক

1
এফওয়াইআই এই স্ক্রিপ্টটি কেবল একবার চালানো উচিত। এছাড়াও, আপনি যদি স্ক্রিপ্টটি ঠিক তেমন চালিয়ে যান তবে এটি ফাইলটিতে যুক্ত হয় >> অপশন ফাইলটি আপনি যত বেশি চালিত করবেন (স্ক্রিপ্ট) আকারে বাড়তে চলেছে। অপশন ফাইলটি যা পড়ছে তা নিয়ে সমস্যা সৃষ্টি হতে পারে বা নাও পারে।
ধেম্প্লার

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

উত্তর:


16

আপনার তৈরি করা স্ক্রিপ্টটি নিন:

#!/bin/bash

echo "plugin L2TP.ppp">>/etc/ppp/options 
echo "l2tpnoipsec">>/etc/ppp/options

এটি আপনার হোম ডিরেক্টরিতে বা আপনার হোম ডিরেক্টরিতে একটি 'স্ক্রিপ্ট' ডিরেক্টরিতে সংরক্ষণ করুন, l2tp.sh হিসাবে as এটি কার্যকর করার অনুমতি দিন (টার্মিনালে এই কমান্ডটি লিখুন):

chmod 700 ~/path/to/l2tp.sh

Sudo (মূল অধিকার) ব্যবহার করে ফাইলটি কার্যকর করতে:

পদ্ধতি # 1। টার্মিনাল টাইপ:

$ sudo ~/path/to/l2tp.sh

পদ্ধতি # 2। এই বিষয়বস্তু সহ একটি ফাইল রান_l2tp.com ম্যান্ডেল তৈরি করুন:

sudo ~/path/to/l2tp.sh

এটি কার্যকর করার অনুমতি দিন:

chmod u+x run_l2tp.command

আপনি যখন run_l2tp.command এ ডাবল ক্লিক করেন এবং পাসওয়ার্ড প্রবেশ করেন তখন l2tp.sh ফাইলটি রুট সুবিধাগুলি দিয়ে কার্যকর করা হবে।

কিছু নোট:

  • UNIX- এর মতো সিস্টেমে, "আমার হোম ডিরেক্টরি" এর জন্য short সংক্ষিপ্ত।
  • Chmod 700 ফাইলটি কেবলমাত্র আপনার দ্বারা সম্পাদনযোগ্য করে তুলবে। আরও তথ্যের জন্য: এই উইকিপিডিয়া পৃষ্ঠাটি দেখুন
  • কমান্ডের আগে 'sudo' টাইপ করলে রুট সুবিধাগুলি ব্যবহার করে প্রোগ্রামটি কার্যকর করা হবে। এটি করার সময় সাবধানতা অবলম্বন করুন, আপনি কী করছেন তা নিশ্চিত না হলে খারাপ জিনিসগুলি ঘটতে পারে।
  • আপনি যদি সরাসরি নিজের হোম ডিরেক্টরিতে এই স্ক্রিপ্টটি সংরক্ষণ করেন তবে আপনি অবশ্যই / পথ / বাদ দিতে পারেন।

4

এটা সংরক্ষন কর:

#!/bin/bash

echo "plugin L2TP.ppp">>/etc/ppp/options 
echo "l2tpnoipsec">>/etc/ppp/options

নামের একটি ফাইল আপনার ডেস্কটপ থেকে script.sh

একটি টার্মিনাল উইন্ডো খুলুন এবং টাইপ করুন:

sudo bash ~/Desktop/script.sh

যখন জিজ্ঞাসা করা হবে তখন আপনার পাসওয়ার্ড প্রবেশ করান এবং ফাইলের সমস্ত কমান্ড সুপার ব্যবহারকারীর সাথে সম্পর্কিত হবে ges


4

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

অ্যাপলস্ক্রিপ্টটি বলে ওয়ান-লাইনার do shell script «your script's name here» with administrator privileges। অ্যাপ্লিকেশন হিসাবে সেই স্ক্রিপ্ট সংরক্ষণ করুন। তারপরে, আপনি এটিতে ক্লিক করলে, এটি আপনাকে প্রশাসকের পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে, তারপরে প্রশাসকের অধিকার সহ শেল স্ক্রিপ্টটি চালাবে।

স্পষ্টতই, «your script's name here»আপনার স্ক্রিপ্টের পথে প্রতিস্থাপন করুন।


2

সমস্যা হল যখন আপনি কমান্ড লাইন থেকে এটা করি, শুরু তুমি কি করছ হয় bashঅধীনে sudo, এবং তারপর সেই আগামী দুই কমান্ড পাঠানোর bash, মূল শেল। (আপনার exitদু'বার দরকার হওয়া সাইনটি )

আপনি যখন এটি কোনও স্ক্রিপ্টে করেন, bashকমান্ডটি কখনই প্রস্থান করে না, সুতরাং পরবর্তী দুটি কমান্ড কখনই চলবে না।

এটি অ্যাপলস্ক্রিপ্ট সমাধানের মতো মার্জিত নয়, তবে আপনি যদি কমান্ড লাইন থেকে একটি স্ক্রিপ্ট হিসাবে এটি করতে চলেছেন তবে সমতুল্য হবে:

#!/bin/sh --
sudo bash -c 'echo "plugin L2TP.ppp">>/etc/ppp/options' 
sudo bash -c 'echo "l2tpnoipsec">>/etc/ppp/options'

আমাদের যদি আইও পুনঃনির্দেশের প্রয়োজন না হয় ( >>বিট), আমরা কেবল sudoকৌশলটির প্রয়োজন ছাড়াই সরাসরি কমান্ডটি কল করতে পারি sudo sh -c। (এবং মনে রাখবেন যে sh -cএটিকে মূল হিসাবে প্রতিধ্বনি চালানো থেকে বিরত রাখতে আমার যুক্তিটি উদ্ধৃত করতে হয়েছিল, তবে ফাইলটি মূল ব্যবহারকারী হিসাবে সংযোজন করা হয়েছে))

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

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