क्या उपयोगकर्ता को नए समूह में जोड़ने के बाद अनुमतियों को रीफ्रेश करने की आवश्यकता है?


26

Ubuntu सर्वर पर, मैंने एक से अधिक बार ध्यान दिया है कि उपयोगकर्ता को एक समूह में जोड़ने के बाद जब तक सिस्टम को रिबूट नहीं किया जाता है तब तक उपयोगकर्ता के पास समूह की अनुमति नहीं है। उदाहरण के लिए:

उपयोगकर्ता 'हडसन' को निर्देशिका 'रूट: छाया / आदि / छाया' पढ़ने की अनुमति चाहिए, इसलिए मैं हडसन को छाया समूह में जोड़ता हूं। हडसन अभी भी नहीं पढ़ सकता है। तो, मैं 'sudo shutdown -h -r -r now' और जब सिस्टम फिर से आता है तो उपयोगकर्ता हडसन पढ़ सकता है।

क्या एक रिबूट की आवश्यकता है या उपयोगकर्ता को समूह में जोड़ने के बाद अनुमतियाँ प्राप्त करने का एक बेहतर तरीका है?


भविष्य के संदर्भ के लिए, मैंने नीचे एक वास्तविक समाधान जोड़ा है। मैं हैरान था कि यह एक समस्या थी। उम्मीद है की वो मदद करदे।
TryTryAgain

जवाबों:


25

मैं एक समाधान की तलाश में था, इस पोस्ट पर आया, और फिर बाद में एक पाया!

मैंने सोचा था कि मैं वास्तव में एक समाधान पेश करूंगा ताकि दूसरे लोग लाभान्वित हो सकें। लॉग इन और आउट 1995 है।

से लिया गया:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

इसलिए यदि आपको उस cdromसमूह के लिए अनुमतियां प्राप्त करने की आवश्यकता है जिसे आपने अपना उपयोगकर्ता जोड़ा है:

newgrp cdrom 

उदाहरण के लिए

तो कदम होगा:

#adduser my_user cdrom

और फिर

$newgrp cdrom

मैंने पुष्टि की है कि यह काम करता है।

$groupsसीएलआई से एक सरल जांच से पता चलता है कि उपयोगकर्ता समूह में है। और उस समूह के काम करने के लिए आवश्यक विशेषाधिकार के साथ एक त्वरित निष्पादन।

अपनी खिड़कियों को मारने और लॉगिन और लॉगआउट करने की आवश्यकता नहीं है! आशा है कि दूसरों की मदद करता है!

अतिरिक्त जानकारी (जिटौ की सहायक टिप्पणी के आधार पर): "[यह] समाधान केवल चालू खुले शेल के लिए काम करेगा। यदि आपके पास एक और शेल खुला है, तो आपको परिवर्तनों को ध्यान में रखने के लिए उसी कमांड का उपयोग करने की आवश्यकता होगी।"


1
यह बहुत अच्छा है, यह वास्तव में काम करता है !!! : D
dadexix86

3
ध्यान दें कि TryTryAgain का समाधान केवल वर्तमान खोले गए शेल के लिए काम करेगा। यदि आपके पास एक और शेल खुला है, तो आपको परिवर्तनों को ध्यान में रखने के लिए उसी कमांड का उपयोग करना होगा।
जिटौ

वैसे भी चल रहे एक्स sssion के लिए ऐसा करने के लिए?
Artfulrobot

@artfulrobot माफ़ करें, मुझे पक्का यकीन नहीं है कि आपका क्या मतलब है। आप एक नया प्रश्न खोलना चाहते हैं और इस पोस्ट और समाधान को सर्वोत्तम रूप से मदद के लिए संदर्भित कर सकते हैं।
TryTryAgain

19

किसी नए समूह में उपयोगकर्ता को जोड़ते समय, उपयोगकर्ता को लॉग आउट करना होगा और उसे प्रभावित होने के लिए वापस लॉग इन करना होगा। जबकि एक रिबूट उसे पूरा करेगा, इसकी आवश्यकता नहीं होनी चाहिए।


पैकेज स्थापित करते समय मैं उस उपयोगकर्ता को कैसे लॉगआउट करता हूं जिसे एप्टीट्यूड द्वारा बनाया गया था?
माइकल प्रेस्कॉट

क्या पैकेज hudsonउपयोगकर्ता बनाता है ?
Womble

जैसा कि जस्टिन ने उत्तर दिया, सेवा को रोकने और शुरू करने का प्रयास करें।
स्कॉट पैक

मैं यह करता हूं। बस लॉग आउट करें और लॉग इन करें।
ट्रेंट स्कॉट

आपको वास्तव में लॉग आउट करने और वापस धन्यवाद करने की आवश्यकता नहीं है। मैंने नीचे एक कार्यशील समाधान पेश किया। परीक्षण किया, और खुश!
TryTryAgain

8

उपयोगकर्ता को समूह में जोड़ना वर्तमान में लॉग इन उपयोगकर्ताओं पर प्रभाव नहीं डालता है।

एक डेमॉन के मामले में, आपको नए समूहों को लागू करने के लिए इसे पुनरारंभ करने की आवश्यकता है।

इसके अलावा, डेमॉन में एक विकल्प का उपयोग करके डेमन को फिर से शुरू करने से काम नहीं चलेगा क्योंकि यह वर्तमान वातावरण को विरासत में देगा।

इसे काम पर लाने का सबसे आसान तरीका है कि डेमन को पूरी तरह से रोक दिया जाए और इसे फिर से शुरू किया जाए, जैसे कि ।।

/etc/init.d/foo stop ; /etc/init.d/foo start

4

यह बहुत आसान है, आप टाइप करके अपने वर्तमान पहुँच स्तर की जाँच कर सकते हैं:

id

अपने समूहों को फिर से लोड करने के लिए आपको बस आवश्यकता है:

su - $USER

उसके बाद फिर से पहुँच स्तर की जाँच करें:

id

और आप देखेंगे कि नया समूह अब सक्रिय है।


1

एक अलग विफलता मोड है जिसे यहां भी संबोधित किया जाना चाहिए।

यदि व्यवस्थापक अपडेट किया गया है, /etc/groupलेकिन अपडेट करने में विफल रहा है /etc/gshadow(सिस्टम पर यह सेटअप है), तो लॉग आउट और बैक वास्तव में आपको नए समूह में असाइन नहीं करेगा।

संदेहास्पद रूप से groupsआप असली, वर्तमान स्थिति दिखाई देगा, जबकि idगलत तरीके से उत्पादन जो इंगित करता है कि आप प्रिंट होगा रहे हैं ठीक से समूह का सदस्य।

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

मैं इसका उपयोग नहीं कर सकता newgrpक्योंकि यह पासवर्ड मांगता है, और मेरे पास पासवर्ड नहीं है, केवल SSH सार्वजनिक कुंजी प्रमाणीकरण है।

इसका समाधान यह होगा कि व्यवस्थापक मैन्युअल संपादन को वापस कर दे /etc/groupsऔर फिर से इसे दोबारा करे sudo gpasswd -a tripleee adm; या वैकल्पिक रूप से, grpconvपरिवर्तनों को मर्ज करने के लिए उपयोग करने के लिए (जो मैंने /server//a/389719//33333 से उठाया है )


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