কেন একজন নতুন ব্যবহারকারীর মুছে ফেলা ব্যবহারকারীর কাছ থেকে ফাইল উত্তরাধিকার সূত্রে প্রাপ্ত?


24

তাই আমাকে হোমওয়ার্ক হিসাবে একটি বইতে অনুশীলন করতে হয়েছিল। প্রথমে আপনাকে এমন একটি ব্যবহারকারী তৈরি করতে হয়েছিল:

useradd -c "Steven Baxter" -s "/bin/sh" sbaxter

তারপরে আপনাকে /home/sbaxterডিরেক্টরিতে কিছু ফাইল যুক্ত করতে হয়েছিল :

touch /home/sbaxter/ some.txt new.txt files.txt

তারপরে আপনাকে sbaxterব্যবহারকারীর অপসারণ করতে হবে এবং একটি নতুন ব্যবহারকারী নাম তৈরি করতে হবে mjane। আমি যখন দৌড়ে গেলাম তখন অবাক হয়েছি find /home/ -user mjane, নতুন ব্যবহারকারীর mjaneএখন sbaxter এর সমস্ত পুরানো ফাইলের মালিকানা ছিল, কী হয়েছে?

উত্তর:


41

শয়তান useraddম্যান পৃষ্ঠাতে বিশদে রয়েছে (আপনি জারি করে তা দেখতে পারেন man 8 useradd):

   -u, --uid UID
       The numerical value of the user's ID. This value must be unique,
       unless the -o option is used. The value must be non-negative. The
       default is to use the smallest ID value greater than or equal to
       UID_MIN and greater than every other user.

সুতরাং এটি পাসওয়ার্ড ফাইলের মধ্যে সবচেয়ে ছোট uid অব্যবহৃত ব্যবহার করা ডিফল্ট হবে যা অন্য ব্যবহারকারীর চেয়ে বড়। এসবিএক্সটারটি মুছে ফেলা হিসাবে তাকে পাসডাব্লুডি ফাইল থেকে সরানো হয়েছে, তার ইউআইডি "ফ্রি" এবং মাজনকে বরাদ্দ করা হয়েছে ( কমান্ডটি ব্যবহার useraddকরার সময় ইউআইডি পিকগুলি উভয় ব্যবহারকারীর জন্য একই useraddছিল)।

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

আমি অ্যাকাউন্টগুলিকে মুছে ফেলার চেয়ে আপনাকে অক্ষম করার প্রস্তাব দিই । বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে অ্যাকাউন্ট লক করার মাধ্যমে এটি অর্জন করা যেতে পারে usermod -L -e today <username>, যা পাসওয়ার্ডটি লক করে এবং অ্যাকাউন্টটি আজ শেষ হওয়ার জন্য সেট করে (আপনি কোনও অ্যাকাউন্টের সমাপ্তির তারিখটি দেখতে পারেন chage -l)।


2
... এটি একটি ভয়াবহ সুরক্ষা ত্রুটির মত মনে হচ্ছে। এটির চারপাশে কাজ করার কোনও উপায় আছে কি?
ব্লুরাজা - ড্যানি পিফ্লুঘুফুট

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

2
@OlivierDulac যে একটি ব্যাকআপ বলা হয়। বিকল্পভাবে, লক করুন তবে যতক্ষণ না আপনার অ্যাকাউন্ট রাখা দরকার ততক্ষণ অ্যাকাউন্টটি সরাবেন না। সর্বোপরি, যদি আপনার ডেটা রাখা দরকার হয় তবে অ্যাকাউন্টটি এখনও দরকার।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে অ্যাকাউন্ট লক করার মাধ্যমে এটি অর্জন করা যেতে পারে usermod -L -e today <username>, যা পাসওয়ার্ডটি লক করে এবং অ্যাকাউন্টটি আজ শেষ হওয়ার জন্য সেট করে (আপনি কোনও অ্যাকাউন্টের সমাপ্তির তারিখটি দেখতে পারেন chage -l)।
ড্র স্লান

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

13

মুছে ফেলা ব্যবহারকারীর ইউআইডি নতুন ব্যবহারকারীর দ্বারা পুনরায় ব্যবহৃত হয়েছিল এবং ফাইল-সিস্টেমগুলি কোনও ব্যবহারকারীর নাম নয়, মালিকানার জন্য একটি ইউআইডি ব্যবহার করে।

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