उपयोगकर्ताओं के बीच साझा की गई फ़ाइलों को रखने के लिए सबसे उपयुक्त निर्देशिका क्या है?


82

या: मैं समूह से संबंधित फाइलें कहां रख सकता हूं?

मान लीजिए कि यूनिक्स प्रणाली पर दो उपयोगकर्ता हैं: जो और सारा । वे दोनों फिल्म-उत्साही समूह के सदस्य हैं । मुझे उनकी मूवी फाइलें कहां रखनी चाहिए?

  • /home/{joe,sarah}/moviesउचित नहीं है क्योंकि वे निर्देशिका जो / सरह से संबंधित हैं , उनके समूह के लिए नहीं;

  • /home/movies-enthusiastयह भी उचित नहीं है, क्योंकि फिल्में-उत्साही एक समूह है, उपयोगकर्ता नहीं;

  • /var/movies-enthusiast एक विकल्प हो सकता है, लेकिन मुझे यकीन नहीं है कि यह एफएचएस द्वारा अनुमत है;

  • /srv/movies-enthusiast एक विकल्प यह भी हो सकता है, हालांकि फिल्में सिस्टम सेवाओं द्वारा आवश्यक फाइलें नहीं हैं।


6
FHS के उल्लेख के लिए वोट किया गया! 20 साल के इस * निक्स यूजर और कैजुअल सिस एडमिन को इसकी जानकारी नहीं थी। धन्यवाद!
CPRitter

जवाबों:


71

उपयोग न करें

  • /usrकेवल पढ़ने योग्य डेटा के लिए है। यहां डेटा केवल प्रशासनिक कारणों (जैसे नए पैकेज की स्थापना) के लिए बदलना चाहिए
  • /opt आम तौर पर ऐसे कार्यक्रमों के लिए होता है जो स्व-निहित होते हैं या किसी कारण से सिस्टम के बाकी हिस्सों से अलग-थलग करने की आवश्यकता होती है (उदाहरण के लिए कम और मध्यम बातचीत वाले हनीपोट प्रोग्राम)।
  • /varके लिए है "फ़ाइलें जिनकी सामग्री लगातार प्रणाली के सामान्य ऑपरेशन --- इस तरह लॉग, स्पूल फ़ाइलें, और अस्थायी ई-मेल फ़ाइलों के रूप में के दौरान बदल जाने की उम्मीद है।" मैं इसे इस तरह से सोचना पसंद करता हूं: यदि आपका डेटा किसी सूची में सही संक्षेप में नहीं दिखेगा, तो यह आम तौर पर इसमें नहीं होता है /var(हालांकि, इसके अपवाद हैं।)

उपयोग

  • /homeउपयोगकर्ता होम निर्देशिकाओं के लिए है। कुछ इस निर्देशिका को समूह फ़ाइलों के लिए एक क्षेत्र होने के रूप में भी देखते हैं। FHS वास्तव में नोट करता है कि, "बड़े सिस्टम पर (विशेषकर जब / होम निर्देशिकाओं को NFS का उपयोग करते हुए कई मेजबानों के बीच साझा किया जाता है) यह उपयोगकर्ता के घर निर्देशिकाओं को उपविभाजित करने के लिए उपयोगी होता है। उपविभागों को जैसे / होम / स्टाफ, / होम के उपनिर्देशिकाओं का उपयोग करके पूरा किया जा सकता है। / मेहमान, घर / छात्र, आदि
  • /srvसमूह फ़ाइलों के लिए एक स्वीकार्य और अक्सर पसंदीदा स्थान है। मैं आमतौर पर क्रिस-डाउन के उत्तर में वर्णित कारण के लिए समूह-साझा फ़ाइलों के लिए इस निर्देशिका का उपयोग करता हूं ; मैं समूह फ़ाइल साझाकरण को एक सेवा के रूप में देखता हूं जो सर्वर प्रदान करता है।

man hierFHS द्वारा वर्णित प्रत्येक निर्देशिका के उद्देश्य की अधिक जानकारी के लिए hier (7) मैन पेज ( ) देखें।


1
मुझे लगता है कि कुछ और सामान्य मामलों में कोई /srv/dataडेटा फ़ाइलों के लिए निर्देशिका का उपयोग कर सकता है ।
विक्टर यारेमा

3
आदमी का उल्लेख करने के लिए +1। मुझे नहीं पता था कि अस्तित्व में है।
ज़ैक बॉयड

धन्यवाद, एक नया लिनक्स उपयोगकर्ता के लिए बहुत उपयोगी जानकारी और संदर्भ।
शिवम

28

मेरी राय में, सही जगह है /srv/movies-enthusiast। एक "सेवा" के लिए एक डेमॉन या प्रोग्राम होना जरूरी नहीं है, यह सिर्फ एक सेवा है जो सिस्टम प्रदान करता है (जैसे कि वहां आपकी फिल्में प्राप्त करने में सक्षम होना चाहिए)। यहाँ FHS से एक उद्धरण है :

/ srv में साइट-विशिष्ट डेटा होता है जो इस सिस्टम द्वारा दिया जाता है।

मुझे निश्चित रूप से लगता है कि आपका उपयोग उस परिभाषा के अंतर्गत आता है, और एक सेवा प्रदान करता है।


मुझे लगता है कि कुछ और सामान्य मामलों में कोई /srv/dataडेटा फ़ाइलों के लिए निर्देशिका का उपयोग कर सकता है ।
विक्टर यारेमा

11

फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड (FHS) "यूनिक्स वितरण डेवलपर्स, पैकेज डेवलपर्स, और सिस्टम कार्यान्वयन" आदेश की गड़बड़ी बनाने के लिए नहीं में का पालन करने के लिए एक लेआउट निर्दिष्ट करता है अपने नाम स्थान।

जैसा कि यह आपका नाम स्थान है, आपको ऐसा कोई भी नाम चुनना चाहिए जो आपको उपयुक्त लगे। यदि आपको लगता है /groups/movies-enthusiastकि समझ में आता है, तो आपको इसे वहां रखना चाहिए। यदि आप छोटे पथ नामों को पसंद करते हैं क्योंकि वे टाइप करना आसान है, /g/movies-enthusiast(या शायद /g/m-e) उपयुक्त होगा।

क्योंकि आपके द्वारा चुने गए रास्ते FHS में परिभाषित नहीं हैं, इसलिए वितरण या तृतीय-पक्ष पैकेजों को उन्हें स्पर्श नहीं करना चाहिए। जैसे, आपको यह जानने के लिए FHS पढ़ना चाहिए कि कंप्लेंट सॉफ़्टवेयर द्वारा किन रास्तों का उपयोग किया जा सकता है (सामग्री की तालिका आपको सबसे अधिक बताएगी कि आपको क्या जानना चाहिए)।

उदाहरण के लिए, मैं व्यक्तिगत रूप /avसे जहां मैं अपनी ऑडियो-विज़ुअल सामग्री संग्रहीत करता हूं, /srcस्रोत कोड के लिए और /dataअपरिभाषित डेटा (जैसे वर्चुअल मशीन छवियां, सीडी छवियां, कैरोट, सहेजे गए पैकेज, आदि) के लिए उपयोग करता हूं।


मैं व्यक्तिगत रूप से ऐसी सभी फ़ाइलों के लिए / डेटा का उपयोग करता हूं, फिर / ऑडियो / विज़ुअल सामग्री के लिए डेटा / फिल्में, / सोर्स कोड के लिए डेटा / src, / डेटा / संगीत। सभी एक (पदानुक्रमित) जगह में।
मदिज़

बहुत बार एक अच्छे विचार के मानकों का पालन करना या पालन करना, भले ही आप देव, डिस्ट्रो देव, pkg देव, या सिस्टम कार्यान्वयनकर्ता न हों।
फेलिप अल्वारेज़

एक नई निर्देशिका जोड़ना एफएचएस के खिलाफ नहीं है ; वास्तव में, मैं तर्क दूंगा कि नई निर्देशिकाओं का निर्माण नहीं करना कुछ समय के लिए एफएचएस के अनुरूप रहना आवश्यक है ! एफएचएस ने विशेष रूप से उल्लेख किया है कि किसी भी प्रश्न को कई पार्टियों के बीच समन्वय करने की आवश्यकता नहीं है जो उस मानक के दायरे से बाहर है। इसलिए, एफएचएस-परिभाषित निर्देशिकाओं में से एक के अंदर हर अंतिम आवश्यकता को फिट करने की कोशिश उन स्थितियों को बनाने के लिए बाध्य है जहां फाइलें निर्देशिकाओं के अंदर डाल दी जाती हैं जहां उन्हें नहीं होना चाहिए।
jwatkins

7

इस उद्देश्य के लिए रूट से एक नया माउंट पॉइंट या निर्देशिका बनाने में कुछ भी गलत नहीं है।

विशेष रूप से अगर यह इस प्रणाली का प्राथमिक उद्देश्य है, तो मैं अभी बनाऊंगा

/ फिल्में-उत्साही

यदि अन्य समान "समूह" हैं, तो मैं उन्हें एक साथ होस्ट करना पसंद कर सकता हूं या नहीं कर सकता, जैसे

/data/movies-entusiast
/data/next-group
etc

या

/share/movies-enthusiast
/share/next-idea
etc

विचार करने के लिए प्रश्न: क्या आप इस उद्देश्य के लिए एक आरोह-बिंदु समर्पित करने जा रहे हैं?

क्या आपने सॉफ्टलिंक पर विचार किया है?

किसी भी मामले में कोई नियम नहीं हैं। यदि आप एक उपयोगकर्ता को कस्टोडियन बनाना चाहते हैं और बाकी को इस परियोजना की जगह देना चाहते हैं, तो उपयोगकर्ता की होम डायरेक्टरी में इसे होस्ट करने के लिए स्वतंत्र महसूस करें। या एक / घर / साझा / * नाम-स्थान बनाएँ। आप अपने खुद के मालिक हैं।

ओह, एक बात: आप जो भी करते हैं, उसे दस्तावेज करते हैं। इसे सिस्टम रिकवरी, दैनिक जांच, बैकअप, आदि का हिस्सा बनने की आवश्यकता है। महत्वपूर्ण कॉन्फ़िगरेशन डिटेल्स को नोट किया जाना चाहिए (जैसे समूह सदस्यता, अनुमति सेट, प्रदर्शन के लिए fs ट्यूनल्स, और कुछ और जो डिफ़ॉल्ट नहीं है)


1

FHS को एडमिन बनाना भी आसान है इसलिए मैं उस कारण से / srv के साथ जाऊंगा, हालांकि इसके जो मैंने किया है वह नहीं है। हालांकि सही दृष्टि है। मैं उपयोग / निर्यात / srv क्योंकि इसके NAS पर।

यदि इसका एक ड्रॉप बॉक्स है, तो सुनिश्चित करें कि यह सेटगिड और चिपचिपा दोनों है। यह भी सुनिश्चित करें कि इसका उपयोग करने वालों के पास उपयोगी umask है। हालाँकि, पहिया का उपयोग न करें जैसा कि मैंने फ़ाइल एक्सेस मोड के उदाहरण में किया है। EXecute पट्टी न करें या आप O_o आश्चर्य के लिए होंगे।

bash-3.2$ mkdir movies
bash-3.2$ sudo chmod 03771 movies
Password:
bash-3.2$ ls -ld movies/
drwxrws--t 2 andrewb wheel 68 Apr  4 17:09 movies/
bash-3.2$ umask 026
bash-3.2$ touch movies/junk
bash-3.2$ ls -l movies/
total 0
-rw-r----- 1 andrewb wheel 0 Apr  4 17:09 junk

1

यह याद रखना महत्वपूर्ण है कि एफएचएस उन मुद्दों को संबोधित करता है जहां फ़ाइल प्लेसमेंट को कई पार्टियों जैसे स्थानीय साइटों, वितरण, अनुप्रयोगों, प्रलेखन आदि के बीच समन्वय करने की आवश्यकता होती है ; एफएचएस आपके द्वारा की जाने वाली हर एक स्थिति के लिए नियम निर्धारित करने का प्रयास नहीं करता है: स्थानीय फ़ाइलों का स्थानीय प्लेसमेंट एक स्थानीय मुद्दा है ( एफएचएस 3.0, धारा 1.1 )।

इसलिए, आप तकनीकी रूप से अपनी moviesनिर्देशिका कहीं भी रख सकते हैं , जब तक कि यह FHS सम्मेलनों के खिलाफ नहीं जाता है । फिर भी, आपका प्रश्न सबसे उपयुक्त जगह के बारे में था , तो आइए कुछ सामान्य उत्तरों पर विचार करें (सबसे पसंदीदा से मेरे पसंदीदा को ऑर्डर किया गया, आपके विशिष्ट उपयोग के मामले को देखते हुए):

  • /<someprefix>/<groupname>या /media/<volumename>/<groupname>: मैं ईमानदारी से नहीं जानता कि इस विकल्प की लिनक्स दुनिया में खराब प्रतिष्ठा क्यों है, लेकिन आइए इसे स्पष्ट करें: यह वास्तव में आपकी प्रणाली है, और FHS का कहना है कि आप मूल स्तर पर नई निर्देशिका बनाने से मुक्त हैं जैसा कि आप किसी भी चीज के साथ संघर्ष नहीं करते हैं जिसके लिए अच्छी तरह से स्थापित शब्दार्थ है। आप उदाहरण के लिए एक निर्देशिका बना सकते हैं /groupsया /sharedइन फाइलों को व्यवस्थित कर सकते हैं जैसे आप फिट देखते हैं। मुझे पता है कि कुछ प्रशासक इन्हें बाकी फाइल सिस्टम से कुछ अलग-थलग करना पसंद करते हैं, इसलिए वे एक अलग वॉल्यूम (यानी अंडर /media/<volumename>/<groupname>) माउंट करते हैं । दोनों ठीक हैं और दोनों ही FHS कंप्लीट हैं, सच में।

  • /srv/<groupname>या /srv/<someprefix>/<groupname>: FHS के अनुसार, /srvइसमें साइट-विशिष्ट डेटा होता है जो इस सिस्टम द्वारा दिया जाता है । FHS तब समझाता है कि कार्यप्रणाली / srv के उपनिर्देशिकाओं के नाम का उपयोग अनिर्दिष्ट है । मेरे व्यक्तिगत अनुभव से, /srvनिर्देशिका का शोषण करने वाले अधिकांश प्रशासक प्रति-ग्राहक, प्रति-साइट या प्रति-परियोजना उपनिर्देशिका के साथ आगे बढ़ते हैं, और फिर उस स्तर पर डेटा निर्देशिकाएं डालते हैं। हालाँकि आप इसकी संरचना करते हैं,/srvकई उपयोगकर्ताओं के बीच साझा की जाने वाली फ़ाइलों को संग्रहीत करने के लिए पूरी तरह से स्वीकार्य है यदि आप उचित रूप से विचार कर सकते हैं कि इन फ़ाइलों को साझा करने से स्वयं एक सेवा का गठन होता है। अपने आप से पूछें: "यह अंततः उन फ़ाइलों को SMB / NFS / AFS / GIT / ... के माध्यम से साझा करने के लिए समझ में आएगा?" यदि ऐसा है, तो आप यथोचित रूप से विचार कर सकते हैं कि आपकी निर्देशिका एक स्थानीय फ़ाइल साझाकरण सेवा है, और इस प्रकार इनको एक उपनिर्देशिका के अंदर संग्रहीत किया जाता है /srv, भले ही वास्तव में उन फ़ाइलों को अन्य प्रणालियों में सेवा नहीं दे रही है।

  • /home/<groupname>या /home/<some-prefix>/<groupname>: एफएचएस कहता है: /homeएक काफी मानक अवधारणा है, लेकिन यह स्पष्ट रूप से एक साइट-विशिष्ट फाइल सिस्टम है । इस बात की बिल्कुल आवश्यकता नहीं है कि प्रत्येक निर्देशिका /homeएक वास्तविक उपयोगकर्ता के नाम के तहत हो, और यह समूहों के लिए उपनिर्देशिका के लिए स्वीकार्य है, हालांकि समूह और उपयोगकर्ता के बीच संभावित टकराव से बचने के लिए एहतियात की आवश्यकता होती है। फिर भी, मैंने इस रणनीति को कई बड़े सेटअपों (विशेषकर विश्वविद्यालयों) में इस्तेमाल किया है, संघर्ष की संभावना से बचने के लिए कुछ डिब्बों की रणनीति के साथ; उदाहरण के लिए, वास्तविक उपयोगकर्ताओं में उनके घर निर्देशिका के लिए होता है /home/students/<studentid>, /home/teachers/<username>या /home/staff/<username>, जबकि साझा किया गया उत्पाद उदाहरण के लिए में डाल दिया जाएगा/home/workgroup/<workgroupname>। कुछ समय के लिए वे एक विभाग उपखंड भी होंगे; फिर भी, आप विचार प्राप्त करते हैं। सच कहूं, तो मुझे व्यक्तिगत रूप से यह रणनीति पसंद नहीं है, लेकिन यह /homeकई सर्वरों (उदाहरण के लिए एनएफएस) के बीच वितरित होने पर चीजों को थोड़ा आसान बनाता है , यही कारण है कि यह बहुत बड़े संगठनों में पसंद किया जाता है।


0

मैं व्यक्तिगत रूप से / usr / शेयर / फिल्मों-उत्साही या / ऑप्ट / फिल्मों-उत्साही के लिए चुनूँगा


0

मैं एक अलग निर्देशिका बनाने का सुझाव देता हूं, जैसे / ऑप्ट / फिल्में, उनके लिए उपयुक्त उपयोगकर्ता और समूह अनुमतियाँ सेट करें और डिस्क डिस्क quotaसे बचने के लिए आप डिस्क का उपयोग भी कर सकते हैं।


0

यह एक उत्तर के रूप में एक टिप्पणी के रूप में अधिक है (इसलिए कृपया मुझे इसके लिए नीचा न दिखाएं!), लेकिन यह एक टिप्पणी में फिट होने के लिए बहुत लंबा है।

मैं दो चीजें करता हूं, दोनों ही उस मुद्दे से बचते हैं जो आप सामना कर रहे हैं।

1) मैं अपने सिस्टम डिस्क पर सभी खाली जगह का एक अलग विभाजन बनाता हूं और इसे डेटास्पेस लेबल करता हूं। यहीं मेरी सभी वर्तमान मीडिया फ़ाइलें और अन्य डेटा चलते हैं। इसे / मीडिया / डेटास्पेस के रूप में स्वचालित रूप से प्राप्त किया जाता है और मैं इसे "डेटा" नामक एक निर्देशिका के तहत "डेटा" कुछ भी डाल देता हूं, इसे काम की फाइलों, वीएमएस या आईएसओ छवियों जैसी चीजों से अलग करने के लिए जो मैं नियमित रूप से बैकअप नहीं करना चाहता हूं।

एक अलग विभाजन का उपयोग करने से अतिरिक्त लाभ होता है, अगर यह भर जाता है, तो यह मेरे सिस्टम से समझौता नहीं करता है जैसे कि अगर यह / या / घर के नीचे संग्रहीत किया गया था।

2) मैंने अपना अधिकांश डेटा / मीडिया, विशेष रूप से ऐसी चीजें जो मैं "अभी उपयोग नहीं कर रहा हूं", एक अन्य भौतिक ड्राइव (नोटबुक के साथ मेरे मामले में यूएसबी) पर डाल रहा हूं। इससे बैकअप करना आसान हो जाता है और किसी अन्य कंप्यूटर से जुड़ना आसान हो जाता है, आवश्यकता उत्पन्न होनी चाहिए।

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