এটি সম্ভবত rm
কমান্ডটি সম্পর্কে নাও থাকতে পারে , যেহেতু ফাইলগুলি ব্যবহার না করে মুছে ফেলার সহজ উপায় রয়েছে । যদি সমস্যাটি হ'ল আপনার বন্ধুরা অনিচ্ছাকৃতভাবে rm
কমান্ডটির অপব্যবহার করছে , তবে সেই সমাধানগুলি বিশেষভাবে সেই আদেশের ব্যবহারকে সীমাবদ্ধ করে বা এটি অন্যভাবে কাজ করার কারণ হিসাবে কিছুটা সহায়ক হতে পারে। বিপরীতে, যদি সমস্যাটি হয় যে আপনার বন্ধুরা ইচ্ছাকৃতভাবে আপনার ডেটা এমনভাবে আচরণ করছে যা আপনি চান না, তবে আপনাকে প্রকৃত সুরক্ষা ব্যবস্থাগুলি প্রয়োগ করতে হবে এবং rm
কমান্ড নিজেই কেন্দ্রীভূত করার কোনও সমাধান নেই (বা কোনও পৃথক কমান্ডের সেট) আপনাকে সুরক্ষিত রাখবে
আপনার কি অ্যাক্সেস নিয়ন্ত্রণ করতে হবে, বা কেবল সৎ ভুল প্রতিরোধ করতে হবে?
আপনার বন্ধুরা ধরে নিচ্ছেন যে আপনি তাদের ফাইলগুলি মুছতে চান না তা দুটি সম্ভাবনা রয়েছে:
তারা উদ্দেশ্য করে এটি করা হতে পারে। এই দৃশ্যে আপনার বন্ধুরা আপনার ফাইলগুলি ইচ্ছাকৃতভাবে মুছে ফেলছে এবং তারা যখন আপনার কম্পিউটারটি ব্যবহার করবে তখন তারা কীভাবে আপনার ডেটা ব্যবহার করবে সে সম্পর্কে আপনার ইচ্ছাগুলি মেনে চলার চেষ্টা করার জন্য আপনি তাদের বিশ্বাস করতে পারবেন না । এই সমস্যার একমাত্র সমাধান হ'ল প্রকৃত কার্যকর সুরক্ষা ব্যবস্থা ব্যবহার করা , যেমন থমাস ওয়ার্ড বিশদভাবে ব্যাখ্যা করেছেন । প্রায়শই সর্বোত্তম মাপ হল আপনার কম্পিউটার ব্যবহার না করা। তবে তাদের নিজস্ব ব্যবহারকারীর অ্যাকাউন্টগুলি ব্যবহার করা কিছু সুরক্ষা সরবরাহ করতে পারে।
তারা ভুল করে এটি করতে পারে। এই দৃশ্যে আপনার বন্ধুরা অত্যন্ত দুর্ঘটনার ঝুঁকির শিকার হয় এবং তারা rm
কমান্ডগুলি চালিয়ে যায় যা তারা ইচ্ছা করে না। তারা আপনার সাথে এবং আপনার ডেটার সাথে শ্রদ্ধার সাথে চিকিত্সা করতে চায় তবে বাস্তবে এটি করা খারাপ because কারণ তারা ভুল কমান্ড চালিয়ে চলেছে, ভুল ফাইলটি মুছে ফেলছে ... বা এ জাতীয় কিছু। যদিও এটি বিশ্বাস করা ভাল লাগবে যে এটি ঘটছে, তবুও আমি আপনাকে ধরে নেওয়ার বিরুদ্ধে সতর্ক করে দিচ্ছি যে লোকেরা আপনার ডেটা মুছে ফেলার কথা বলার পরেও তারা আপনার ইচ্ছামত কাজ করা বন্ধ করে দিয়েছে operating
তদুপরি, যদি তাদের উদ্দেশ্যগুলি ভাল হয় তবে তাদের পৃথক ব্যবহারকারী অ্যাকাউন্ট দেওয়া আপনার ফাইলগুলি মুছে ফেলা থেকে বিরত রাখার সবচেয়ে বোকামি উপায়, তাদের কম্পিউটার ব্যবহার না করার অনুমতি ব্যতীত।
তাহলে অবস্থা সত্যিই # 2 - আপনার বন্ধু না চেষ্টা আপনার ফাইল মুছে ফেলতে কিন্তু শুধু সাহায্যের প্রয়োজন ঘটনাক্রমে সেগুলি মুছে ফেলা হলে, এবং একমাত্র উপায় তারা কখনও ঘটনাক্রমে তাদের মুছে (যেমন কমান্ড একটি ছোট সংখ্যা অসাবধানী অপব্যবহার মাধ্যমে হয় rm
) যাতে সঠিকভাবে ব্যবহার করতে তাদের বিশেষ সমস্যা হয় - তারপরে ভিডিয়োনাথের উত্তরের কৌশলগুলি কিছুটা কার্যকর হতে পারে। তবে আপনাকে অবশ্যই বুঝতে হবে যে সেগুলি সুরক্ষা ব্যবস্থা নয়, কারণ ফাইল মুছে ফেলার অনেক সহজ উপায়ের মধ্যে rm
কমান্ডটি কেবল একটি । বিস্তারিত জানার জন্য নীচে দেখুন।
আমি আপনাকে নিজেকে জিজ্ঞাসা করার পরামর্শ দিচ্ছি, "আমার পরিস্থিতি কি মূলত একইরকম যে আমার কম্পিউটারগুলি ব্যবহার করা অন্যান্য লোকদের চেয়ে আমি rm
কি সেগুলিই ভুলভাবে ব্যবহার করছি ?"
যদি উত্তরটি না হয় , তবে এটি তথ্য সুরক্ষার বিষয়, এবং আপনার ব্যবহারকারীর অ্যাকাউন্টটি ব্যবহার করতে আপনার বন্ধুদের আপনার বাধা দেওয়া দরকার। উত্তরটি যদি হ্যাঁ হয় তবে আপনি যদি একইরকম পন্থাগুলি ব্যবহার করেন তবে আপনি যদি এটির অপব্যবহার করে থাকেন তবে rm
:
- শিক্ষা। আপনার বন্ধুরা তাদের কী করছে এবং এটি কীভাবে এড়ানো যায় তা জানতে হবে।
- ইন্টারফেস পরিবর্তন। ফাইলগুলি মুছার প্রকৃত ক্ষমতা (যার জন্য পৃথক ব্যবহারকারীর অ্যাকাউন্ট প্রয়োজন) কেড়ে না নিয়ে আপনি দুর্ঘটনাক্রমে ফাইলগুলি কেবল নিজের দ্বারা চালিত করে মুছে ফেলা আরও কঠিন করে তুলতে পারেন , কোনও পদক্ষেপ না করে, তাত্ক্ষণিকভাবে মোছা হবে না । ভিডিয়োনাথের উত্তর এটির জন্য একটি পন্থা দেয়। এই উত্তরে, আমি অন্য একটি উপস্থাপন।
rm file
file
এমনকি আপনার বন্ধুরা যদি কোনও ভুল করার চেষ্টা না করে থাকে, তবুও তাদের আলাদা আলাদা ব্যবহারকারী অ্যাকাউন্ট ব্যবহার করার বিষয়ে আপনার বিবেচনা করা উচিত । এটি এখনও সমস্যার সমাধান করবে - ইচ্ছাকৃত ধ্বংস থেকে ডেটা রক্ষা করা একই সুরক্ষা ব্যবস্থাগুলিও এটি অনিচ্ছাকৃত ধ্বংস থেকে রক্ষা করবে। দূষিত অভিপ্রায় ব্যতীত, কেউ যদি এমন কিছু করতে থাকে যা আপনি চান না তবে আপনি তাদের পক্ষে সেই জিনিসটি করা থেকে বিরত থাকতে বিশ্বাস করতে পারবেন না।
মেকিং rm
আগে মুছে ফেলার করতে সাহায্য প্রম্পট কিছু ভুল প্রতিরোধ।
লোকেরা দুর্ঘটনাক্রমে ফাইলগুলি মুছে ফেলা এড়াতে সহায়তা rm
করতে আপনি rm
একটি শেল ওরফে তৈরি করতে পারেন যা আসলে চালিত হয় rm -i
। -i
পতাকাটি পাস করার rm
ফলে এটি প্রতিটি ফাইল মোছার আগে ব্যবহারকারীকে প্রম্পট করে (দেখুন man rm
)।
আপনি alias rm='rm -i'
নিজের .bash_aliases
বা .bashrc
ফাইলে যুক্ত করে এটি (আপনার ব্যবহারকারী অ্যাকাউন্টের জন্য) করতে পারেন । দেখুন এই প্রশ্নের এবং যে এক বিস্তারিত জানার জন্য। এটি আপনার নতুন খোলা ব্যাশ শেলের জন্য কার্যকর হবে।
এটি কোনও প্রকৃত সুরক্ষা সরবরাহ করে না এবং ভুলগুলি রোধ করতে বোকাও নয়, কারণ:
- অনুরোধ করা হলে তারা মুছে ফেলা নিয়ে এগিয়ে যেতে বেছে নিতে পারে।
/bin/rm
এটিকে ( unalias rm
) চালানো বা আনলাইজ করে সহ তারা বিভিন্ন উপায়ে বাইপাসকে বাইপাস করতে পারে ।
- অনেকগুলি পরিস্থিতি রয়েছে যেখানে উলেফ প্রসারণ ঘটে না এবং এই পরিস্থিতিতে
rm
চালানো হবে না -i
।
- তারা এখনও এমন কোনও কৌশল ব্যবহারের মাধ্যমে ফাইলগুলি মুছতে পারে যাতে প্রয়োজন হয় না
rm
( ভিডিওনোথের পদ্ধতির ক্ষেত্রে যেমন হয় - নীচে দেখুন)।
- তারা কোনও ফাইল মোছা না করে ডেটা ক্ষতি করতে পারে যেমন ওভাররাইট করে বা অন্যথায় তাদের সামগ্রীগুলি পরিবর্তন করে (ভিডিওনাউথের পদ্ধতির ক্ষেত্রেও এটি রয়েছে)।
তবে যদি আপনার প্রকৃত সুরক্ষার প্রয়োজন না হয় (উপরে দেখুন), তবে এটি যাওয়ার উপায় হতে পারে। আপনার বন্ধুদের সিস্টেম-সরবরাহিত rm
কমান্ডটি ব্যবহার করা থেকে বিরত করার পদ্ধতির সাথে তুলনা করে :
Aliasing rm
করতে rm -i
ভুল প্রতিরোধ করার কম কার্যকর হয় - যে পর্যন্ত তারা অন্য কৌশল ব্যবহার করে ফাইলগুলি মুছে ফেলার জন্য যান। এই মুহুর্তে, তাদের ব্যবহার থেকে বিরত রাখা rm
সম্পূর্ণরূপে অকার্যকর হবে, এমনকি তারা কোনও ভুল করার চেষ্টা না করলেও সম্ভবত তারা unlink
সমান চিন্তা-ভাবনা সহ (বা কোনও ফাইল মুছে ফেলা এমন অসংখ্য অন্যান্য কমান্ড) ব্যবহার করবে।
অন্যদিকে, যেহেতু ওরফে সম্প্রসারণ কেবল কিছু পরিস্থিতিতে ঘটে - মোটামুটিভাবে বলতে গেলে, শেলের সাধারণ ইন্টারেক্টিভ ব্যবহার - আপনার বন্ধুরা মনে করতে পারে যখন তারা সত্যিই অনুরোধ করা হচ্ছে না তখন তারা প্রম্পট হতে চলেছে (কারণ আদেশটি রয়েছে উদাহরণস্বরূপ একটি স্ক্রিপ্ট, বা অন্য শেল থেকে জারি করা হয়েছে)। ভিডিয়োনাথের পথে এই সমস্যাটি নেই, যা এই পদ্ধতির একটি উদ্দেশ্যমূলক সুবিধা alias rm='rm -i'
।
যখন কোনও স্ক্রিপ্ট চলবে, যদি না এটি ইচ্ছাকৃতভাবে এলিয়াসগুলি ব্যবহার করার জন্য লেখা হয়, আপনার এলিয়াস এতে প্রসারিত হয় না। এর অর্থ হল যে এলিয়াসিংয়ের rm
ফলে rm -i
কোনও কিছু ভাঙার খুব সম্ভাবনা নেই is এটি একটি উদ্দেশ্যমূলক সুবিধা alias rm='rm -i'
।
rm
অন্য কোনও পুরোপুরি সাধারণ প্রোগ্রামটি করতে পারে না।
এখানে আসলে বিশেষ কিছু নেই rm
। ফাইলগুলি সরিয়ে ফেলার এটি একটি সুবিধাজনক এবং স্ব-ডকুমেন্টিং উপায়, সুতরাং এতে অ্যাক্সেস সীমাবদ্ধ করা এতে নির্ভর করে এমন অনেকগুলি স্ক্রিপ্টগুলি ভাঙ্গার ঝুঁকিপূর্ণ। তবে ফাইলগুলি মোছার একমাত্র উপায় থেকে দূরে - এটি কেবল একটি সাধারণ প্রোগ্রাম।
কয়েকটি কমান্ড কিছু কাজ সম্পাদন করে যা কোনও সীমিত (অ- মূল ) ব্যবহারকারী তাদের চালনা ছাড়াই সম্পাদন করতে পারে না। উদাহরণস্বরূপ, sudo
আপনাকে এটির অনুমতি দেওয়া হয়েছে তা নিশ্চিত করার জন্য চেক করার পরে আপনাকে অন্য ব্যবহারকারী হিসাবে প্রোগ্রামগুলি চালাতে দেয়। passwd
ব্যবহারকারীদের পাসওয়ার্ড সংরক্ষণ করা হয় যেখানে ডাটাবেস সম্পাদনা করে, তবে কেবল আপনাকে নিজের পাসওয়ার্ড পরিবর্তন করতে দেয় (আপনি যদি রুট না হন তবে এক্ষেত্রে আপনি কারও পাসওয়ার্ড পরিবর্তন করতে পারবেন)।
/usr/bin/sudo
এবং এটি /usr/bin/passwd
করতে পারে কারণ আপনি যখন রান করবেন তখন তাদের বামদিকের কলামে প্রদর্শিত একটি বিট সেট রয়েছে :s
ls -l
ek@Io:~$ type -a sudo passwd rm
sudo is /usr/bin/sudo
passwd is /usr/bin/passwd
rm is /bin/rm
ek@Io:~$ ls -l /usr/bin/sudo /usr/bin/passwd /bin/rm
-rwxr-xr-x 1 root root 60272 Feb 18 2016 /bin/rm
-rwsr-xr-x 1 root root 54256 Mar 29 2016 /usr/bin/passwd
-rwsr-xr-x 1 root root 136808 Aug 17 09:20 /usr/bin/sudo
লক্ষ করুন যে, /bin/rm
কোন হয়েছে s
: তার অনুমতি হয় -rwxr-xr-x
, যখন /usr/bin/passwd
এবং /usr/bin/so
আছে -rwsr-xr-x
পরিবর্তে। এটি এটিকে এমন করে তোলে যে, কে চালায় passwd
বা sudo
, এটি মূল ব্যবহারকারী হিসাবে চালিত হয় না, যেহেতু মূল নির্বাহযোগ্যের মালিক। (একটি সেটগিড বিটও রয়েছে, যা সেট হয়ে গেলে এক্সিকিউটেবলকে তাদের গ্রুপের মালিকের গোষ্ঠীর পরিচয় দিয়ে কলারের পরিবর্তে চালিত করে))
সুরক্ষা দুর্বলতাগুলি যেগুলি এখনও সনাক্ত করা যায় নি (বা এটি আবিষ্কার করা হয়েছে তবে এখনও প্যাচ করা হয়নি) ব্যতীত sudo
এবং passwd
নিরাপদ কারণ সেগুলি ইউটিলিটিগুলি খুব সাবধানতার সাথে লেখা হয়েছে তাই তারা কেবলমাত্র সেই কাজ করতে পারে যাতে কলারের অনুমতি দেওয়া উচিত ought করতে.
/bin/rm
এইভাবে কাজ করে না। এটি সেটুইড নয় কারণ এটি হওয়ার দরকার নেই। ডিরেক্টরি অনুমতিগুলি (এবং মাঝেমধ্যে ফাইল অনুমতিগুলি ) কোনও ব্যবহারকারী কোন ফাইলগুলি মুছতে পারে তা নিয়ন্ত্রণ করে এবং এটি করার জন্য তাদের রুট হওয়ার দরকার নেই। কেবল পুরোপুরি পরিষ্কার হতে, দয়া করে কখনও সেট বিড সেট করবেন নাrm
। সুরক্ষা জড়িতগুলি বিপর্যয়কর হবে, তার পর থেকে, rm
কেই দৌড়ায় তা বিবেচনাধীন নয়, এটি এটিকে মূল হিসাবে চালিয়ে দিয়েছে! (ইউটিলিটিগুলি sudo
এবং passwd
কে সত্যই এগুলি চালাচ্ছে তা পরীক্ষা করে দেখুন এবং কিছু করার আগে কিছু অনুমোদিত কিনা তা পরীক্ষা করুন; এ জাতীয় rm
কোনও কাজ করেন না))
নির্বাহযোগ্যের উপর সেটুইড (বা সেটজিড) বিট সেট করা আছে কিনা তা পরীক্ষা করে আপনাকে বলবে যে কে এটি চালাতে পারে তা সীমাবদ্ধ করে রাখলে সুরক্ষা বাড়ানোর সম্ভাবনা রয়েছে। নির্বাহী যা নির্ধারিত নয় (বা সেটগিড) এর কোনও বিশেষ মর্যাদা নেই এবং যে কেউ এগুলি অনুলিপি করে অনুলিপি চালাতে, অন্য মেশিন থেকে নিজস্ব অনুলিপি আনতে, কোনও স্ক্রিপ্ট বা প্রোগ্রাম লিখতে পারে যা একই কাজ করে বা ব্যবহার করতে পারে এটি করতে অন্য একটি প্রোগ্রাম।
ছাড়াই ফাইল মোছা হচ্ছে rm
rm
উবুন্টু ছাড়াই ফাইল মুছে ফেলার সুস্পষ্ট উপায় হ'ল গ্রাফিকাল ফাইল ব্রাউজারে (নটিলাস, যদি আপনি ইউনিটি বা জিনোম শেল ব্যবহার করছেন) তার অবস্থানটিতে যান এবং ফাইলটি মুছুন। এছাড়া অসংখ্য কমান্ড যে কখনও ব্যবহার না করে, টার্মিন্যাল থেকে একটি ফাইল মুছে ফেলতে ব্যবহার করা যায় rm
।
উদাহরণস্বরূপ, foo.txt
বর্তমান ডিরেক্টরিতে ডাকা একটি ফাইল অপসারণ করতে , নিম্নলিখিত কমান্ডগুলি, যা উবুন্টু-তে-বাক্সের বাইরে কাজ করে এবং এতে অ্যাক্সেসের প্রয়োজন নেই rm
, এটি অর্জন করবে। (নিশ্চিত হওয়া মাত্র, আমি এগুলি মুছার পরে কেবলমাত্র স্ট্যান্ডার্ড সিস্টেম ইউটিলিটিগুলির সাথে ইনস্টল করা একটি 16.04 ন্যূনতম সিস্টেমে পরীক্ষা করেছি /bin/rm
))
unlink foo.txt
busybox rm foo.txt
perl -e 'unlink("foo.txt")'
python3 -c 'import os; os.remove("foo.txt")'
( পুরানো প্রকাশের python
পরিবর্তে python3
)
অবশ্যই এই তালিকাটি কোথাও সম্পূর্ণ নয়। এই জাতীয় আদেশের কোনও সম্পূর্ণ তালিকা সম্ভব নয়। ফাইল মুছে ফেলা রোধ করা পৃথক ব্যবহারকারীর অ্যাকাউন্ট এবং ফাইল এবং ডিরেক্টরি অনুমতিগুলি অর্জনের জন্য বিদ্যমান একটি বিষয়। তারা এটি রোধ করতে খুব ভাল কাজ করে। বিপরীতে, rm
কমান্ডটি পরিবর্তন করে (এটির জন্য পাসওয়ার্ডের প্রয়োজন হয় বা অন্য কোনও উপায়ে) বা অ্যাক্সেসকে সীমাবদ্ধ করে rm
একে একে বাধা দেয় না।