क्या अनुमतियाँ सेट करने का कोई तरीका है ताकि कोई प्रक्रिया किसी विशिष्ट डिवाइस का उपयोग कर सके?


12

आप पढ़ सकते हैं के रूप में, उदाहरण के लिए यहाँ , logind, जो systemd का एक हिस्सा है, उपयोगकर्ता सत्रों के लिए कुछ उपकरणों के लिए अनुमति सेट कर सकते हैं। व्यवहार में इस तरह का व्यवहार कैसे काम करता है, यह दिखाने के लिए एक vid भी है । संक्षेप में, यदि आप शुरू करते हैं, तो हम कहते हैं, अमारोक, और आप कुछ गीत बजाते हैं, आप तब तक ध्वनि सुनेंगे जब तक आप किसी अन्य उपयोगकर्ता या TTY पर स्विच नहीं कर लेते हैं जहाँ आपके पास केवल लॉगिन प्रॉम्प्ट है। ऐसा इसलिए क्योंकि सक्रिय सत्र निष्क्रिय हो गया।

मुझे पता है कि आप किसी उपयोगकर्ता (या उपयोगकर्ताओं) को एक विशिष्ट समूह में जोड़ सकते हैं, इस मामले में "ऑडियो", और वह इस मुद्दे को 'ठीक' करेगा, लेकिन मैं सोच रहा हूं कि क्या कोई और समाधान है। मैं वास्तव में चाहता हूं कि इस प्रक्रिया के लिए कुछ अनुमतियाँ निर्धारित की जाएं ताकि यह सभी समय साउंड कार्ड का उपयोग कर सके, तब भी जब सभी उपयोगकर्ता अपने सत्रों को बंद कर दें।

क्या यह संभव है? मैं पूछ रहा हूं क्योंकि मैं अक्सर संगीत सुनता हूं और मुझे ज्यादातर समय अपने मॉनिटर की आवश्यकता नहीं होती है, इसलिए मैं सिर्फ स्क्रीन लॉक करता हूं। लेकिन जब मैं स्क्रीन लॉक करता हूं, तो सक्रिय सत्र निष्क्रिय हो जाता है और एमारॉक खेलना बंद कर देता है। और हां, स्क्रीन लॉक होनी चाहिए, न कि बस बंद हो जाए।

संपादित करें:

मुझे नहीं लगता कि यह मायने रखता है कि मैं किस डिस्ट्रो का उपयोग कर रहा हूं क्योंकि अगर बोर्ड पर सिस्टमड है, तो यह बिल्कुल वही मुद्दा होगा। वैसे भी, मैं डेबियन साइड का उपयोग कर रहा हूं, लेकिन कुछ पैकेज जैसे कि systemd, udev (और कुछ निर्भरताएं) प्रयोगात्मक शाखा से हैं, और अब यह 219-9 संस्करण है।


1
संभवतः चलने से nohup program_x & ; disownमदद मिल सकती है। या स्क्रीन
JustMe

लेकिन प्रक्रिया ठीक काम करती है। जब मैं स्क्रीन लॉक करता हूं, तो वह साउंड कार्ड का उपयोग नहीं कर सकता, कम से कम तब तक जब तक मैं स्क्रीन को अनलॉक नहीं करता।
मिखाइल मोरफिकोव

क्या आपने loginctl enable-lingerखाते के लिए उपयोग करने की कोशिश की है?
spuk

आर्क विकी के अनुसार: The systemd user instance is started after the first login of a user and killed after the last session of the user is closed. Sometimes it may be useful to start it right after boot, and keep the systemd user instance running after the last session closes, for instance to have some user process running without any open session. Lingering is used to that effect.यह निष्क्रिय उपयोगकर्ता सत्र की चिंता नहीं करता है क्योंकि systemd --userहर समय मौजूद है।
मिखाइल मोरफिकोव

मैं नियमित रूप से अपने फेडोरा 21 लैपटॉप पर अपने संगीत को बजाता हूं, जबकि मैं इसे बंद करने के बाद सोता हूं। इसलिए मुझे नहीं लगता कि आपके कंप्यूटर स्क्रीन को लॉक करना सिर्फ़ सिस्टमड के कारण सत्र को निष्क्रिय करना चाहिए।
ब्राचली

जवाबों:


1

मुझे यकीन नहीं है, लिनक्स का कौन सा संस्करण / स्वाद आप उपयोग कर रहे हैं, लेकिन ऐसा लगता है कि एसीएल ध्वनि उपकरणों के लिए कंसोल कंसोल द्वारा udv नियमों के माध्यम से नियंत्रित किया जाता है। मेरे डेबियन होस्ट पर, मुझे नीचे कुछ दिखाई देता है जैसे /lib/udev/rules.d/70-udev-acules.dules

# sound devices
SUBSYSTEM=="sound", TAG+="udev-acl"

मैं इसे अनटैग करने के साथ खेलूंगा, इसलिए कंसोलकिट ध्वनि उपकरणों को अपने डेटाबेस में नहीं जोड़ेगा और ध्वनि उपकरणों पर एसीएल का प्रबंधन नहीं करेगा


मैंने अपने डेस्कटॉप पर ऊपर की टिप्पणी और रीबूट के बाद सत्यापित किया। ध्वनि उपकरणों के लिए और अधिक एसीएल प्रबंधन नहीं है और मैं अपनी स्क्रीन लॉक के साथ गाने चला सकता हूं
वेंकैट

मैंने सवाल अपडेट किया। अब, कंसोलिटेक अप्रचलित सामान है - आप इसके बारे में और अधिक पढ़ सकते हैं यहाँ freedesktop.org/wiki/Software/ConsoleKit , और मेरा सिस्टम इसका उपयोग नहीं करता है। लॉगइंड इसके लिए एक प्रतिस्थापन है, और यह मूल रूप से एक ही काम करता है। मैंने आपके द्वारा मुझे दी गई लाइन पर टिप्पणी करने की कोशिश की, और रिबूट के बाद, मेरे सिस्टम को कोई साउंड कार्ड नहीं दिखाई दिया। यहां तक ​​कि अगर यह किया और यह ठीक काम किया, मुझे नहीं लगता कि मैं इस समाधान का उपयोग करेगा - यह इसलिए है क्योंकि यह ऑडियो समूह के लिए एक उपयोगकर्ता को जोड़ने के रूप में एक ही बात होगी, कम से कम मैं इसे इस तरह से देखता हूं।
मिखाइल मोरफिकोव

धन्यवाद, मैंने लॉगइंड विवरणों को देखा और हां, यह समान सामान कर रहा है। यह udev TAG 'uaccess' की तलाश में है ताकि उपकरणों का प्रबंधन किया जा सके और यह /lib/udev/rules.d/70-uaccess.rules में है। यह सभी मूल यूनिक्स अनुमतियों के लिए नीचे आ रहा है, मेरी राय में आपके पास ये विकल्प हैं 1) udv के माध्यम से साउंड कार्ड टैग को हटा दें, इसलिए लॉगइंड ऑडियो डिवाइस और लॉकिंग स्क्रीन का प्रबंधन नहीं करता है, उपयोगकर्ताओं को स्विच करना - ध्वनि उपकरणों की अनुमतियों को नहीं बदलेगा। आप 2 के रूप में परमिट सेट कर सकते हैं) आप बस amarok बाइनरी पा सकते हैं और इसे ऑडियो सेट करने के लिए समूह सेट कर सकते हैं और इसे सेट कर सकते हैं, इसलिए यह प्रभावी समूह ऑडियो बन जाता है
वेंकट सी

मैंने दूसरा समाधान चेक किया, लेकिन दुर्भाग्य से यह काम नहीं कर रहा है। मैं audio groupamarok बाइनरी पर सेट हूं , और अनुमतियाँ इस प्रकार हैं: -rwxr-sr-xलेकिन जब मैं नियमित उपयोगकर्ता के रूप में QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. unnamed app(24333): KUniqueApplication: Cannot find the D-Bus session server: "Unable to autolaunch when setuid"
amarok

हम्म, जीयूआई में चल रहे सेतु कार्यक्रम चलाने की तरह लगता है जैसे पूर्व के लिए सुरक्षा कारणों से जटिल और अवरुद्ध हो गया है: gtk.org/setuid.html । मैं और अधिक शोध करूँगा और आपको बता दूंगा, यह अच्छी चीज है - नई चीजें सीखना!
वेंकट सी

0

मुझे बताएं कि मैं लिनक्स डेस्कटॉप पर ऑडियो के बारे में बहुत कम जानता हूं। यदि यह मदद नहीं करेगा Mea Culpa।

मैं ऑडियो डिवाइस के समूह-अनुमतियाँ सेट करूँगा:

chgrp audio <dev-path>
chmod g+rw <dev-path>

जिस समूह में एमारॉक चलता है, उस समूह में चलने के लिए एमारॉक को बाध्य करने के लिए सिस्टमड का उपयोग करें। सबसे पहले amarok systemd फाइल को / etc / systemd / user / पर कॉपी करें और इसे संशोधित करें:

[Service]
Group=audio

(यह एक संशोधन है, संपूर्ण फ़ाइल नहीं)।

लेकिन आज की लिनक्स-ऑडियो प्रणाली की कई परतों के कारण अधिक "परिष्कृत" उत्तर हो सकता है।


1
के रूप में chgrp audio- के तहत सभी उपकरणों / देव / snd / पहले से ही audioसमूह है, लेकिन जब आप pulseaudio का उपयोग करते हैं, और यह मामला नहीं है। जब यह systemd की सेवा की बात आती है, तो मैंने इसकी कोशिश की, लेकिन मुझे निम्न त्रुटि मिली: Failed at step GROUP spawning /usr/bin/amarok: Operation not permitted. amarok.service: main process exited, code=exited, status=216/GROUPऔर मुझे नहीं लगता कि मैं इन समूहों को एक नियमित उपयोगकर्ता के रूप में बदल सकता हूं। मेरे पास अन्य सेवा है जिसमें समूह परिवर्तन की आवश्यकता है, लेकिन यह एक सामान्य प्रणाली डेमॉन है, और यह ठीक काम करता है। `
मिखाइल मोरफिकोव

अमारोक सेवा रूट द्वारा शुरू नहीं की गई है? यह संभव है कि अमारोक को अन्य विद्यार्थियों के लिए अन्य समूह अनुमतियों की आवश्यकता हो। बहुत बुरा यह इतना आसान नहीं है।
ओथियस

यह सिर्फ एक म्यूजिक प्लेयर है। :)
मिखाइल मोरफिकोव

0

कैसे vnc फ्रेम बफ़र में खिलाड़ी को चलाने के बारे में? मिंट 17 में ...

# apt search vfb
p   xvfb                            - Virtual Framebuffer 'fake' X server
p   xvfb:i386                       - Virtual Framebuffer 'fake' X server

आप https://en.wikipedia.org/wiki/Xvfb में वर्णित डेस्कटॉप को देखने के लिए VNC का उपयोग करेंगे


मैंने Usage scenariosविकि लिंक में पढ़ा है , और मुझे नहीं लगता कि इनमें से कोई भी यहाँ लागू होता है। प्रक्रिया (एमरॉक) को बस कुछ अनुमतियों की आवश्यकता है, और मुझे नहीं पता कि उन्हें कैसे सेट करना है, अगर यह संभव है।
मिखाइल मोरफिकोव

आपको किन अनुमतियों की आवश्यकता है? मुझे अत्यधिक संदेह है कि सिस्टम डिवाइसों पर अनुमतियों को सिर्फ इसलिए बदल रहा है क्योंकि आप टैटी को स्विच करते हैं और अगर मैं इसे प्लेग की तरह से बचने के लिए अपना सर्वश्रेष्ठ करने जा रहा हूं। मुझे नहीं पता है कि यह आपकी मदद करेगा या नहीं, मैंने इसका परीक्षण नहीं किया है, लेकिन यह एकमात्र विचार है जो मेरे पास काम करने का मौका है। साथ ही, उपयोगकर्ताओं के पास अनुमतियाँ हैं, प्रक्रियाएँ नहीं हैं।
स्मोक्स 2345

बस सवाल में पहला लिंक पढ़ें।
मिखाइल मोरफिकोव

0

Pulseaudio को xdg ऑटोस्टार्ट के माध्यम से शुरू किया गया है, जिसे नीचे पाया जा सकता है ~/.config/autostart/। एक फ़ाइल है pulseaudio.desktop, और उस फ़ाइल में मैंने डिफ़ॉल्ट execलाइन को इस एक में बदल दिया है :

Exec=/usr/bin/sg audio -c "pulseaudio -D"

जब मैं सिस्टम में लॉग इन करता हूं, तो पल्सीडियो प्रक्रिया इस तरह दिखाई देती है:

$ ps -eo user,group,args | grep pulse
morfik   audio    pulseaudio -D
morfik   audio    /usr/lib/pulseaudio/pulse/gconf-helper

और अब मैं हर समय संगीत सुनने में सक्षम हूं। मुझे लगता है कि यह वह उपाय है जिसकी मुझे तलाश थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.