আমি রুট হওয়া সত্ত্বেও কেন কোনও প্রক্রিয়াতে স্ট্রেস / জিডিবি সংযুক্ত করবে না?


26
  • আমি মূল হিসাবে লগ ইন করেছি তবে straceএটি আমাকে দেয়:

    রুট @ কাইজনেকভ-সিস্টেম: / হোম / কাইজনেকভ # পিএস -e | গ্রেপ 111
     3807 পিটিএস / 2 00:00:00 111
     3810 পিটিএস / 2 00:00:00 111
    রুট @ কাইজনেকভ-সিস্টেম: / হোম / কাইজনেকভ # স্ট্রেস-পি 3810
    
    সংযুক্তি: ptrace (PTRACE_ATTACH, ...): অপারেশন অনুমোদিত নয়
    প্রক্রিয়া সংযুক্ত করা যায়নি। যদি আপনার ইউইডি লক্ষ্যের ইউডের সাথে মেলে
    প্রক্রিয়া, / proc / sys / কার্নেল / ইয়ামা / ptrace_scope এর সেটিংস পরীক্ষা করে দেখুন বা চেষ্টা করুন
    আবার রুট ব্যবহারকারী হিসাবে। আরও তথ্যের জন্য, দেখুন /etc/sysctl.d/10-ptrace.conf
    রুট @ kyznecov-সিস্টেম: / হোম / kyznecov
    
    রুট @ কাইজনেকভ-সিস্টেম: / হোম / কিজ্নেকভ # বিড়াল / প্রোক / সিএস / কার্নেল / ইয়ামা / পিট্রেস_স্কোপ
    0
  • তারপরে আমি gdbকাঁটাচামচ দিয়ে এক্সিলিপ সিডিটিতে মাল্টিপ্রসেস প্রোগ্রামটি ডিবাগ করার জন্য ব্যবহার করার চেষ্টা করেছি এবং এটি আমাকে একই ফলাফল / ত্রুটি দিয়েছে:

    এখানে চিত্র বর্ণনা লিখুন

কোন ধারনা?


যেহেতু পিট্রেস_স্কোপ শূন্য হয় এগুলি বিবেচনা করা উচিত নয়, তবে কেবল একটি পরীক্ষা হিসাবে আপনি স্ট্রেসের আরও সহজ ব্যবহারের চেষ্টা করতে পারেন, যেখানে ট্রেসিং প্রক্রিয়াটি প্রক্রিয়াটির প্যারেন্ট ced যেমন strace /bin/echo test? এটি কি একই ত্রুটির বার্তা দেয়?
জর্ডান উগলা

@EliahKagan, তত্ত্ব কি ওপি বর্ণিত না পারেন, একটি কার্নেল বাগ অভাবে ঘটে থাকে। যদি আপনার পরবর্তী 24 ঘন্টা বা আরও কিছু সময় থাকে এবং আপনার মন্তব্যে একটি উত্তরে পরিণত করতে পারেন তবে তা দুর্দান্ত হবে - যথার্থ বিষয়ে আমার পরীক্ষাটি কোনও সমস্যা প্রকাশ করেছে না, এবং এইভাবে এটি একটি চূড়ান্ত উত্তর হবে যে সেখানে কিছুটা তর্ক ছিল was ওপি'র কনফিগারেশনে ... তিনি 29 ই মে তার প্রাথমিক প্রশ্ন থেকে ফিরে
ইশ

এলিয়াকাগান, "অপারেশন অনুমোদিত নয়" বিটটি পুনরায় পড়ার জন্য একটি জিনিস আমাকে কেবল আঘাত করেছে - কারণ আমি ওপেনভিজেড ভিপিএস / ভিএমগুলিতে মূলত রুট করার সময় কয়েকবার আগে এটি দেখেছি (তারা হোস্ট মেশিনের কার্নেল ভাগ করে নিয়েছে, তাই না , আপনি কেবল নিজের ছোট দ্বীপের রাজা) ... সম্ভবত এই ঘটনাটি ছিল? এই পেস্টটি
ইশ

@izx আপনার পেস্টের মেয়াদ শেষ হয়ে গেছে। এবং আমার এই সমস্যাটি রয়েছে (একটি ধারকের ভিতরে), কোনও অন্তর্দৃষ্টি ভাল হবে
কুণাল তায়াগি

উত্তর:


25

ত্রুটি পাওয়ার একটি কারণ:

attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted

কারণ প্রক্রিয়া ইতিমধ্যেই সংযুক্ত করা হয়েছে gdb, straceবা অনুরূপ। এটি কেস কিনা তা পরীক্ষা করতে, চালান:

grep TracerPid /proc/$THE_PID/status

যদি এটি ননজারো হয় তবে এটি একটি বিদ্যমান প্রোগ্রামের পিড যা ইতিমধ্যে সেই প্রক্রিয়াটিতে একটি ট্রেস চালিয়ে যাচ্ছে।


আমরা যদি
লক্ষণটি ডিবেগ

এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ. আমি স্ট্রেস র‍্যাপারের মাধ্যমে একটি প্রোগ্রাম চালাচ্ছিলাম। প্রোগ্রামটি কাঁটাচামচ করে তারপরে নিজেই সম্পাদন করে। মৃত্যুর শিকার শিশুটি স্ট্রেস র‍্যাপার চালানোর সাথে সাথে দ্রুত মারা যায়, যা সংযুক্তি করতে ব্যর্থ হয় কারণ পিতামাতার প্রক্রিয়াটি ইতিমধ্যে স্ট্রেসের নিয়ন্ত্রণে রয়েছে।
রব কেনেডি

18

যেমন 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ফলে কেবলমাত্র কয়েকটি মুখ্য ফলাফল পাওয়া যায়, যাতে স্পষ্টত কোনওটিই এই বাগের জন্য রিপোর্ট নয় । ত্রুটিটি প্রতিবেদন করা অন্যকে সাহায্য করবে, কাজের সমাধান বা সংশোধন করতে পারে এবং সম্ভবত এই সমস্যাটি নিয়ে কাজ করার একমাত্র অর্থবহ উপায় (সমস্যাটি এখনও ধরেই চলেছে ধরে নেওয়া)।


পরামর্শের জন্য ধন্যবাদ, আমি আগামীকাল এটি বিস্তারিতভাবে পড়ব এবং সম্ভবত কিছু সাবহেডিং যুক্ত করব, তবে আমি মনে করি এটি অত্যন্ত নিখুঁত :)
ইশ

আমার পোস্টে আপনি দেখতে পাবেন: root @ kyznecov-System: / home / kyznecov # cat / proc / sys / kernel / yama / ptrace_scope 0 আমি এটি করেছি: প্রতিধ্বনি 0 | sudo tee / proc / sys / kernel / yama / ptrace_scope
andreykyz

কনকোল সব সহজেই কাজ। তবে আমি যদি গ্রহনে প্রোগ্রাম চালিয়েছি এবং কনসোল থেকে স্ট্রেস চেষ্টা করি তবে আমি সমস্যাটি বলে ফেলছি।
andreykyz

2
ইতিমধ্যে চিহ্নিত প্রক্রিয়াটির কোনও পার্শ্ব-প্রতিক্রিয়া হতে পারে? অনুমতি-কাঁটাচামচ-শিশু সন্তানের সাথে পিতামাতার প্রক্রিয়াতে জিডিবি ব্যবহার করার সময় আমার একই সমস্যা হয়েছিল
জ্যামি পেট ২ '

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