মালিক / মূল এবং আরআইডি / ইডিউ এর মধ্যে পার্থক্য


24

আমি প্রশ্নে উল্লিখিত ধারণাগুলিতে তুলনামূলকভাবে নতুন এবং বিভিন্ন উত্স থেকে সেগুলি সম্পর্কে পড়া কেবল তাদের আরও বিভ্রান্ত করে তোলে। তাই এটি আমি এখনও পর্যন্ত বুঝতে পেরেছি:

যখন আমাদের কোনও ফাইলের জন্য অনুমতি দেওয়া হয়, তারা এগুলি দেখতে দেখতে:

-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin

আমরা ধরে নিই যে user2এই গোষ্ঠীতে থাকা কোনও ব্যবহারকারী usersকার্যকর করার চেষ্টা করছেন file.bin। যদি সেটুইড বিট সেট না করা থাকে তবে এর অর্থ হ'ল এর আরআইডি এবং ইডিইউ উভয়ই file.binইউআইডি-র সমান user2। কিন্তু যেহেতু setuid বিট সেট করা থাকে, এর মানে হল যে RUID এখন এর ইউআইডি করার সমান user2, যখন EUID ফাইলের মালিকের ইউআইডি হয় user1

আমার প্রশ্নগুলি হ'ল:

  1. ফাইলের মালিক এবং এর মধ্যে পার্থক্য কী root? না rootমালিকের সাথে সমান অনুমতি? অথবা আমাদের জন্য অনুমতি তালিকার জন্য পৃথক এন্ট্রি প্রয়োজন root?
  2. আরইউডি এবং ইডিইউডের মধ্যে পার্থক্য?
    • যেহেতু আমি এটি বুঝতে পেরেছি তবে আরআইডি এবং ইইউডি কেবলমাত্র প্রক্রিয়াগুলিতে প্রয়োগ করা হয়। যদি তা হয় তবে তাদের ব্যবহারকারীর আইডির মান কেন?
    • যদি আরআইডিইউ হ'ল প্রক্রিয়াটি তৈরি করে এমন ব্যবহারকারী এবং ইইউইডি ব্যবহারকারী বর্তমানে প্রক্রিয়াটি চালাচ্ছে, তবে এই প্রশ্নের প্রথম উত্তরের প্রথম বাক্যটি আমার কোনও অর্থবোধ করে না।
    • সেটুইড বিট কী করে আমি সঠিকভাবে বুঝতে পারি?

উত্তর:


35

উত্তরগুলি এখানে:

  1. rootফাইল এবং ডিরেক্টরিতে সর্বদা সম্পূর্ণ অ্যাক্সেস রয়েছে। ফাইলের মালিক তাদের সাধারণত থাকে তবে এটি সর্বদা সত্য হয় না। উদাহরণ স্বরূপ:

    -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

    user1হয় মালিক ; কিন্তু তারা শুধুমাত্র করতে পড়া এবং চালানো , কিন্তু rootএখনও পূর্ণ প্রবেশাধিকার আছে ( rwx ফাইলে)।

  2. আরআইইডি হ'ল আসল ব্যবহারকারীর আইডি এবং এটি কখনই পরিবর্তন হয় না (প্রায়)। যদি user2সিস্টেমে লগ ইন করে তবে শেলটি তার আসল আইডি সেট করে চালু করা হয় user2। শেল থেকে শুরু করা সমস্ত প্রক্রিয়া তাদের আসল আইডি user2হিসাবে আসল আইডি উত্তরাধিকার সূত্রে প্রাপ্ত হবে ।

    EID হ'ল কার্যকর ব্যবহারকারী আইডি , এটি প্রক্রিয়াগুলির জন্য পরিবর্তিত হয় (ব্যবহারকারীর জন্য নয়) যা ব্যবহারকারী নির্বাহ করে যা সেটুইড বিট সেট করে ।

    তাহলে user2, executes file.bin, RUID হতে হবে user2এবং প্রক্রিয়া হতে হবে শুরু EUID user1

এর ক্ষেত্রে ব্যবহার করা যাক passwd:

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • যখন তাদের পাসওয়ার্ড পরিবর্তনuser2 করতে চায় , তারা কার্যকর করে ।/usr/bin/passwd

  • আরআইডি হবে user2তবে সেই প্রক্রিয়াটির ইইউডি হবে root

  • user2কেবল তাদের নিজস্ব পাসওয়ার্ড passwdপরিবর্তন করতে ব্যবহার করতে পারেন কারণ অভ্যন্তরীণভাবে আরআইডি পরীক্ষা করে এবং যদি এটি না হয় তবে এর ক্রিয়াগুলি বাস্তব ব্যবহারকারীর পাসওয়ার্ডের মধ্যে সীমাবদ্ধ থাকবে।passwdroot

  • এটা যে EUID হয়ে ট্রাফিক পেতে এর rootক্ষেত্রে passwdকারণ প্রক্রিয়া চাহিদা লেখার জন্য /etc/passwdএবং / অথবা /etc/shadow


ধন্যবাদ! এখন allting আরও স্পষ্ট। যদিও আমার আরও একটি প্রশ্ন আছে। EID কেবল তখনই পরিবর্তন হয় যখন কোনও ব্যবহারকারী কোনও প্রক্রিয়া চালায় যাতে সেটুইড বিট সেট রয়েছে? অথবা এটি অন্য পরিস্থিতিতেও পরিবর্তন হতে পারে? আর যদি তা হয় তবে সেই পরিস্থিতি কী?
ব্যবহারকারী 1956190

1
আমি মনে করি বিসিড প্রক্রিয়াগুলি সম্পাদন করা ছাড়া অন্য কোনও উপায় নেই setuid
jcbermu

3
একটি "সেটুয়েড" প্রোগ্রাম থেকে চলমান একটি প্রক্রিয়া (যেমন, কার্যকর ইউআইডি ≠ রিয়েল ইউআইডি রয়েছে এমন একটি প্রক্রিয়া) ইআইডিকে আরআইডিতে ফিরে যেতে পারে। কিছু ক্ষেত্রে, এটি EID এর প্রাথমিক মান (অর্থাত্, প্রোগ্রাম ফাইলের মালিক) এবং আরআইডি এর মধ্যে পিছনে পিছনে স্যুইচ করতে পারে। এছাড়াও, এটি তার আরইউডিটিকে তার ইডিউর সমান সেট করতে সক্ষম হতে পারে। … (চালিয়ে যাওয়া)
স্কট

2
(Cont'd) ... প্রিভিলেজড প্রসেস (EUID = 0 যাদের, ওরফে root) অবাধ মান EUID এবং RUID সেট করতে পারেন (উদাহরণস্বরূপ, login, su, এবং sudoপ্রোগ্রাম যে কি)। সাধারণত, একবার কোনও সুবিধাপ্রাপ্ত প্রক্রিয়া তার ইউআইডিগুলিকে শূন্য-অমূল্যতে পরিবর্তন করে, এটি আর সুবিধাযুক্ত rootহয় না এবং এটি আর পরিণত হতে পারে না । মানুষ পৃষ্ঠা দেখুন setuid (2) , seteuid (2) , এবং setreuid (2)
স্কট

1
(চালিয়ে যাওয়া)… এটি একটি সমস্যা সমাধানের জন্য একটি হ্যাক হিসাবে প্রবর্তিত হয়েছিল, যা পরবর্তীকালে বিস্তৃত উপায়ে সমাধান করা হয়েছে। এটি লিনাক্স থেকে সরিয়ে ফেলা হতে পারে তবে এই যে ছাঁটাইটি এটি ব্যবহার করে এমন প্রোগ্রামগুলিকে ভেঙে ফেলবে। মাইকেল Kerrisk, লেখক দ্য লিনাক্স ইন্টারফেস প্রোগ্রামিং , বলে, তার সংস্করণে setfsuid (2) man পৃষ্ঠা , " setfsuid()আজকাল অপ্রয়োজনীয় এবং নতুন অ্যাপ্লিকেশন এড়িয়ে চলা উচিত।"
স্কট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.