কমান্ড লাইন সুরক্ষা কৌশল [বন্ধ]


34

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

ঝুঁকিপূর্ণ কমান্ডগুলি চালনার আগে আমার কিছুটা আচার-অনুষ্ঠান রয়েছে - যেমন সার্ভারটি চালু છું তার ট্রিপল টেক চেক করার মতো। এখানে আরএম সুরক্ষা সম্পর্কিত একটি আকর্ষণীয় নিবন্ধ

কোন সামান্য আচার, সরঞ্জাম এবং কৌশল কমান্ড লাইনে আপনাকে সুরক্ষিত রাখে? এবং আমি উদ্দেশ্যমূলক জিনিসগুলি বোঝাতে চাইছি, "প্রথম রান এলএস ফু * এর মতো, এর আউটপুটটি দেখুন এবং তারপরে আরএম-আরএফের সাথে এলএসের বিকল্প ব্যবহার করুন যাতে আরএম-আরএফ ফু * বা এরকম কিছু" চালানো এড়ানো যায় না ", এটি নিশ্চিত না যে আপনি কী জানেন কমান্ড করবে "।


3
"দ্য বিগিনিং ইন দ্য কমান্ড লাইন" রেফারেন্সের জন্য +1 cryptonomicon.com/command.zip
এভেরি পেইন

এটি কি কোনও সম্প্রদায়ের উইকির প্রশ্ন নয়? অনুমোদিত বা সম্পূর্ণ একটি উত্তর নেই।
বিল ওয়েইস

উত্তর:


45

ভাল কাজ করে এমন একটি হ'ল প্রোড / স্টেজিং / টেস্ট সার্ভারগুলির জন্য আপনার শেলের বিভিন্ন পটভূমি রঙগুলি ব্যবহার করা।


6
হ্যাঁ, এবং যখনই আপনার মূল গোছা থাকে উজ্জ্বল চিৎকার লাল বা কমলা ব্যবহার করুন।
অ্যাডাম ডি'আমিকো

1
লগইন করার সময় রিমোট মেশিন টার্মিনালের রঙ স্বয়ংক্রিয়ভাবে আলাদা করার কোনও উপায় আছে কি? জিনোম ব্যবহার করা - সম্ভবত এটি একটি পৃথক প্রশ্ন হওয়া উচিত।
জোনা

2
কেবলমাত্র একটি স্যুইচ স্টেটমেন্ট রয়েছে যা মেশিনের হোস্টনামের উপর নির্ভর করে আপনার PS1 পরিবর্তনশীল পরিবর্তন করে changes
নিল

2
যেকোন উইন্ডোজ ভাবার জন্য, সিসিন্টার্নাল থেকে এই রত্ন রয়েছে যা ওয়ালপেপারে হোস্টের তথ্য বিশিষ্টভাবে প্রদর্শন করবে। টেকনেট.মাইক্রোসফট.ইন- ইউএস
সিসিন্টারনালস_

হ্যাঁ হ্যাঁ হ্যাঁ - আমার প্রতিরোধের জন্য আমার প্রযোজনা আইসারি সেশনটি এখন লালচে সাদা: pwrdwnsys বিকল্প (* আইএমএমইডি) পুনঃসূচনা (* হ্যাঁ)
পিটার টি। ল্যাকম্ব জুনিয়র

14

আপনি শুরু করার আগে একটি ব্যাক আউট পরিকল্পনা মনে রাখবেন।

  • এখনই ফাইল / ডিরেক্টরি মুছে ফেলার পরিবর্তে জিপ আপ করুন
  • (সিসকো) রাউটারটি 'x' মিনিটের সংখ্যায় রিবুট করতে সেট করুন এবং এখনই 'শেঁড়ি' করবেন না
  • নিশ্চিত হয়ে নিন যে আপনি যে ইন্টারফেসটি পরিবর্তন করছেন সেটি আপনি সিস্টেমে প্রবেশ করেছেন not এটি আপনি যে রাউটার ইন্টারফেসে টেলনেট করতে চান বা ইথারনেট পোর্ট ভিএনসি'তে থাকতে পারে এটি হতে পারে।
  • 'রুট' হিসাবে কখনও লগইন করবেন না
  • একটি ব্যাকআপ করুন। এটি ভাল কিনা তা পরীক্ষা করুন। অন্য একটি তৈরি করুন।
  • আপনার বিশ্বাসী এমন কাউকে জিজ্ঞাসা করুন 'আমি কি এখানে বোবা কিছু করব?'

3
+1 সিসকো আইওএস কাজ না করা অবধি সংরক্ষণ করে না। আমি অ্যামিগা দিনগুলি মনে করি যখন সমস্ত ওএস ডায়ালগগুলিতে "ব্যবহার", "সংরক্ষণ" এবং "বাতিল" ছিল - যেখানে "ব্যবহার" কেবলমাত্র সেটিংস প্রয়োগ করে কিন্তু পরবর্তী পুনরায় বুটের জন্য সেগুলি সংরক্ষণ করে না। এটি অত্যন্ত কার্যকর ছিল!
ওসকার ডুভোর্ন

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

1
"5 এ পুনরায় লোড করুন" এর জন্য +1। যখন আমার এসিএল পরিবর্তন আমাকে একটি রিমোট রাউটার / সুইচ থেকে লক করে ফেলেছে তখন আমার বাট কয়েকবারেরও বেশি বার সেভ করেছে।
গ্রেগ ওয়ার্ক

শেষ পয়েন্টের জন্য +1 - স্যানিটি পরীক্ষা। করা সহজ, এবং তারপরে কমপক্ষে আপনার দু'জনের মধ্যে যে কোনও সমস্যা রয়েছে তা সমাধানের জন্য স্বার্থযুক্ত আগ্রহী ব্যক্তি পেয়েছেন;)
অ্যাশলে

10

এগুলির কয়েকটিতে আমার কাছে একটি স্বল্প প্রযুক্তির সমাধান রয়েছে।

আমি নিম্নলিখিতগুলি করার মূল অভ্যাসটি বিকাশ করেছি (যখন রুট হিসাবে কাজ করার পরিকল্পনা করছি):

  • প্রথমে সাধারণ ব্যবহারকারী হিসাবে লগ ইন করুন, তারপরে sudo su - rootরুটে স্যুইচ করতে ব্যবহার করুন। আমি এটি একটি মানসিক প্রস্তুতি হিসাবে করি, এটি আমার মনে করিয়ে দেয় যে আমি মানসিকভাবে একটি খুব বিপজ্জনক অঞ্চলে চলে এসেছি এবং আমাকে সর্বদা সতর্ক এবং আমার প্রহরী থাকা উচিত। মজার যেমন শোনাচ্ছে, এই সামান্য একা অনুষ্ঠান আমাকে সংরক্ষণ কেবল পুনর্বহাল যে বিষাদ একটি টন আছে আমি উদ্বেগহীন হতে পারে না
  • প্রতিটি কমান্ড টাইপ করা হয় তবে [রিটার্ন] কী কখনও চাপানো হয় নাকখনই না
  • নেই কমান্ড কি কখনো বুঝে মৃত্যুদন্ড কার্যকর ঠিক কি না। এটি কী করে না জেনে যদি আপনি এটি করছেন তবে আপনি নিজের সিস্টেমের সাথে রাশিয়ান রুলেট খেলছেন ।
  • আগে [প্রত্যাবর্তন] কী টিপে কমান্ডের সাহায্যে যে CLI আউট প্রচন্ড আঘাত পেয়েছি হয় সাবধানে চক্ষু দ্বারা পরীক্ষা করা হয়। কোনও দ্বিধা, সম্ভাব্য ইস্যুতে কোনও ইঙ্গিত থাকলে তা আবার পরীক্ষা করা হয়। যদি সেই দ্বিধা অব্যাহত থাকে, কমান্ডটি লাইনে ছেড়ে যায় এবং আমি অন্য পৃষ্ঠাগুলির সাথে পরামর্শ করার জন্য অন্য কনসোলে Alt-F2 ছেড়ে যাই etc.
  • কোনও সাধারণ ব্যবহারকারীকে sudoআমার সিস্টেমে হস্তান্তর করা হয় না, কারণ আমি একজন বিওএফএইচ নয় , তবে প্রস্তুতি এবং প্রশিক্ষণ ছাড়াই এটি একটি বানরকে বোঝাই বন্দুক দেওয়ার মতো। এটি প্রথমে মজাদার এবং মজাদার, যতক্ষণ না বানরটি পিপাটি নীচে দেখায় এবং চেপে ধরে ...

আরএম ব্যবহার cdকরার সময় আমি সর্বদা ডিরেক্টরিতে প্রথমে যাই , তবে ./ডিরেক্টরিটি সঠিক কিনা তা নিশ্চিত করার জন্য একটি উপসর্গ ব্যবহার করি

cd /usr/some/directory ; rm ./targetfile

অথবা আমি ফাইলটির পুরো পথ নির্দিষ্ট করে দিয়েছি

rm /usr/some/directory/targetfile

যা পিঠা কিন্তু ... দুঃখিতের চেয়ে নিরাপদ।


1
আমি কেবলমাত্র কমান্ডের পূর্বনির্ধারিত তালিকার জন্য অ্যাডোচি 2 পুনরায় লোডের জন্য সুডো দিই। অন্যথায়, ব্যবহারকারীদের আমার মাধ্যমে যেতে হবে। এটি পাছায় ব্যথা হলেও 15 জনের ডেভবক্স চালানোর জন্য এটি সেরা প্রতিরক্ষা।
আর্টেম রাশাকোভস্কিই

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

আপনার sudo -i এর পরিবর্তে sudo -i ব্যবহার করা উচিত এবং সাধারণত নির্দিষ্ট কমান্ড চালানোর জন্য sudo ব্যবহার করা একটি ফায়ার বিট নিরাপদ।
ল্যাপটপ 6006

আপনি যদি রিটার্ন কীটি কখনও আঘাত না করেন তবে আপনি কীভাবে এই আদেশটি কার্যকর করবেন?
ছ।

1
&& তোমার বন্ধু! সিডি / ইউএসআর / কিছু / ডিরেক্টরি করার চেয়ে; rm ./targetfile আপনার সিডি / ইউএসআর / কিছু / ডিরেক্টরি &&mm ./targetfile উচিত সিডি ব্যর্থ হলে আপনি কখনই আপনার মূল ডিরেক্টরিতে rm'ing টার্গেটফাইলে বাধা দিতে পারবেন না। যদিও সম্পূর্ণ পাথ আরএম করা আরও ভাল।
মাইক জি।

10

এটি উইন্ডোজ পাওয়ারশেলের সাথে নির্দিষ্ট।

নীতি হিসাবে আমরা প্রতিটি সার্ভারে নিম্নলিখিত মেশিন প্রোফাইল.ps1 যুক্ত করি। এটি নিশ্চিত করে যে নিম্নলিখিতগুলি সত্য:

  1. অ্যাডমিন পাওয়ারশেল কনসোল উইন্ডোগুলির একটি গা dark় লাল পটভূমি রঙ রয়েছে
  2. প্রশাসক শিরোনামে যুক্ত করা হয়
  3. "সতর্কতা: পাওয়ারশেল প্রশাসক হিসাবে চলছে" বার্তাটি। শুরুতে লেখা আছে
  4. শিরোনাম বারটি "প্রশাসক:" এর সাথে উপসর্গযুক্ত
  5. স্ট্যান্ডার্ড ইউটিলিটিগুলি (কর্পোরেট শেল স্ক্রিপ্টগুলির মতো, ভিম এবং ইনফোজিপ) পথে রয়েছে।
$ কারেন্টপ্রিন্টালাল = নতুন-অবজেক্ট সিকিউরিটি। প্রিন্সিপাল। উইন্ডোজপ্রিন্সিপাল ([সিকিউরিটি। প্রিন্সিপাল। উইন্ডোজ আইডেন্টিটি] :: গেটকন্টেন্ট ())
&
    যদি ($ বর্তমানপ্রিন্সিপাল.আইএসআইনরোল ([সিকিউরিটি.প্রিন্সিপাল. উইন্ডোজস বিল্টইনরোল] :: অ্যাডমিনিস্ট্রেটর))
    {
        (Get হোস্ট) .UI.RawUI.Backgroundcolor = "DarkRed"
        স্পষ্ট হোস্ট
        লিখিত-হোস্ট "সতর্কতা: পাওয়ারশেল প্রশাসক হিসাবে চলছে ``n"
    }

    ities ইউটিলিটিস = $ নাল
    যদি ([ইন্টিপিটিআর] :: আকার * 8 -প্রাপ্ত 64)
    {
        $ host.UI.RawUI.WindowTitle = "উইন্ডোজ পাওয়ারশেল (x64)" 
        $ ইউটিলিটিস = "$ {এনভি: প্রোগ্রামফায়ালস (x86) \ til ইউটিলিটিস"
    }
    আর
    {
        $ host.UI.RawUI.WindowTitle = "উইন্ডোজ পাওয়ারশেল (x86)"
        $ ইউটিলিটিস = "$ {এনভি: প্রোগ্রামফিলস} til ইউটিলিটিস"
    }
    যদি ((টেস্ট-পাথ $ ইউটিলিটিস) -আর! (v এনভি: পথ-ম্যাচ $ ইউটিলিটিস R রিপ্লেস ("\", "\\"))))
    {
        $ env: path = "$ ইউটিলিটিস; $ {env: পাথ:"
    }
}

ফাংশন প্রম্পট
{
    যদি ($ বর্তমানপ্রিন্সিপাল.আইএসআইনরোল ([সিকিউরিটি.প্রিন্সিপাল. উইন্ডোজস বিল্টইনরোল] :: অ্যাডমিনিস্ট্রেটর))
    {
        যদি (! $ host.UI.RawUI.WindowTitle.StartsWith ("প্রশাসক:"))
        $ $ Host.UI.RawUI.WindowTitle = "প্রশাসক:" + $ হোস্ট।
    }
    'পিএস' + $ (যদি ($ নেস্টেড প্রম্পটলেভেল -ge 1) {'>>'}) + '>'
}

এটি দুর্দান্ত - আমি আশা করি আপনি আপনার সার্ভারগুলিতে লিনাক্সের মধ্যে খুব সহজেই এমন কিছু করতে পারেন।
জেসন টান

1
পাওয়ারশেলে এটি সম্পাদনা করে সম্পন্ন করা হয় sh pshome / profile.ps1 (মেশিন প্রোফাইল)। আপনি /etc/.bash_profile এ লিনাক্সের সমতুল্য কিছু করতে পারবেন না কেন?
ব্রায়ান রিটার

2
পরিবর্তনের জন্যও দরকারী $ "মিডিয়াম" (কনফার্মপ্রেফারেন্স অফ মিডিয়াম) (ডিফল্ট উচ্চ থেকে) এবং আরও অনেক কিছুই নিশ্চিতকরণের জন্য অনুরোধ করবে।
রিচার্ড

6

আমি উপরের সমস্ত উত্তরগুলির সাথে একমত হতে পারি তবে আমাকে এই খুব, খুব গুরুত্বপূর্ণ টিপকে জোর দিতে হবে:

মাল্টিটাস্কিং কখন এড়াতে হবে তা জানুন।


5

আমি নিশ্চিত করছি যে সিস্টেমটিতে আমি আছি তার হোস্ট-নেম বাশ (বা অন্য শেল) প্রম্পটে রয়েছে। যদি আমি আঁকিয়ে থাকি তবে আমি নিশ্চিত হয়েছি যে এটি এটি কোনওভাবে এখানে তৈরি করে।

আমি একবার অন্য লাইভ লিনাক্স ডিস্ট্রোর মধ্যে থেকে জেন্টু সিস্টেমটি ইনস্টল করেছিলাম এবং ভুলভাবে rmশেলের মধ্যে দুর্ঘটনাক্রমে একটি বরং ধ্বংসাত্মক কমান্ডটি (এটি এটিএম - এর কিছু বৈকল্পিক ) স্মরণ করতে পারি না , যার ফলে লাইভ সিস্টেমে একগুচ্ছ স্টাফ তৈরি হয়েছিল causing মুছে ফেলা হয়েছে, ক্রুটের মধ্যে থেকে স্টাফের চেয়ে। তারপর থেকে, আমি সবসময় করেছি

export PS1="(chroot) $PS1"

যখনই আমি একটি ক্রুটের মধ্যে কাজ করতাম।


1
+1 - এছাড়াও, আমি প্রম্পটে বর্তমান ওয়ার্কিং ডিরেক্টরি (বা এর শেষ এন স্তরগুলি, যদি আপনি গভীরভাবে নেস্টেড ফাইল সিস্টেমে কাজ করছেন) পাওয়া সহায়ক বলে মনে করি।
মুরালি সুরিয়ার

সরকারী জেন্টু হ্যান্ডবুকটি ঠিক তেমন পরামর্শ দেয়, যখন সরাসরি তৈরি হওয়া জেন্টুতে লাইভ সিডি থেকে ক্রুটিং করা হয়!
সিডি 1

সিডি 1: হ্যাঁ, তবে x86 দ্রুত ইনস্টল গাইড ( ভদ্রলু । তবে এখন আমি এটি প্রতিবিম্বিতভাবে করি :)
টিম

5

সার্ভার পরিবর্তন করার আগে সচেতন হওয়ার জন্য কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে :

  • নিশ্চিত করুন যে আমি সঠিক সার্ভারে আছি

  • ** এই ক্রিয়া দ্বারা কত লোক ক্ষতিগ্রস্থ হবে সে সম্পর্কে সচেতন হন * (যদি আপনি ভুল করেন বা না করেন)

  • 'এন্টার' কী টাইপ করার আগে, পূর্বাবস্থায় ফেলার সম্ভাবনা সম্পর্কে সচেতন হন

  • নিজেকে জিজ্ঞাসা করুন যে এই আদেশটি আপনার অধিবেশন সংযোগ বিচ্ছিন্ন করার সম্ভাবনা রয়েছে (fw নিয়ম, খারাপ শাটডাউন, ইত্যাদি ...)। নিশ্চিত হয়ে নিন যে আপনার ফিরে আসতে ব্যর্থ হয়েছে (বিশেষত যদি আপনি অফসাইট হন)


4

আপনি যদি ইতিমধ্যে এটির না করে থাকেন তবে rm -i এর সাথে উপনামের নাম


7
না না না না. এটি আপনি করতে পারেন এমন একটি খারাপ কাজ। একদিন আপনি নিজেকে এমন একটি বাক্সে পেয়ে যাবেন যাতে এটির কোনও বিকল্প নেই বা আপনি কোনওভাবে আমাদের vর্ষাকে ট্র্যাশ করেছেন। পরিবর্তে আরএম -i ব্যবহার করতে শিখুন।
ওলে

না না না না. এই কর। একদিন আপনি ঘটনাক্রমে ভুল কাজটি করবেন এবং নিজেকে বাঁচাতে পারবেন। প্রায়শই আপনি লাইনে আই-টি রাখতে ভুলে যাবেন এবং ভুল জিনিসটি মুছুন এবং মুছুন।
জেরুব

আমি যদি কখনও একাধিক মেশিনে কাজ করি তবে আমি এটি করব না ... নতুন মেশিনটি সেট আপ না হওয়া পর্যন্ত কাজ করা বড় চ্যালেঞ্জ।
স্লোভন

ভয়ানক বিষয়টি হ'ল @olle এবং @ জেরুব উভয়ই সঠিক। হতে পারে PS1 তে কিছু, সম্ভবত রঙিন, পতাকা
লাগানো

4

বিধি 1 - ব্যাকআপ নিন

বিধি 2 - কখনও কখনও স্ট্যান্ডার্ড কমান্ডগুলিতে "মলি গার্ড" র‌্যাপার যুক্ত করুন না, নিজের সংস্করণ তৈরি করুন, নিশ্চিত করুন, তবে নামটি গ্রহণ করবেন না, আপনি যখন সেট আপ করেন নি এমন সিস্টেমে থাকবেন তখন কেবল আপনাকে কামড় দেবে।

মূলের জন্য আলাদা বর্ণের এবং (আংশিক) ডিরেক্টরি গাছের মতো প্রম্পট কৌশলগুলি দুর্দান্ত সহায়ক, তবে আবারও নিশ্চিত করুন যে এগুলি ছাড়া আপনি কাজ করতে পারেন।


আমি "মলি গার্ড" কি এমন শব্দটি আগে শুনিনি?
জেসন ট্যান


4

এটি পাল্টা স্বজ্ঞাত এবং কম 'আরডকোরের মতো মনে হতে পারে তবে আমার কাছে সেরা কমান্ড-লাইন সুরক্ষা টিপ হ'ল: যদি কোনও জিইউআই-মোড বিকল্প পাওয়া যায় এবং ব্যবহারিক হয়, তবে এটি ব্যবহার করুন

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

ভয়ঙ্কর "আরএম-আরএফ" এর ক্লাসিক ক্ষেত্রে, আপনি কি মনে করেন যে এটি কোনও ঘটনাক্রমে কোনও জিইআইআই বা সিএলআই থেকে প্রকাশ করা সহজ?

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


3

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

জিনিসগুলিকে কিছুটা আরও সুরক্ষিত করার জন্য আপনার ~ / .Bashrc এ রাখতে পারেন এমন কয়েকটি জিনিস রয়েছে যেমন:

alias srm='rm -i'

আপনাকে আরএমের একটি নিরাপদ বিকল্প থাকতে দেয়, ...

তবে শেষ পর্যন্ত, আপনি সবসময় স্ক্রু করতে পারেন এবং করতে পারেন। অন্য দিন আমার একটি ডিফল্ট কনফিগার স্ক্রিপ্টটি বেশ কয়েকটি জিনিস ভঙ্গ করে আমার পুরো / usr / বিন ফোল্ডারটি ছড়িয়ে দিয়েছে। হ্যাঁ, কোনও বাগ সহ যে কোনও ধরণের সফ্টওয়্যারটির একটি সাধারণ 'মেক ইনস্টল' আপনার সিস্টেমকে ভেঙে দিতে পারে। আপনি যা করেন না কেন আপনি কখনও নিরাপদ নন। আমি যা পাচ্ছি তা হ'ল সবচেয়ে গুরুত্বপূর্ণ বিষয়:

নিয়মিত ব্যাকআপ রাখুন।


2
আবার- ALIAS "rm" কখনও করবেন না। অবশেষে যখন আপনি এমন কোনও সিস্টেমে কাজ করেন যেখানে এটির কোনও আবশ্যকতা নেই।
নিরবতা

একজন খুব খারাপ ধারণা। আপনি কি কখনো ম্যাক OS X (হয়তো অন্য প্ল্যাটফর্মে?) নিজেকে খুঁজে পান, তাহলে srmহয় নিরাপদ অপসারণ !
মুরগ্যান্ট

3

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


2

নিশ্চিত হয়ে নিন যে আপনি কখনই কমান্ডটি চালাচ্ছেন না আপনি অনলাইনে সন্ধান পাবেন যদি না তারা সম্পূর্ণরূপে বুঝতে পারে যে তারা কী করছে।

আপনার সিস্টেমটি পোস্টারের চেয়ে আলাদা হতে পারে এবং এটি বিশ্বকে আঘাতের কারণ হতে পারে।


2

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

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


2

আপনি যে মেশিনে কাজ করছেন তার মধ্যে একটি গৌণ সংযোগ থাকা আপনার প্রাথমিক অধিবেশনটি মেরে ফেললে, বা লক করে রাখা এমন কিছু করার মতো হ'ল কার্যকর হতে পারে ... ভারী প্রক্রিয়াজাতকরণ ইত্যাদি etc.

এই পদ্ধতিতে এখনও আপনার মেশিনে অ্যাক্সেস রয়েছে এবং এটি আপনার প্রাথমিক সেশনটি মেরে ফেলতে পারে।

উপরের মন্তব্যগুলির বেশিরভাগই আরএমকে বোঝায়, তবে আমি অন্যান্য কমান্ডগুলি দিয়েও কিছু বোকা কাজ করেছি ...

নেটওয়ার্কটি নামানোর জন্য ifconfig - আউট, এটি ঠিক করার জন্য শারীরিক উপস্থিতি প্রয়োজন।

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

ব্যক্তিগতভাবে, আমি rm -i সত্যিই সাহায্যের মতো বিষয়ের জন্য অতিরিক্ত অনুরোধগুলি পাই না। আমি আমার বেশিরভাগ ভুলগুলি যখন ভি। ক্লান্ত, স্ট্রেস ইত্যাদিতে করি তখন এমন সময়গুলি হয় যখন আমি কেবল y- কে আঘাত করি এবং যেভাবে প্রম্পট উপেক্ষা করব। খারাপ অনুশীলন সম্ভবত।


2

আপনি যদি ব্যাশ ব্যবহার করেন তবে এটি ব্যবহার করে দেখুন:

TMOUT=600

আপনার /root/.bashrcবা অনুরূপ। এটি আপনাকে 10 মিনিটের পরে স্বয়ংক্রিয়ভাবে লগ আউট করে, আপনি দুর্ঘটনাক্রমে খোলা রেখে কোনও মূ .় কিছু টাইপ করে এমন কোনও রুট টার্মিনালে চলে যাবেন এমন সম্ভাবনা হ্রাস করে।

হ্যাঁ, আমি জানি আপনার মূল কমান্ডগুলি কার্যকর করতে sudo ব্যবহার করা উচিত - আপনি যদি একদিন ঝুঁকিপূর্ণ খেলতে চান তবে এটি কেবলমাত্র একটি অতিরিক্ত সুরক্ষা জাল।


2
# Allow only UPDATE and DELETE statements that specify key values
alias mysql="mysql --safe-updates"`

আপনি যদি কখনও মাইএসকিএল সিএলআই ব্যবহার করেন তবে তার আশেপাশে থাকার জন্য একটি উচ্চ প্রস্তাবিত নাম।


1

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


1

আমি *যখনই সম্ভব সম্ভব তার যুক্তি হিসাবে গ্লোব এড়ানো । এমনকি যদি আমি সত্যিই "এই ডিরেক্টরিতে থাকা সমস্ত কিছু মুছে ফেলুন" বোঝাতে চাই না তবে আমি আরও নির্দিষ্ট হওয়ার চেষ্টা করি, অর্থাত্। rm *.php। আমি দুর্ঘটনাক্রমে অন্য ডিরেক্টরিতে ইতিহাসের বাইরে একই কমান্ডটি চালাতে পারলে এটি প্রাকৃতিক ক্ষতি নিয়ন্ত্রণ।


আমি "সিডি দির; আরএম-আরএফ *" কখনই শিখিনি, তবে সর্বদা "আরএম-আরএফ ডির", যতটা সম্ভব সুনির্দিষ্ট।
স্লোভন

1

আপনি যা করছেন সে সম্পর্কে আপনাকে ভাবিয়ে তোলার একটি দুর্দান্ত উপায় হ'ল রুটের বাশার্কে (সিএসসিআরসি, যাই হোক না কেন) এর মতো কিছু যুক্ত করা:

unset PATH

এইভাবে, আপনি কেবল "আরএম" এর পরিবর্তে / বিন / আরএম করতে হবে। এই অতিরিক্ত অক্ষরগুলি আপনাকে ভাবিয়ে তুলতে পারে।


ঠিক আছে, আমি এই আদেশটি কোথায় চালাতে চাই? which $COMMANDআর কাজ করে না
কেভিন এম

/ usr / বিন / সনাক্ত locate আদেশ?
বিল ওয়েইস

আরও ভাল, / usr / বিন / সনাক্তকারী -r / M কম্যান্ড $
বিল ওয়েইস

1

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

এটি এজেন্ট ম্যানুয়ালি যুক্ত করার পক্ষেও কার্যকর যা রেজেক্স বাছাই করে নি।


1

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

তবে তারপরে আমি পূর্ববর্তী কমান্ডটি পুনরুদ্ধার করতে, এবং পরিবর্তন করতে শেলটির কমান্ড ইতিহাস সম্পাদনা বৈশিষ্ট্যগুলি ব্যবহার করি কেবলমাত্র অংশগুলি ।

এগুলি প্রতিটি আদেশ স্বতন্ত্রভাবে টাইপ করতে মোটেই সহায়তা করে না ...

$ ls *.bak
$ echo rm *.bak
$ rm * .bak

... কারণ আমি ঘটনাক্রমে শেষ লাইনে একটি স্থান টাইপ করেছি এবং সমস্ত ফাইল মুছে ফেলেছি। আমি সর্বদা পূর্ববর্তী লাইনটি পুনরুদ্ধার করে কেবল 'প্রতিধ্বনি' সরিয়ে ফেলতাম।


1

রুট ব্যবহারকারী:
আপনার যদি না হয় তবে রুট হবে না।
যদি বিক্রেতা বলে যে এটির মূল হিসাবে চালানো দরকার, তাদের বলুন যে আপনি গ্রাহক এবং আপনি এটি অ-মূল হিসাবে চালাতে চান।
শেল্ফের বাইরে থাকা কতগুলি সফ্টওয়্যার প্যাকেজগুলি 'কেবল সহজ কারণ' এর মূলটি চায়?

অভ্যাস:
কখনও কখনও * * 'অপসারণের সাথে তিনবার না দেখে ব্যবহার করবেন না ls -l টার্গেটপ্যাটার্ন ব্যবহার করার অভ্যাসটি তৈরি করা ভাল , তারপরে' আরএম! use 'ব্যবহার করুন। সবচেয়ে বড় হুমকি হ'ল আপনি যেখানে আছেন বলে মনে করছেন। আমি প্রায়শই 'হোস্ট নেম' টাইপ করি যতবার 'এলএস'!

ক্র্যাচস:
একটি স্ট্যান্ডার্ড প্রম্পট অনেকটা সহায়তা করে, যেমন "ওরফে আরএম = 'আরএম-আই'" এর মতো উপকরণ যেমন হয় তবে আমি প্রায়শই যে মেশিনগুলিতে থাকি তার উপর আমার সম্পূর্ণ নিয়ন্ত্রণ থাকে না তাই আমি একটি প্রত্যাশা ব্যবহার করি কেবল আপনার পথ নির্ধারণের র‌্যাপার স্ক্রিপ্ট '-i' দিয়ে প্রম্পট, এবং উপাধিগুলি

সমস্যাগুলি সন্ধান করুন:
একটি সম্পূর্ণ পথ ব্যবহার করা সাহায্য করে, তবে এটি সম্ভব না হলে, সিডি আরও নিরাপদ স্থানে প্রবেশ করুন এবং ALSO '&&' ব্যবহার করে নিশ্চিত করুন যে আপনি 'সিডি' সফল হওয়ার আগে আপনার সন্ধান, অপসারণ, টান, আনটার, ইত্যাদি:
উদাহরণস্বরূপ: cd /filesystema && tar cf - | ( cd /filesystemb && tar vxf -)
'&& 'এর ব্যবহার এক্ষেত্রে নিজের উপর থেকে একটি টার ফাইল আনতে বাধা দিতে পারে (যদিও এই ক্ষেত্রে' rsync 'আরও ভাল হবে)

মুছে ফেলা:
বিশেষত স্ক্রিপ্টে যদি আপনি এটির সহায়তা করতে পারেন তবে পুনরাবৃত্তির সাথে সরান না। টাইপ চ এবং নাম 'প্যাটার্ন' দিয়ে সন্ধান করুন এবং মুছে ফেলুন আমি এখনও জার্সগুলিকে 'কিছুই না' খাওয়ানোর ভয়ে বেঁচে থাকি ... চারপাশে জিনিস সরানোর জন্য টার এবং আনতার (পরিবর্তে আরএসসিএনসি ব্যবহার করুন)


1

আপনি যদি কোনও অপারেটিং সিস্টেমের একাধিক রূপ ব্যবহার করেন তবে সিনট্যাক্সের পার্থক্য সম্পর্কে খুব সচেতন হন; এক ইউনিক্স বৈকল্পিকের মধ্যে যা যুক্তিযুক্তভাবে নিরাপদ তা অন্যটিতে অত্যন্ত বিপজ্জনক।

উদাহরণ: কিল্ল

লিনাক্স / ফ্রিবিএসডি / ওএসএক্স - পাস হওয়া প্যারামিটারের সাথে মিলে সমস্ত প্রক্রিয়া মেরে ফেলে। উদাহরণস্বরূপ: "কিল্লাল এপাচি" সমস্ত অ্যাপাচি হত্যা করে, অন্যান্য সমস্ত প্রক্রিয়া একা রেখে।

সোলারিস - সমস্ত প্রক্রিয়া হত্যা করে। সত্যিই না. থেকে man পৃষ্ঠা : জন্য killall সমস্ত সক্রিয় প্রসেস সরাসরি শাটডাউন প্রক্রিয়া এর সাথে সম্পর্কিত নয় মারতে শাটডাউন (1M) দ্বারা ব্যবহৃত হয়।


আমি পূর্ববর্তী নিয়োগকর্তার ব্যাকআপ সার্ভারে শিখেছি। এটি যখন রাতের টেপগুলি চলছিল। আউ।
বিল ওয়েইস

1
আপনি সিলারিস এবং লিনাক্সের জন্য কাজ করে তার পরিবর্তে পিল ব্যবহার করতে পারেন।
জেসন টান

0

পরিবর্তে

rm foo*

ব্যবহার

rm -i foo*

এটি মুষ্টিমেয় ফাইলের সাথে ব্যবহারিক, তবে একটি সম্পূর্ণ টারবাল বলে না। সে কারণেই এলিয়াসিং rmআপনার পথে আসবে।


-f স্যুইচটি এর জন্য: কোনও পূর্ববর্তী -i সুইচগুলিকে ওভাররাইড করে। আপনি যদি এটি আপনার .bash_profile বা অনুরূপ শেল-ইনিশিয়ালাইজেশন স্ক্রিপ্টে রাখেন তবে আপনাকে এটি নিয়ে চিন্তা করতে হবে না। আপনি এটি করতে চান তা নিশ্চিত করুন, তবে এটি আগে বলা হয়েছিল এবং আরও স্পষ্টভাবে।
কেভিন এম

0

প্রথমে প্রতিধ্বনি দিয়ে কমান্ডটি চালানো ভাল ধারণা, তবে এটি এখনও টাইপসের ঝুঁকিতে রয়েছে।

! As এর মতো একটি এক্সপেনশন দিয়ে এটি ব্যবহার করে দেখুন $

echo foo*
rm -rf !$

! The শেষ কমান্ডের শেষ শব্দের দিকে প্রসারিত হয়, সুতরাং এটি সমান

echo foo*
rm -rf foo*

এছাড়াও আছে!

আপনি যদি চান তবে প্রকৃতপক্ষে আপনি এটি করতে পারেন

echo rm -rf foo*
!*

(আপনি যদি bsh ব্যবহার না করে ksh ব্যবহার করছেন তবে এর পরিবর্তে আপনি শেষ শব্দটি সন্নিবেশ করতে Esc + পিরিয়ড টাইপ করতে পারেন))


Esc চাপুন + +। বাশে কাজ করে।
ওলে

0

যেমন কিছু ক্ষেত্রে:

ls *। php
ইকো আরএম * .পিএফপি
আরএম * .এফপি

আপনি এর মতো বিকল্প অপারেটরটি ব্যবহার করতে পারেন:
s ls *। Php
<dir list>

cho ^ ls ^ ইকো আরএম (এটি পূর্ববর্তী কমান্ডে এলএসকে প্রতিস্থাপন করে ইকো আরএমের মাধ্যমে, কমান্ডের বাকী অংশটি একই রেখায় রেখে দেবে)

cho cho ইকো আরএম ^ আরএম (ইকো আরএমকে কেবল আরএম দিয়ে প্রতিস্থাপন করুন, আপনাকে * .এফপি টাইপ করতে হবে না এবং ভুল সময়ে একটি স্পেসে ফেলে দিতে হবে)

with = শিফট -6, যার সাথে এটি পরিচিত নয় for


Ick। আমি বরং আমার তীরচিহ্নগুলি ব্যবহার করব এবং পূর্ববর্তী লাইনটি সম্পাদনা করব। এইভাবে আমি দেখতে পাচ্ছি যে প্রতিস্থাপনের ধরণটি সঠিকভাবে পাওয়ার জন্য অন্ধভাবে বিশ্বাস না করে আমি এন্টার টিপলে কী আদেশটি চলতে চলেছে।
মারিয়াস গেডমিনাস 10'11

উদাহরণস্বরূপ, "ইকো আরএম * .এফপি" এর পরে আপনি <Up>< হোম> <অল্ট-ডি> এবং তারপরে <প্রবেশ করুন> করুন।
মারিয়াস গেডমিনাস 10'11

0

ব্যাশ ব্যবহার করুন এবং PS1 = '\ u @ \ h: \ w>' সেট করুন। এটি ব্যবহারকারীর নাম @ হোস্টনেম: / পুরো / ওয়ার্কিং / ডিরেক্টরি / পাথ> তে প্রসারিত হয়েছে যেমন অন্যান্য উত্তরে উল্লিখিত হয়েছে, আপনি যখন প্রফাইলে বা .bash_profile ফাইল আপডেট করতে না পারেন তবে আপনি যখনই লগ ইন করবেন তখন পরিবেশ সেট আপ করার প্রত্যাশা ব্যবহার করতে পারেন। পটভূমির রঙ পরিবর্তন করা সহজ: যদিও :-)


-1

অই হ্যাঁ. "-Rf" নামের আইআরসি মাধ্যমে কাউকে ফাইল প্রেরণের সেই বয়সী কৌশলটি যাতে এটি তাদের ~ ডিরেক্টরিতে শেষ হয়। পরে "আরএম--আরএফ" পরিবর্তে "একটি সামান্য" আরএম-আরএফ "এবং প্রচুর হাসির কারণ তারা আইআরসিটিকে রুট হিসাবে চালনা না করার বিষয়ে কঠোর পাঠ শিখেছে।


রফএল ফ্যাক্টরের জন্য +1
ডেভিড জেড

তাহলে কীভাবে "আরএম-আরএফ" আপনাকে ক্ষতি করতে পারে, তাই না?
কুবানচেক

সম্ভবত ফাইলটির নামকরণ হয়েছে "-rf *"?
মারিয়াস গেডমিনাস

-1

ব্যবহার করার পরিবর্তে rm -rf <dir>করা -rfতাই মত শেষে: rm <dir> -rf। আপনি লক্ষ্য করার পরে এবং আগুন নেভানোর আগে এটিকে সুরক্ষা অপসারণ হিসাবে ভাবেন। ডিরেক্টরির নাম টাইপ করার সময় আপনার যদি কী কী স্লিপ থাকে (বা ট্যাব সমাপ্তি ব্যবহার করে) এবং একইভাবে নামের ডিরেক্টরি থাকে তবে আপনি সুরক্ষিত হন।

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