প্রশ্ন কেন "chmod-R 777 /" ধ্বংসাত্মক?


এটা একটা ক্যানোনিকাল প্রশ্ন ফাইল অনুমতি এবং সম্পর্কে কেন 777 "ধ্বংসাত্মক"।

আমি এই সমস্যাটির সমাধান করতে চাই না, কারণ ইতিমধ্যে সার্ভার ফল্ট (OS পুনরায় ইনস্টল করা) এর একটি রেফারেন্স রয়েছে। কেন এটা সব ধ্বংসাত্মক কিছু না?

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


247
2018-02-28 21:25


উত্স


আমি এই প্রশ্ন দেখেছি যখন আমি আমার শ্বাস রাখা। - Alireza Savand


উত্তর:


প্রথম সব একটি ছোটখাট পরিভাষা nitpick: chmod না অপসারণ অনুমতি। এটা পরিবর্তন তাদের।


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

এখন, কেন এই খারাপ?

  1. আপনি শুধু আপনার সিস্টেমে প্রতিটি ফাইল পড়তে / সংশোধন করতে দিয়েছেন।
    • চুম্বন পাসওয়ার্ড নিরাপত্তা বিদায় (কেউ ছায়া ফাইল পড়তে এবং আপনার পাসওয়ার্ড ক্র্যাক করতে পারেন, কিন্তু কেন বিরক্ত? পাসওয়ার্ড পরিবর্তন করুন! এটা অনেক সহজ!)।
    • আপনার বাইনারি বিদায় বিদায় জন্য নিরাপত্তা Kiss (কেউ একটি নতুন লিখতে পারেন login প্রোগ্রাম যে প্রত্যেক সময় তাদের দেয়)।
    • আপনার ফাইল বিদায় বিদায়: একটি ব্যবহারকারী misdirects rm -r / এবং এটা সব শেষ। ওএস তাদেরকে তাদের যা করতে চায় তা করার জন্য বলা হয়েছিল!
  2. আপনি শুরু করার আগে ফাইলগুলিতে অনুমতি পরীক্ষা করে এমন প্রতিটি প্রোগ্রাম বন্ধ করে দিয়েছেন।
    sudo, sendmail, এবং অন্যদের একটি হোস্ট সহজভাবে আর শুরু হবে না। তারা কী ফাইলের অনুমতিগুলি পরীক্ষা করবে, তারা যা বলে অনুমিত হয় তা তারা দেখতে পাবে না এবং একটি ত্রুটির বার্তা ফেরত পাঠাবে।
    একভাবে ssh ভয়ঙ্করভাবে ভাঙ্গবে (মূল ফাইলগুলির অবশ্যই নির্দিষ্ট অনুমতি থাকতে হবে, অন্যথায় তারা "অনিরাপদ" এবং ডিফল্টভাবে এসএসএইচ তাদের ব্যবহার করতে অস্বীকার করবে।)
  3. আপনি সেটুডিও / setgid বিট মুছে ফেলা হয়েছে যে প্রোগ্রাম তাদের মুছে ফেলা হয়েছে।
    ভাব 777 এটা আসলে 0777। যে নেতৃস্থানীয় সংখ্যা জিনিস মধ্যে হয় setuid এবং setgid বিট।
    বেশিরভাগ প্রোগ্রাম যা setuid / setgid থাকে সে বিট সেটটি থাকে কারণ তাদের অবশ্যই নির্দিষ্ট বিশেষাধিকারগুলির সাথে চালানো উচিত। তারা এখন ভাঙ্গা হয়।
  4. তুমি ভেঙ্গেছ /tmp এবং /var/tmp যে নেতৃস্থানীয় অক্টাল ডিজিট যে zerooid পেয়ে অন্যান্য জিনিস sticky bit - যা ফাইল রক্ষা করে /tmp (এবং /var/tmp) যারা তাদের মালিক না দ্বারা মুছে ফেলা হচ্ছে।
    সেখানে (দুর্ভাগ্যবশত) খারাপভাবে আচরণ করা স্ক্রিপ্ট প্রচুর আছে যে একটি "পরিষ্কার" একটি করে rm -r /tmp/*, এবং স্টিকি বিট সেট ছাড়া /tmp  আপনি বিদায় যে ডিরেক্টরির মধ্যে সব ফাইল চুম্বন করতে পারেন।
    অদৃশ্য ফাইল অদৃশ্য থাকার সত্যিই কিছু খারাপভাবে লিখিত প্রোগ্রাম বিপর্যস্ত করতে পারেন ...
  5. আপনি মধ্যে বিধ্বংস ঘটেছে /dev  /proc এবং অনুরূপ ফাইল সিস্টেম
    এটি পুরোনো ইউনিক্স সিস্টেমে একটি সমস্যা যেখানে বেশি /devএকটি প্রকৃত ফাইল সিস্টেম, এবং এটি ধারণকারী উপাদান বিশেষ ফাইল তৈরি করা হয় mknod, অনুমতি পরিবর্তনগুলি রিবুট জুড়ে সংরক্ষণ করা হবে, কিন্তু আপনার ডিভাইসের অনুমতিগুলি পরিবর্তন করার যে কোনও সিস্টেমে কোনও কার্নেল প্যানিকের কম সম্ভাব্য সম্ভাব্য কারণগুলিতে সুস্পষ্ট নিরাপত্তা ঝুঁকিগুলি থেকে (প্রত্যেকটি TTY টি পড়তে পারে) উল্লেখযোগ্য সমস্যা হতে পারে।
    Credit to @Tonny for pointing out this possibility
  6. সকেট এবং পাইপ বিরতি, বা অন্যান্য সমস্যা হতে পারে সকেট এবং পাইপ সম্পূর্ণরূপে ভাঙ্গতে পারে, বা বিশ্ব-লেখার তৈরি হওয়ার ফলে দূষিত ইনজেকশন থেকে উদ্ভাসিত হতে পারে।
    Credit to @Tonny for pointing out this possibility
  7. আপনি আপনার সিস্টেমে এক্সিকিউটেবল প্রতিটি ফাইল তৈরি করেছেন
    অনেক মানুষ আছে . তাদের মধ্যে PATH পরিবেশ পরিবর্তনশীল (আপনি না করা উচিত!) - এটি একটি অপ্রত্যাশিত অবাক সৃষ্টি করতে পারে কারণ এখন যে কেউ সহজেই একটি কমান্ডের নাম হিসাবে একটি ফাইল ড্রপ করতে পারে (বলে make অথবা ls, এবং আপনি তাদের দূষিত কোড চালানোর পেয়ে একটি শট আছে।
    Credit to @RichHomolka for pointing out this possibility
  8. কিছু সিস্টেমের উপর chmod অ্যাক্সেস কন্ট্রোল তালিকা পুনরায় সেট করা হবে (ACLs)
    এর মানে আপনি সর্বত্র আপনার ACLs পুনঃ-তৈরি করার পরে সর্বত্র অনুমতিগুলি ফিক্স করতে পারেন (এবং এটি বিধ্বংসী কমান্ডের প্রকৃত উদাহরণ)।
    Credit to @JamesYoungman for pointing out this possibility

ইতিমধ্যে কি চলছে সিস্টেমের অংশ চলতে থাকবে? সম্ভবত, অন্তত একটি সময় জন্য।
কিন্তু পরের বার আপনাকে কোনও প্রোগ্রাম চালু করতে হবে, অথবা কোনও পরিষেবা পুনরায় চালু করতে হবে, অথবা স্বর্গটি REBOOT রোধ করবে যেটি আপনি # 2 ও # 3 উপরে আঘাত পেয়েছেন এমন একটি বাক্সের জন্য যে বাক্সে আছেন সেগুলি তাদের কুৎসিত মাথাগুলিকে পিছিয়ে দেবে।


335
2018-02-28 21:46



অন্তত কিছু সিস্টেমের উপর /tmp একটি রিবুট পরে সংশোধন করা হবে। যদিও অন্যান্য জিনিস প্রচুর ভাঙ্গা প্রদর্শিত হবে। অন্তত ভিএম আমি ঠিক এটি একটি রিবুট স্থির প্রদর্শিত পরীক্ষিত /tmp অনুমতি। কোথাও একটি স্টার্টআপ স্ক্রিপ্ট কিছু হতে হবে। - Zoredache
@ জর্ডেচে সিস্টেম যা ব্যবহার করে tmpfs সাধারণত নিজেদেরকে সংশোধন করে, ডিস্কগুলিতে / tmp থাকে may (তাদের স্টার্টআপ স্ক্রিপ্ট উপর নির্ভর করে) - voretaq7
Setuid এবং setgid নির্মূল করা হবে যে ইঙ্গিত জন্য +1। এটি একটি অতিশয় ধ্বংসাত্মক দৃষ্টিভঙ্গি। চলমান চেষ্টা করুন find / -perms -4000 -type f এবং find / -perms -2000 -type f এই পতাকা উপর নির্ভর করে যে বিভিন্ন বাইনারি দেখতে। - Kyle Smith
"কম foo.txt" এর মত কিছু টাইপ করা executionable বিট সেট থাকা সত্ত্বেও less.txt laying নামে একটি ফাইল কার্যকর করবে না। আপনার ডিরেক্টরীতে less.txt ডিরেক্টরি থাকতে হবে এবং আপনাকে "less.txt foo.txt" টাইপ করতে হবে - এটি আসলে একটি আপত্তিকর জিনিস নয়। এমনকি যদি আপনি শেল সমাপ্তি ব্যবহার করে থাকেন তবে এটি কম সময়ে বন্ধ হয়ে যাবে এবং আপনাকে এখনও .txt যুক্ত করতে হবে। এক্সিকিউটেবল বিট সেট দিয়ে একটি র্যান্ডম পাঠ্য ফাইল কল করতে আপনাকে ./nameoffile.txt করতে হবে। - The Real Bill
@Deji everyone ফাইলটির মালিকানাধীন ব্যবহারকারী, ফাইলের মালিক এবং যে ব্যবহারকারীরা এই মানদণ্ডের সাথে মিলিত হয় না সেগুলি সহ ব্যবহারকারীর সেট হিসাবে সংজ্ঞায়িত করা হয় (আক্ষরিকভাবে তিনটি octal অনুমতি সংখ্যা: User, Group, এবং Other)। অন্য কথায় সিস্টেম অ্যাক্সেস সঙ্গে কোনো ব্যবহারকারী। (এই প্রসঙ্গে "অ্যাক্সেস" শেল অ্যাকাউন্ট হতে পারে, যা আমি সাধারণত এটির সাথে যোগাযোগ করবো, তবে এটি একটি ওয়েব ফর্ম / CGI এর মাধ্যমে অ্যাক্সেস অন্তর্ভুক্ত করে যা ডিস্কের তথ্য লিখে: www ব্যবহারকারী এখন সিস্টেমে যে কোনো ফাইল লিখতে পারে, যার মানে এলোমেলো দর্শকরাও পারেন।) - voretaq7


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

সুতরাং সিস্টেমটি নষ্ট হয়ে গেছে তা আসলেই নয় - অনুমতিগুলি ভুল হলে এটি অনেকগুলি সরঞ্জামকে অবিলম্বে ব্যর্থ করার জন্য ডিজাইন করা হয়েছে।

যদি আপনি একটি সিস্টেম পরে একটি রিবুট chmod 777 -R / এটি বুট হবে এবং আপনি এমন প্রসেসগুলি শুরু করতে পারবেন যা স্পষ্ট অনুমতি যাচাই করে না। সুতরাং সিস্টেম সত্যিই মৃত না, কিছুটা অব্যবহারযোগ্য নকশা করে


100
2018-02-28 21:33