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

वर्तमान में, मेरे पास एक व्यवस्थापक है sudo chown, लेकिन मैं चाहता हूं कि गंतव्य स्वामी इसे स्वयं करे, उस उपयोगकर्ता के पास तब और अनुमतियों की आवश्यकता के बिना। मान लें कि मूल स्वामी "प्रमुख" है, और अंतिम स्वामी "दर्शक" होना चाहिए। कोई भी उपयोगकर्ता एक ही समूह में नहीं है।

sudo chown -R audience:watchers /usr/files/pathofdir बिल्कुल सही नहीं है, क्योंकि मैं नहीं चाहता कि दर्शकों को चाउन का उपयोग करने का असीमित अधिकार हो। मेरा पहला अनुमान /usr/bin/chown और /usr/bin/chgrp की अनुमति के साथ /etc/sudoers में "दर्शकों" को जोड़ने का प्रयास करना था। लेकिन यह बहुत अधिक अधिकार है।

मैंने विशेष रूप से दर्शकों के लिए एक स्क्रिप्ट लिखने के बारे में सोचा, लेकिन मुझे नहीं पता कि उस स्क्रिप्ट को सही अनुमति कैसे दी जाए और अब और नहीं।

ऐसा करने का एक अच्छा तरीका क्या है?

answer

आप तर्कों और सभी के साथ एक पूर्ण कमांड निर्दिष्ट कर सकते हैं sudoers, इस स्थिति में उपयोगकर्ता के पास निर्दिष्ट कमांड को केवल निर्दिष्ट तर्कों के साथ चलाने का अधिकार होगा। तो इस sudoersप्रविष्टि को आपकी समस्या का समाधान करना चाहिए:

audience  ALL=/usr/bin/chown -R audience\:watchers /usr/files/pathofdir

हालाँकि, मुझे लगता है कि आपको ACL की जाँच करनी चाहिए, क्योंकि मुझे संदेह है कि निर्देशिका पर डिफ़ॉल्ट ACL के उपयोग से आपकी समस्या को अधिक आसानी से नियंत्रित किया जा सकता है। उदाहरण के लिए यह पोस्ट देखें ।

@ लेसेक ने बताया कि मैं शायद एसीएलएस का उपयोग करना चाहता था। ऐसा लगता है कि यह मेरे लिए काम कर रहा है:

sudo setfacl -RPdm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPdm group:watchers:rwX /usr/files/pathofdir
sudo setfacl -RPm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPm group:watchers:rwX /usr/files/pathofdir

शायद अधिक संक्षिप्त वाक्यविन्यास है, लेकिन यह मेरा पहला उपयोग हैsetfacl