সেটুয়েড বিটের ব্যাশের কোনও প্রভাব নেই বলে মনে হচ্ছে


14

আমি কিছুটা পরীক্ষা করে দেখছিলাম এবং অদ্ভুত কিছু লক্ষ্য করেছি: অবস্থিত ব্যাশের অনুলিপিটিতে সেটুইড বিট সেট করার /usr/bin/bash-testফলে কোনও প্রভাব নেই বলে মনে হচ্ছে। যখন আমি একটি দৃষ্টান্ত চালাই bash-test, তখন আমার হোম ডিরেক্টরিটি সেট করা হয়নি /rootএবং যখন আমি whoamiকমান্ডটি bash-testচালিয়েছিলাম তখন আমার ব্যবহারকারীর নামটি হ'ল বলে প্রতিবেদন করা হয়নি root, এটি পরামর্শ দিয়েছিল যে bash-testএটি রুট হিসাবে চলছিল না। যাইহোক, আমি যদি সেটুইড বিটটি চালু করি তবে whoamiপ্রত্যাশার মতো কোনও শেলের মূল হিসাবে আমার রিপোর্ট করা হয়েছিল।

আমি সেটুইড বিটটিও /usr/bin/bashপাশাপাশি সেট করার চেষ্টা করেছি এবং একই আচরণ পর্যবেক্ষণ করেছি।

আমি যখন সেটুয়েড বিট সেট করি তখন বাশ কেন রুট হিসাবে চলমান না? সেলিনাক্স এর সাথে কিছু করতে পারে?

linux  bash  setuid 

1
আপনি এই প্রশ্নের মধ্যে সেটুইড সম্পর্কে অতিরিক্ত তথ্য পাবেন ।
অ্যান্টন

চেন, ডিন এবং ওয়াগনার দ্বারা সেটুইড ডেমিসাইডেডও দেখুন । এটি একটি পুরাতন কাগজ কিন্তু এটি এখনও প্রযোজ্য।

উত্তর:


21

ব্যাখ্যাটি এক রকম বিরক্তিকর: বাশ নিজেই কারণ reason straceআমাদের বন্ধু (এটি কাজ করার জন্য অবশ্যই SID মূল হতে হবে):

getuid()                                = 1000
getgid()                                = 1001
geteuid()                               = 0
getegid()                               = 1001
setuid(1000)                            = 0
setgid(1001)                            = 0

বাশ সনাক্ত করে যে এটি SID রুট (ইউআইডি! = ইডিইউ) শুরু করা হয়েছে এবং এর শক্তিটি এই শক্তিটি ফেলে দেওয়ার জন্য ব্যবহার করে, EID- কে UID- এ পুনরায় সেট করে। এবং পরে এমনকি এফএসইউডিও, কেবল নিশ্চিত হওয়ার জন্য ...:

getuid()                                = 1000
setfsuid(1000)                          = 1000
getgid()                                = 1001
setfsgid(1001)                          = 1001

শেষ পর্যন্ত: কোন সুযোগ নেই। আপনাকে ইউআইডি রুট (যেমন সুডো) দিয়ে বাশ শুরু করতে হবে।

সম্পাদনা 1

ম্যান পেজ এটি বলে:

যদি শেলটি কার্যকর ব্যবহারকারী (গোষ্ঠী) আইডি দিয়ে বাস্তব ব্যবহারকারী (গোষ্ঠী) আইডির সমান না হয় এবং -p বিকল্প সরবরাহ না করা হয়, কোনও প্রারম্ভিক ফাইল পড়া হয় না, শেল ফাংশনগুলি পরিবেশ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয় না, , BASHOPTS, CDPATH, এবং GLOBIGNORE ভেরিয়েবলগুলি যদি তারা পরিবেশে উপস্থিত হয় তবে তা অগ্রাহ্য করা হয় এবং কার্যকর ব্যবহারকারী আইডিটি বাস্তব ব্যবহারকারী আইডিতে সেট করা থাকে। যদি অনুরোধের সময় -p বিকল্প সরবরাহ করা হয় তবে স্টার্টআপ আচরণটি একই হয়, তবে কার্যকর ব্যবহারকারী আইডি পুনরায় সেট করা হয় না।

তবে এটি আমার পক্ষে কাজ করে না। -pএমনকি স্টার্টআপ বিকল্পগুলির মধ্যে উল্লেখ করা হয়নি। আমি চেষ্টাও করেছি --posix; কোন কাজ হয়নি।


2

যাইহোক, একটি SID রুট প্রোগ্রাম রুটের পরিবেশের সাথে চলবে না ( $HOMEশেলের জন্য কনফিগারেশন, যাই হোক না কেন), এটি রুট শক্তির সাথে চালিত হয় (যেমন, এটি কোনও ফাইল মুছতে পারে, কোনও অনুমতি পরিবর্তন করতে পারে ইত্যাদি)।

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