नई फ़ाइलें बनाते समय उपयोगकर्ता के लिए डिफ़ॉल्ट समूह सेट करें?


37

मैं अक्सर अपने आप को चेज़-इन फ़ाइलों को पाता हूं क्योंकि मैंने उन्हें एसएसएच के माध्यम से बनाया था और वे jm:jmउदाहरण के लिए स्वामित्व में हैं ।

फिर अपाचे को इसे एक्सेस करने की अनुमति देने के लिए, मुझे उदाहरण के लिए करना होगा chown jm:www-data

मुझे यकीन है कि जब मैं अपने नाम के तहत समूह का उपयोग करने के बजाय किसी अन्य को निर्दिष्ट कर सकता हूं, तो मैं निर्दिष्ट कर सकता हूं?

या उपयोगकर्ताओं / समूहों के प्रबंधन का एक बेहतर तरीका है?

जवाबों:


73

यदि आप चाहते हैं कि किसी विशेष निर्देशिका में सभी नई फाइलें किसी विशेष समूह के स्वामित्व में हों, तो बस उस setgidपर थोड़ा लागू करें :

chgrp www-data /some/dir
chmod g+s /some/dir

यदि आपके पास निर्देशिकाओं का एक मौजूदा पेड़ है जिसे आप इस व्यवहार को लागू करना चाहते हैं, तो आप ऐसा कर सकते हैं find:

find /some/dir -type d -exec chgrp www-data {} +
find /some/dir -type d -exec chmod g+s {} +

(यदि निर्देशिका पहले से ही संबंधित समूह के स्वामित्व में है, तो आप इन दोनों उदाहरणों में पहले आदेश को छोड़ सकते हैं)।


1
अच्छा जवाब! क्या आप स्पष्ट कर सकते हैं कि प्रतीकों का क्या ... {} +मतलब है?
अलेक्जेंडर लोमिया

3
वे findकमांड के तर्क हैं , मैन पेज में शामिल हैं। पहले मंगलाचरण के लिए, यह कमांड चलाएगा chgrp www-data, कई परिणामों को तर्क के रूप में जोड़ देगा (बजाय प्रत्येक परिणाम के लिए एक बार आदेश को लागू करने के बजाय जैसा कि आप प्राप्त करेंगे {} \;)।
जेम्स हेनस्ट्रिज

6
उपयोग क्यों नहीं chmod g+s /some/dir -R? बस परीक्षण किया गया है और यह काम करने लगता है।
क्रैगमोन्की

13
@ क्रेगमॉन्की: जो सेटगिड बिट को भी नियमित फाइलों पर सेट करेगा। यदि उनमें से कोई भी निष्पादन योग्य होता है, तो यह सिस्टम पर किसी अन्य उपयोगकर्ता को उस फ़ाइल के स्वामित्व वाले समूह के विशेषाधिकार प्राप्त करने की अनुमति देगा।
जेम्स हेनस्ट्रिज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.