একটি ওয়ারমেমে চ্যালেঞ্জ করার সময়, আমি অনুমতি নিয়ে একটি ইস্যুতে ছুটে এসেছি। প্রদত্ত তথ্য /proc/PID/statusপ্রক্রিয়াটিতে যে অনুমতিগুলি দেওয়া উচিত তা পূর্ণতার সাথে নয়।
আমি ব্যবহারকারী ব্যবহারকারী 1। আমার একটি প্রোগ্রাম যা সেটুডাইজড সেগুলি ব্যবহার করার কথা:
-r-sr-x--- 1 user2 user1 6297 Jun 20 2013 program
সুতরাং এটি ব্যবহারকারীর কার্যকর ইউআইডি দিয়ে কার্যকর করা উচিত।
প্রোগ্রামটি বন্ধ হওয়া থেকে রোধ করার জন্য আমি অস্থায়ীভাবে প্রোগ্রামটি চালু করার ঠিক পরে বন্ধ করছি:
~/program "test" &
PID=$!
kill -SIGSTOP $PID
echo $PID
তারপরে, আমি cat /proc/$PID/statusএবং আমি দেখতে পাচ্ছি:
Uid: 1003 1003 1003 1003
Gid: 1003 1003 1003 1003
আইডিগুলি হ'ল:
$ id user1
uid=1003(user1) gid=1003(user1) groups=1003(user1)
$ id user2
uid=1035(user2) gid=1035(user2) groups=1035(user2),1003(user1)
ম্যানুয়াল দেওয়া ( man 5 proc) দেওয়া /proc/$PID/statusউচিত shouldUid, Gid: Real, effective, saved set, and filesystem UIDs (GIDs).
তবে এখানে, প্রক্রিয়াটির ব্যবহারকারীর কার্যকর আইডি রয়েছে যেখানে এটি ব্যবহারকারীর কার্যকর আইডি থাকা উচিত ।
আমি ভেবেছিলাম, কারণ আমি খুব তাড়াতাড়ি প্রোগ্রাম বন্ধ এই হতে পারে, তাই আমি সংযুক্ত করার চেষ্টা gdbএটি, ও মৃত্যুদন্ড অবিরত পর্যন্ত এটা আসলে থেকে কোড executes mainফাংশন program(সূত্র দেওয়া হয়), কিন্তু কর্তৃক প্রদত্ত কার্যকর ইউআইডি /proc/$PID/statusএখনও এক ইউজার 1 এবং ইউজার 2 এর নয়।
আমি কিছু অনুপস্থিত করছি?
সম্পাদনা করুন: চ্যালেঞ্জের উত্সটি সরিয়ে দিন, আমি সম্ভবত এটি পোস্ট করার জন্য অনুমোদিত নই।