যেমন izx মন্তব্য করেছে, এটি কেবল একটি কার্নেল বাগের কারণে ঘটতে সক্ষম হবে। সুতরাং বর্তমানে যে কেউ এই সমস্যা তৈরি করতে পারে - বিশেষত এবং বিশেষত এই প্রশ্নের মূল পোস্টার সহ - এই পৃষ্ঠাটি পুরোপুরি এবং সাবধানে পড়ার পরে এটি বাগ হিসাবে রিপোর্ট করার জন্য এবং তারপরে ubuntu-bug linux
আক্রান্ত মেশিনে চালানোর পরামর্শ দেওয়া হবে । এটি linux
উবুন্টুতে প্রতিবেদন করা উচিত , এবং একটি মূললাইন (আপস্ট্রিম) কার্নেলের বিরুদ্ধে নয় , যদি না আপনি এটিকে একটি মূললাইন কার্নেলে উত্পাদন করতে পারেন (আপনার yama
বোঝা চাপতে হবে)।
উবুন্টু ১০.১০ দিয়ে শুরু হওয়া উবুন্টুর প্রতিটি সংস্করণে প্রত্যাশিত আচরণটি হ'ল যে প্রক্রিয়া A একটি চলমান প্রক্রিয়া বিকে আবিষ্কার করতে পারে না যদি না বি এ এর সরাসরি সন্তান (বা এ হিসাবে চালিত হয় root
) is এটি একটি সুরক্ষা বর্ধন, যা এটিকে এমন করে তোলে যাতে আক্রমণকারী দ্বারা আপস করা কোনও প্রক্রিয়া অন্যান্য প্রক্রিয়া থেকে তথ্য সন্ধানের জন্য কার্নেলের দ্বারা সরবরাহ করা ডিবাগিং সুবিধা ব্যবহার করতে পারে না। এটি সুরক্ষা বৈশিষ্ট্য সম্প্রদায় উইকি পৃষ্ঠার ptrace স্কোপ বিভাগে ব্যাখ্যা করা হয়েছে ।
এই সীমাবদ্ধ আচরণটি ডিফল্ট তবে প্রসেস এ এর নিজস্ব ব্যবহারকারী হিসাবে একই ব্যবহারকারীর আইডি দিয়ে চালিত কোনও চলমান প্রক্রিয়া বি সনাক্ত করতে কোনও প্রক্রিয়া এটিকে অনুমতি দেওয়ার জন্য পরিবর্তন করা যেতে পারে। এটি হ'ল, আপনার যে কোনও প্রক্রিয়া একে অপরকে ডিবাগ করার অনুমতি দেওয়ার জন্য আপনি আপনার সিস্টেমটি কনফিগার করতে পারেন। এটি ইতিমধ্যে চলমান প্রক্রিয়াগুলিতে ডিবাগার সংযুক্তকরণকে সহজতর করে।
এর জন্য সেটিংসটি /proc/sys/kernel/yama/ptrace_scope
সিস্টেপ্ট দ্বারা প্রকাশ করা হয়েছে । 1
আরও সীমাবদ্ধ আচরণ এবং 0
কম সীমাবদ্ধ আচরণ নির্দেশ করে । সেটিংটি এর সাথে পড়তে পারেন:
cat /proc/sys/kernel/yama/ptrace_scope
কম সীমাবদ্ধ (অ-ডিফল্ট) আচরণটি এর সাথে সেট করা যেতে পারে:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
এবং আরও সীমাবদ্ধ (ডিফল্ট) আচরণটি এর সাথে সেট করা যেতে পারে (বা ফিরে সেট):
echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
শুধু এই প্রশ্নের একটি সংযুক্ত করতে অক্ষম মূল পোস্টার ছিল strace
সঙ্গে একটি বর্তমানে চলমান প্রক্রিয়া উদাহরণস্বরূপ ptrace-scope
সেট 0
, কিন্তু মূল পোস্টার এখনও চলমান তা করার অক্ষম তখন ছিল strace
যেমন root
। এটি ত্রুটি ছাড়া কী কীভাবে হতে পারে তা দেখা মুশকিল - আমি দৃ strongly়তার সাথে এটির হিসাবে প্রতিবেদন করার পরামর্শ দিচ্ছি।
প্রথমদিকে, আমি ভেবেছিলাম যে যেখানে সমস্যাটি ptrace_scope
সেট 0
করা উপেক্ষা করা হয় এবং এমনভাবে বিবেচনা করা হয় সেখানে আমি সেই সমস্যাটি পুনরুত্পাদন করতে সক্ষম হয়েছি 1
। তবে আমি আর বিশ্বাস করি না যে এটি আবার একই জিনিস, কারণ আমি আবার একই জিনিসগুলি করেছি এবং আমি সমস্যার পুনরুত্পাদন করতে পারি না। আমি এটি পরীক্ষা করেছি:
- লুবুন্টু যথার্থ amd64 দৈহিক মেশিন আমি প্রতিদিন আমার প্রধান বাক্স হিসাবে ব্যবহার করি।
- একটি ভার্চুয়ালবক্স ভার্চুয়াল মেশিন একটি লুবুন্টু যথার্থ আই 386 (12.04) লাইভ সিডি চালাচ্ছে।
- কোয়ান্টাল আই 386 (উবুন্টু + 1) প্রতিদিনের লাইভ (20120608) চালিত একটি অভিন্ন ভার্চুয়ালবক্স ভার্চুয়াল মেশিন।
তিনটি মেশিনেই, প্রত্যাশিত আচরণ ঘটে এবং আমি এই শর্তটির মূল পোস্টার যে শর্তটি জিজ্ঞাসা করছি সেই অবস্থাটি পুনরুত্পাদন করতে পারি না। এখানে টার্মিনালের কিছু পাঠ্য রয়েছে (যথার্থ লাইভ সিস্টেম থেকে):
lubuntu@lubuntu:~$ nano&
[1] 3492
lubuntu@lubuntu:~$ strace -p 3492
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Could not attach to process. If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf
[1]+ Stopped nano
lubuntu@lubuntu:~$ cat /proc/sys/kernel/yama/ptrace_scope
1
lubuntu@lubuntu:~$ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
0
lubuntu@lubuntu:~$ strace -p 3492
Process 3492 attached - interrupt to quit
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
ioctl(1, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
strace
প্রত্যাশা অনুযায়ী, আমি এটি স্থগিত না করা পর্যন্ত বার্তা তৈরি করা অব্যাহত রাখি।
এটি আবার একটি বাগ হিসাবে রিপোর্ট করার জন্য সুপারিশ করে শেষ করি। পাঠ্যের জন্য https://bugs.launchpad.net (যার মধ্যে কোনও উবুন্টু বাগ অন্তর্ভুক্ত রয়েছে) এর সর্বাধিক অন্তর্ভুক্ত অনুসন্ধানের ptrace_scope
ফলে কেবলমাত্র কয়েকটি মুখ্য ফলাফল পাওয়া যায়, যাতে স্পষ্টত কোনওটিই এই বাগের জন্য রিপোর্ট নয় । ত্রুটিটি প্রতিবেদন করা অন্যকে সাহায্য করবে, কাজের সমাধান বা সংশোধন করতে পারে এবং সম্ভবত এই সমস্যাটি নিয়ে কাজ করার একমাত্র অর্থবহ উপায় (সমস্যাটি এখনও ধরেই চলেছে ধরে নেওয়া)।
strace /bin/echo test
? এটি কি একই ত্রুটির বার্তা দেয়?