বিভিন্ন ব্যবহারকারী এবং চলমান স্ক্রিন হিসাবে সুডো


167

আজ খুঁজে পেয়েছি যে পৃথক ব্যবহারকারীর হিসাবে চলমান স্ক্রিনটি আমার কাজ করবে না!

অর্থাত

ssh bob@server         # ssh into server as bob
sudo su "monitor" -
screen                 # fails: Cannot open your terminal '/dev/pts/0'

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা "মনিটর" ব্যবহারকারী হিসাবে চলে। স্ক্রিনে আউটপুট দেখতে আমরা এটি একটি স্ক্রিন সেশনে চালিত করি। সমস্যাটি হ'ল আমাদের বেশ কয়েকটি ব্যবহারকারী রয়েছেন যারা তাদের নিজের অ্যাকাউন্টে লগ ইন করেন (যেমন বব, জেমস, সুসি, ইত্যাদি ...) এবং তারপরে তারা "মনিটর" ব্যবহারকারীর সাথে সুডো করে। তাদের "মনিটর" ব্যবহারকারীর কাছে অ্যাক্সেস দেওয়া প্রশ্নছাড়া।


13
এটিই যে ত্রুটিটি আপনি পাচ্ছেন? "আপনার টার্মিনাল '/ dev / pts / 0' খুলতে পারে না - দয়া করে পরীক্ষা করুন।"
জিম

হ্যাঁ এক আমি বুঝতে পারছি কেন এটি ঘটছে তবে কি কোনও কর্মবিরতি আছে?
ভাগ্যটাইক্সি

4
আপনার আদেশগুলি সম্পর্কে একটি মন্তব্য - আমি লোকদের দৌড়তে দেখছি sudo su "user" -। কেন ব্যবহার sudo -u user -sকরবেন না ?
অ্যান্ড্রু আইলেট

2
@ জিম: অনুপস্থিত ত্রুটি বার্তা সরবরাহের জন্য +1।
ডেনিস উইলিয়ামসন

1
@ অ্যান্ড্রু আমি জানি বেশিরভাগ ছেলেরাই sudo su- আমি মনে করি এটি কেবল লোকেরা অভ্যস্ত হয়ে যায় (আমার ক্ষেত্রে এটি এর কারণ যা আপনার কোনও সুডোর পতাকাগুলি জানার দরকার নেই sudo su- আমি মনে করি না যে আমি কখনও সুডো ম্যানপেজটি পড়েছি :)
voretaq7

উত্তর:


245

script /dev/nullআপনি suপর্দা আরম্ভ করার আগে ব্যবহারকারী হিসাবে চালানোর চেষ্টা করুন - এটি একটি ঘেটো সামান্য হ্যাক, তবে এটি পর্দা খুশি করা উচিত।


5
পুনরায়: সুরক্ষা সম্পর্কিত বিষয়গুলি, আমি কিছুই সম্পর্কে অবগত নই (তবে এর অর্থ এই নয় যে কোনওটি নেই :) - আইআইআরসি এটি "স্ক্রিপ্ট" একটি নতুন টার্মিনাল ডিভাইস খোলার পার্শ্ব-প্রভাবের উপর নির্ভর করে (ব্যবহারকারী এটির অনুরোধ হিসাবে) , এবং যেহেতু আপনি স্ক্রিপ্টের আউটপুটটি / dev / নালতে প্রেরণ করছেন সেখানে ক্যাপচার করার মতো কিছুই নেই। এটি টিটি গ্রুপে (আইএমএইচও) ব্যবহারকারীদের যুক্ত করার চেয়ে স্পষ্টতই নিরাপদ
ভোরেটাক 7

2
@ স্পষ্টতই সত্যি বলতে আপনি একাধিক শেলগুলি বিভ্রান্ত করার মতো সন্ধান করতে পারবেন না যদি আপনি কোনও ইউনিক্স সিস্টেম প্রশাসক হন - যা বলেছিল, scriptচালু করার জন্য ব্যবহার করা যেতে পারে screen। তারপরে আপনাকে কেবল দুবার প্রস্থান করতে হবে (একবারের জন্য screen, একবারের জন্য su)। (এটি এমন কিছু যা scriptম্যান পেজটি আপনার জন্য স্পষ্ট করতে পারে, আপনি যদি এটি পড়ার জন্য সময় নেন ...)
voretaq7

10
বা শুধু চালান sudo -u bob script -q -c 'screen -dr myscreen' /dev/null। তারপরে এখান থেকে প্রস্থান / বিচ্ছিন্ন হওয়ার জন্য আপনার কাছে কেবল একটি টার্মিনাল রয়েছে।
অ্যান্ডি শুলমান

4
ধন্যবাদ, এটি আমাকে বাঁচিয়েছে। তবে কেন এটি ঠিক করে? আমি যা বুঝতে পেরেছি, তা স্টাডাউট থেকে শুরু করে ... কোথাও ছাপা হয় না। এবং যে কোনওভাবে পর্দা স্থির করে।
সুডো

3
@ সুডো এটির কাজটি করার জন্য scriptএটির নিজস্ব টিটি ডিভাইসটি খোলে, এটি ব্যবহারকারীর মালিকানাধীন (এটি দেখুন /devএবং আপনি এটি চালানোর পরে তা দেখতে পাবেন script)। screenতারপরে সেই টিটিটি ডিভাইসটি ধরে রাখে (যা ব্যবহারকারীর মালিকানাধীন screenতাই এটি অ্যাক্সেস করতে কোনও সমস্যা হয় না)। এটি মোট হ্যাক কাজ, কিন্তু এটি কাজ করে। আমার কয়েকটি মেশিনের দিকে তাকালে এটি মনে হয় যে স্ক্রিনের নতুন সংস্করণগুলি সেটুয়েড-রুট ইনস্টল করবে বলে মনে হয় যা কাজ করে, তবে এর অর্থ আপনার চারপাশে আরও একটি সেটুইড-রুট বাইনারি রয়েছে যা কিছু লোককে ন্যায়সঙ্গতভাবে অস্বস্তিকর করে তোলে।
voretaq7

33

আমি screenযে ব্যবহারকারী (গুলি) এর জন্য চারপাশে একটি মোড়ক ফাংশন ব্যবহার করছি sudo su। এটি মোড়ক ফাংশন যা আমি ব্যবহারকারী (গুলি) এ যুক্ত করেছি ~/.bashrc:

ফাংশন স্ক্রিন () {
  / ইউএসআর / বিন / স্ক্রিপ্ট-কি-সি "/ ইউএসআর / বিন / স্ক্রিন $ {*}" / দেব / নাল
}

এটি আমাকে যে বিকল্পগুলি এবং প্যারামিটারগুলি ব্যবহার screenকরতে চাইতে পারে তার সমস্ত ব্যবহার করার অনুমতি দেয় । আমি সিস্টেম জুড়ে এই ফাংশনটি রাখার বিষয়ে চিন্তাভাবনা করছি।


1
পুরোপুরি কাজ করে। এই সিস্টেম-ব্যাপী যারা চান তাদের জন্য, আমি এটিকে /etc/bash.bashrc- এ যুক্ত করার পরামর্শ দিচ্ছি - সমস্ত ব্যবহারকারীর জুড়ে কাজ করে।
সোমগুয়ে 123

2
এটি সঠিকভাবে স্ক্রিনে যুক্তিগুলি উদ্ধৃত করবে না, অন্যথায় একটি ভাল সমাধান।
augurar

7

ধরে নিই যে তারা যেভাবেই হোস্টে এসএসএইচিং করছে, আপনি প্রতিটি ব্যবহারকারীর জন্য the মনিটর / .ssh / অনুমোদিত_কিজ ফাইলে মনিটরের অ্যাকাউন্টে অ্যাক্সেসের প্রয়োজনের জন্য সর্বজনীন এসএসএস কী যুক্ত করতে পারেন। তারপরে প্রতিটি ব্যবহারকারীর রিমোট মেশিনে তারা চালাতে পারে

ssh -t monitor@remote.machine স্ক্রিন -আরডি


এটি অন্য একটি ভাল পদ্ধতির - আপনাকে অনুমোদিত কী ফাইলগুলিতে জোর করে কমান্ডগুলি নির্দিষ্ট করতে হবে যদিও (ভাগ্যসাইটেক্সির "তাদের" মনিটর "ব্যবহারকারীকে অ্যাক্সেস দেওয়া প্রশ্নের বাইরে নয়" উপরে নোট - জোর করে আদেশগুলি তাদের কেবল সীমাবদ্ধ করতে পারে স্ক্রিন সেশনটি সংযুক্ত করা হচ্ছে)
voretaq7

2
আমার উত্তরে কীভাবে এটিকে সম্বোধন করা যায় তা আমি নিশ্চিত ছিলাম না, কারণ তিনি বলেছিলেন যে "তাদের অ্যাক্সেস দেওয়া ... প্রশ্ন থেকে যায় না", তবে তিনি আরও বলেছিলেন ... ... তারা 'মনিটর' ব্যবহারকারীর কাছে চলে যান "। তবে আমি সম্মত, অনুমোদিত_পোক্রে কমান্ড সীমাবদ্ধতার বিষয়টি যত্ন নেওয়া উচিত।
অ্যালেক্স

7

ধরে নিই আমরা এই ত্রুটি সম্পর্কে কথা বলছি:

$ sudo su - bob
$ screen
Cannot open your terminal '/dev/pts/5' - please check.

এখানে একটি ওয়ান-লাইনার (উদাহরণস্বরূপ "ওরফে গবব" হিসাবে ব্যবহৃত হতে পারে):

sudo su - bob -c "script -c bash /dev/null"'

ব্যাখ্যা:

এটি ব্যবহারকারীর বব হিসাবে একটি শেল (লগইন শেলের মতো) শুরু করবে। ব্যবহারকারীর বব শুরু হয় script, যা একটি ব্যাশ (ড্যাশ বা ksh হতে পারে ...) অনুরোধ করতে বলা হয় এবং সেশনের একটি অনুলিপি ফেলে দেওয়া হয়।


0

সম্ভবত প্রশ্নে থাকা ডিভাইসে অনুমতিগুলি পরিবর্তন করতে হবে বা এমন একটি গ্রুপে মনিটর যুক্ত করতে হবে যার ডিভাইসটি পড়ার অনুমতি রয়েছে, এটি আমার প্রথম ঝোঁক হবে। তবে আপনাকে এটির নিরাপত্তা সম্পর্কিত প্রভাবগুলি বিবেচনা করতে হবে।


0

আপনি বলছেন আপনি করেন:

sudo su "monitor" -

আমি পেছনের ড্যাশ সম্পর্কে ভাবছি। আমি সাধারণত:

sudo su - username

ড্যাশ (প্রতি su পৃষ্ঠা পৃষ্ঠায়) su কে "শেলটিকে একটি লগইন শেল তৈরি করতে" বলে tells এর অর্থ এটি সাধারণ সমস্ত শেল প্রারম্ভিক স্ক্রিপ্টগুলি উত্সযুক্ত করবে এবং PATH এবং হোমের মতো জিনিসগুলি সঠিকভাবে সেট করবে।


3
নাঃ। sudo su - usernameএবং sudo su username -একই জিনিস।
টিম লুডুইনস্কি

-4

আমি শুধু এই সমস্যাটি আঘাত করেছি। chmod +rw $(tty)সুডো চালানোর আগে এটির সাথে সমাধান করুন । এই সমাধানটির সমস্যাটি হ'ল যে কেউ এর পরে আপনার টার্মিনালে সংযুক্ত হতে পারে এবং স্নুপ করতে পারে।


2
দুর্দান্ত সমাধানের মতো শোনাচ্ছে।
ইভান ক্যারল

10
@ ইভানক্রোল এটি পুরো দুনিয়াকে তার টার্মিনালে পড়তে এবং লেখার অ্যাক্সেস দেয় এমন অংশ ব্যতীত এটি একটি দুর্দান্ত সমাধান । কেবল একটি সামান্য সুরক্ষা সমস্যা - পাসওয়ার্ড গ্রহণের আগে টার্মিনাল সুরক্ষা যাচাই করে ( gpgউদাহরণস্বরূপ) ব্যতীত কোনও প্রোগ্রামই এটিকে যত্ন করে না । এবং অবশ্যই তিনি দূষিত ব্যবহারকারীদের সাথে এমন কোনও সিস্টেমে থাকবেন না যারা ttyপাসওয়ার্ডগুলি স্নিগ্ধ করবে এবং ...
voretaq7

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