লগইন শেল হিসাবে su ব্যবহারকারীর সময় "টার্মিনাল প্রক্রিয়া গোষ্ঠী সেট করতে পারে না"


16

দ্রষ্টব্য: দয়া করে এই পোস্টের অর্ধেক পয়েন্টের নিকটবর্তী "EDIT" দিয়ে শুরু হওয়া আপডেট তথ্যটি পড়ুন - এই সমস্যার পরিবেশ এবং পটভূমি পরিবর্তিত হয়েছে

আমি এখানে একটি বগ স্ট্যান্ডার্ড দেবিয়ান 6.0 ইনস্টল পেয়েছি যে আমি দেবিয়ান পরীক্ষার ভাণ্ডারগুলিতে পার্শ্ববর্তী হওয়ার সিদ্ধান্ত নিয়েছি। আমি টেস্টিং রেপগুলি পরিবর্তে ব্যবহার করার জন্য আমার উত্সগুলিতে তালিকাভুক্ত রেপোগুলির রেফারেন্সগুলি সরিয়ে দিয়ে এটি করেছি list

প্যাকেজ ইনস্টল এবং পুনরায় বুট করার পরে, অন্য ব্যবহারকারীর কাছে মামলা করার চেষ্টা করার সময় আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

root@skaia:~# su joebloggs -
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

যদি আমি বাদ দিই - এটি ঘটে না।

নোট করুন যে ব্যবহারকারীরা সঠিকভাবে রুট হয়ে উঠতে পারে, এটি কেবল তখনই মনে হয় যখন ব্যবহারকারীর পরিবেশ পেতে রুট থেকে অন্য কারও কাছে স্যুইচ করা হয় এবং - ব্যবহার করে।

গুগল এখানে বেশিরভাগই অকেজো। কেবলমাত্র আমি যে জিনিসগুলি পাই তা হ'ল ২০১১ সালের রেফারেন্সsuxপ্যাকেজ সম্পর্কিত যা এ সময়ে সময়ে স্থির হয়েছে বলে মনে হয়।

এটি দেখতে অনেকটা আপগ্রেড ত্রুটির মতো গন্ধযুক্ত, সঠিক পদ্ধতিতে সঠিক প্যাকেজটি টুইট করে স্থিরযোগ্য। কোথা থেকে শুরু করব তা সম্পর্কে আমার ঠিক ধারণা নেই - এগুলি বাদ দিয়ে আমার সিস্টেমটি সম্পূর্ণ স্বাভাবিক এবং প্রত্যাশার মতো কাজ করে।

সম্পাদনা

উপরে বর্ণিত হিসাবে এটি এখন আমার সাথে ডেবিয়ান স্থিতিশীল মেশিনে ঘটছে । এবার কোনও আপগ্রেড বা কিছুই নেই, কেবল সোজা আপ স্টেবল।

হ্যাঁ, এক বছর পরে। হ্যাক সমস্যাটি কী তা এখনও ধারণা নেই।

এটি এখন দেখতে কেমন দেখাচ্ছে (খুব বেশি পরিবর্তন হয়নি):

bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
terraria@skaianet:~$ tty
/dev/pts/0
terraria@skaianet:~$ ls -l /dev/pts/0
crw--w---- 1 root root 136, 0 Oct 10 19:21 /dev/pts/0
terraria@skaianet:~$ ls -l /dev/pts/
crw--w---- 1 root root 136, 0 Oct 10 19:21 0
crw--w---- 1 root root 136, 2 Sep 22 17:47 2
crw--w---- 1 root root 136, 3 Sep 26 19:30 3
c--------- 1 root root   5, 2 Sep  7 10:50 ptmx

এর মতো উত্পন্ন স্ট্রেস:

root@skaianet:~$ strace -f -o tracelog su terraria -

..ও কিছু বিভ্রান্তিমূলক আচরণ করে। এই বার্তাগুলি বরং বিভ্রান্তিকর। কয়েকটি নির্বাচিত লাইন:

readlink("/proc/self/fd/0", "/dev/pts/0", 4095) = 10
#Error code 10? 
15503 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
#Yes there is, and I can interact with it normally
15503 ioctl(255, TIOCGPGRP, [32561])    = -1 ENOTTY (Inappropriate ioctl for device)

আমি এই স্ট্রেস সেশনের পুরো আউটপুটটি সংযুক্ত করেছি - আমি যা করেছি তা su কমান্ড চালানো হয়েছিল, তারপরে অবিলম্বে টার্মিনাল থেকে ctrl + d আউট হয়ে গেল।


1
হাই মাইক. আপনি কি সমস্যা খুঁজে পেয়েছেন?
মিরেসিয়া ভুটকোভিচি

উত্তর:


33
  • su - usernameআপনার su" ব্যাখ্যামূলক ব্যবহারকারীর শেলটি একটি ইন্টারেক্টিভ লগইন শেল হিসাবে চালান" বলতে আপনার অর্থ ব্যাখ্যা করা হয়েছে
  • su username -আপনার দ্বারা ব্যাখ্যা করা হয় suমানে "নিম্নলিখিত চালানো নন-ইন্টারেক্টিভ কমান্ড ( -) নামে ব্যবহারকারীর নাম "
  • পরেরগুলি কেবলমাত্র এ কারণেই কাজ করেছিল:
    • পার্সিংয়ের জন্য আপনার suপাসগুলি আর্গুমেন্টের পিছনেsh
    • shলাগে -মানে "একটি লগ-ইন শেল হিসাবে চালানো (পড়া /etc/profile, ...)"

তবে আপনি যা সম্পর্কে সত্যিই আগ্রহী তা হ'ল: কেন আন্ত-ইন্টারেক্টিভ ? সুবিধাপ্রাপ্ত পিতা-মাতা এবং অনিবদ্ধ শিশুদের মধ্যে নিয়ন্ত্রণকারী টার্মিনাল ভাগ করে নেওয়ার ফলে আপনি " টিটিওয়াই পুশব্যাক সুবিধাযুক্তি ", TIOCSTIবাগ বাগের ঝুঁকিতে পড়ে যাচ্ছেন , যদি না আপনি সত্যিই এটির প্রয়োজন su থেকে আলাদা হন । আপনি যখন su username -ফর্মটি ব্যবহার করেছেন তখন su অনুমান করা হয়েছে যে আপনার একটি নিয়ন্ত্রণকারী টার্মিনালটির প্রয়োজন নেই

শুধুমাত্র একটি নিয়ন্ত্রণকারী টার্মিনাল সহ প্রক্রিয়া সেশন লিডার থাকতে পারে যা প্রক্রিয়া গ্রুপগুলি পরিচালনা করে (কাজ নিয়ন্ত্রণ করে); আপনি যে ট্রেস দিয়েছেন তা bashসনাক্ত করে এটি কোনও সেশন লিডার হতে পারে না।

আপনি উল্লেখ:

যেখানে এটি অচেনা হয়ে যায় তা হ'ল উভয় ফর্ম উবুন্টু এবং সেন্টোস on এ ঠিকঠাক কাজ করে তবে ভ্যানিলা দেবিয়ান-তে কেবল প্রথম রূপটি ত্রুটি ছাড়াই কাজ করে।

উপেক্ষা রূপগুলো পছন্দ suxএবং sudo, অন্তত তিনটি আছে [1] এর সংস্করণ suলিনাক্স: coreutils, util-linuxএবং shadow-utilsডেবিয়ান এর আসে যা থেকে। পরেরটির ম্যানপেজটি উল্লেখ করেছে:

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

এবং দেবিয়ান পতাকা নিয়ে আসে old_debian_behavior; অন্যান্য সংস্করণে অনুরূপ সংকলন-সময় / রানটাইম বিকল্প থাকতে পারে। পরিবর্তনশীলতা জন্য আরেকটি কারণ হতে পারে কিছু ছিল বিতর্ক [2] কিনা যেমন suকি কখনো বিশেষাধিকার এই ভাবে ড্রপ ব্যবহার করা উচিত কিনা TIOCSTIবাগ সেইজন্য সমস্ত একটি বাগ সংশোধন করা হয় (রেডহ্যাট মূলত এটি "WONTFIX" বন্ধ )।

[1]: সম্পাদনা করুন: এটি যোগ করুন SimplePAMAppsএবং এতে hardened-shadow

[২]: সোলার ডিজাইনারের কিছু (পুরাতন) মতামত রয়েছে যা আমি মনে করি এটি পড়ার পক্ষে উপযুক্ত।


2
এটি একটি দুর্দান্ত উত্তর এবং সর্বোত্তম কারণ এটি কেন সঠিকভাবে ব্যাখ্যা করে। আমি আশা করি আপনি এখানে এক বছর আগে
মিকি টি কে

1

আমি / dev / pts * এর মালিকানা এবং অনুমতিগুলি পরীক্ষা করব বা / ডিভ / পিটিএস ডিভাইস সম্পর্কিত উদেবের জন্য একটি নতুন কনফিগারেশন যা আপগ্রেড প্রক্রিয়ার সময় প্রতিস্থাপন করা হয়নি।

রুট হিসাবে চালিয়ে সিস্কেল কী ত্রুটি সৃষ্টি করছে তাও অনুসন্ধান করার চেষ্টা করতে পারেন:

strace -f su - username 2>stderr.log

2
-fসেই স্ট্রেতে আরও ভাল যোগ করা উচিত, যদি su সিদ্ধান্ত নেয় যে শেলটি সাব-প্রসেস হিসাবে চালাচ্ছে, যা এখন সাধারণ বলে মনে হচ্ছে। টার্মিনালের অগ্রভূমি প্রক্রিয়া গোষ্ঠীটি নির্ধারণের জন্য ioctl(..., TIOCSPGRP, ...)সিস্কেলটি এবং আমরা ইতিমধ্যে জানি যে এটি ENOTTY (ডিভাইসের পক্ষে অনুপযুক্ত ioctl) এর সাথে ব্যর্থ হয়েছে যাতে স্ট্রসের অংশটি বেশি সাহায্য করবে না। তবে কমান্ডের উভয় সংস্করণের একটি স্তরের সাথে (সাথে এবং বাইরে -) টিআইওএসপিএসজিআরপি কেন ব্যর্থ হয় তা খুঁজে বের করার সাথে তুলনা করা যেতে পারে ।
অ্যালান কারি

এটি একটি প্রতিশ্রুতিশীল সীসা মত দেখাচ্ছে। আমার / ডিভ / পিটিএস ফোল্ডারে সন্ধান করে, 0, দুটি হিসাবে যথাযথভাবে দুটি আইটেম রয়েছে যার নাম শুল্কের অনুমতি সহ আমি লগইন করা ব্যবহারকারীর দ্বারা মালিকানাধীন 600 হিসাবে নির্ধারিত অনুমতিসমূহ ptmxroot
মিকি টি কে

1
আপনি যখন No job controlবার্তাটির পরে শেল প্রম্পটটি পাবেন , কমান্ডটি চালান ttyএবং এটি আপনাকে জানায় যে আপনি কোন টিটিতে আছেন। তারপর ls -lএটি।
অ্যালান কারি

@ অ্যালানক্র্রি, আপনি ঠিক বলেছেন, আমি যুক্ত করব -f। ধন্যবাদ!
মিরেসিয়া ভুটকোভিচি

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