कई उपयोगकर्ताओं के साथ एक टर्मिनल साझा करना (स्क्रीन के साथ या अन्यथा)


11

मैं एक सर्वर स्थापित कर रहा हूं जहां कई एप्लिकेशन पर कई डेवलपर्स काम कर रहे हैं।

मुझे पता चला है कि कैसे कुछ डेवलपर्स को आवश्यक एप्लिकेशन निर्देशिकाओं का उपयोग करके setgid bitऔर default ACLsसमूह में किसी को भी एक्सेस देने के लिए साझा एक्सेस प्रदान करना है।

इनमें से कई एप्लिकेशन एक टर्मिनल के तहत चलते हैं, जबकि विकास के लिए आसान पहुंच के लिए। जब मैं अकेले काम करता हूं, तो मैं एक एप्लिकेशन के लिए एक उपयोगकर्ता सेट करता हूं और उस उपयोगकर्ता के रूप में स्क्रीन चलाता हूं। इसका नकारात्मक पहलू यह है कि प्रत्येक डेवलपर को screen sessionपासवर्ड जानने की आवश्यकता का उपयोग करना पड़ता है और उपयोगकर्ता और एप्लिकेशन खातों को अलग रखना कठिन होता है।

एक तरीका जो काम कर सकता था वह है स्क्रीन मल्टीयूज़र फीचर्स का उपयोग करना। वे आउट-ऑफ-द-बॉक्स काम नहीं करते हैं, हालांकि स्क्रीन जरूरत के बारे में शिकायत करता है suid root। क्या देने से कोई डाउनसाइड होता है? मैं suid rootकुछ भी उपयोग करने के बारे में बहुत सावधान हूं । शायद वहाँ एक कारण है कि यह डिफ़ॉल्ट नहीं है?

क्या मुझे इसके साथ करना चाहिए screenया क्या मुझे ऐसा करने का कोई अन्य बुद्धिमान तरीका है?

जवाबों:


24

हां, आप इसे कर सकते हैं screenजिसके पास बहुउपयोगकर्ता समर्थन है।

सबसे पहले, एक नया सत्र बनाएँ:

screen -d -m -S multisession

इसे संलग्न करें:

screen -r multisession

बहुउपयोगकर्ता समर्थन चालू करें:

प्रेस Ctrl-aऔर टाइप करें

:multiuser on
:acladd USER ← use username of user you want to give access to your screen

अब, Ctrl-a dऔर सत्र सूचीबद्ध करें:

$ screen -ls
There is a screen on:
    4791.multisession   (Multi, detached)

अब आपके पास एक मल्टीयूज़र स्क्रीन सेशन है। multisessionउपयोगकर्ता को acl'd नाम दें , ताकि वह इसे संलग्न कर सके:

screen -x youruser/multisession

और बस।

एकमात्र दोष यह है कि जड़ के screenरूप में चलना चाहिए suid। लेकिन जहां तक ​​मुझे पता है डिफ़ॉल्ट, सामान्य स्थिति है।

एक और विकल्प है screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

उम्मीद है की यह मदद करेगा।


1
यह वही है जो मैंने कोशिश की, जहां स्क्रीन जरूरत के बारे में शिकायत करती है suid root। मुझे लगा कि मैं यह पूछूंगा कि क्या यह उन कार्यक्रमों के लिए रूट अनुमतियों को जोड़ने से पहले काम करने का पसंदीदा तरीका है जो डिफ़ॉल्ट रूप से उनके पास नहीं हैं
varesa

अजीब। मेरे screenहै suidजड़।
स्किल डी फ्रॉड

मुझे लगता है कि यह एक दूर-निर्भर चीज हो सकती है। मैंने CentOS 6 या 7 (जांचने की आवश्यकता) पर प्रयास किया
22

जो इसके लायक है, screenवह suid rootउबंटू 16.04 पर भी नहीं है ।
आइकेडवाटर

6
screen -S $screen_id -X multiuser on, screen -S $screen_id -X acladd authorized_user नियंत्रण के बजाय-एक आदेश जवाब के लिए एक अच्छा अतिरिक्त होगा
रिबमार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.