जवाबों:
लिनक्स एक tmpfs उपकरण है जो किसी भी उपयोगकर्ता उपयोग कर सकते हैं प्रदान करता है, /dev/shm
। यह डिफ़ॉल्ट रूप से एक विशिष्ट निर्देशिका पर आरूढ़ नहीं है, लेकिन आप अभी भी इसे एक के रूप में उपयोग कर सकते हैं।
बस में एक निर्देशिका बनाएँ /dev/shm
और फिर जहाँ भी आप चाहते हैं, उसे सिमिलिंक करें। आप बनाई गई निर्देशिका को आपके द्वारा चुनी गई कोई भी अनुमति दे सकते हैं, ताकि अन्य उपयोगकर्ता इसे एक्सेस न कर सकें।
यह एक रैम समर्थित डिवाइस है, इसलिए डिफ़ॉल्ट रूप से मेमोरी में क्या है। आप अपने अंदर कोई भी निर्देशिका बना सकते हैं/dev/shm
स्वाभाविक रूप से, यहां रखी गई फाइलें रिबूट से बच नहीं पाएंगी, और यदि आपकी मशीन स्वैप करना शुरू कर देती है, /dev/shm
तो यह आपकी मदद नहीं करेगा।
सोलारिस समानांतर /dev/shm
है /tmp
जो एक "स्वैप" प्रकार का विभाजन है, और स्मृति आधारित भी है। जैसा कि /dev/shm
, मनमाने ढंग से उपयोगकर्ता /tmp
सोलारिस पर फाइल बना सकते हैं ।
OpenBSD में मेमोरी आधारित माउंट का उपयोग करने की क्षमता है, लेकिन डिफ़ॉल्ट रूप से उपलब्ध नहीं है। Mount_mfs कमांड सुपर उपयोगकर्ता के लिए उपलब्ध है।
मैं अन्य * बीएसडी के बारे में निश्चित नहीं हूं।
/dev/tmpfs
सिस्टम पर ऐसा प्रतीत नहीं होता है (न ही मेरा अपना सिस्टम है जिसमें 3.0.0 कर्नेल है)। क्या आप सुनिश्चित हैं कि आपके वितरण द्वारा कुछ बनाया नहीं गया है?
/run
और संभवतः /run/shm
जांच करने की आवश्यकता है।
... सक्रिय स्वैप के साथ सिस्टम पर ! संभावना बहुत अधिक है आपके कंप्यूटर ने इसे सक्षम किया है।
एक बेहतर, सुरक्षित , मानक विकल्प है - ramfs
। ramfs
यदि आप राम-समर्थित स्थान का उपयोग अस्थायी स्टोर संवेदनशील डेटा, जैसे कि निजी कुंजी, बिटकॉइन या एथेरम वॉलेट और ऐसे करने के लिए करना चाहते हैं, तो आप इसका उपयोग करना चाह सकते हैं ।
ramfs
tmpfs
जब सुरक्षा की बात की जाए तो बेहतर है , क्योंकि ramfs
डेटा कभी स्वैप नहीं होता (भौतिक संग्रहण ड्राइव में सहेजा जाता है), जबकि स्वैप tmpfs
हो सकता है । तीसरे पक्ष तब स्वैप स्थान का निरीक्षण कर सकते हैं और संवेदनशील डेटा निकाल सकते हैं ।
आप ramfs
माउंट तैयार कर सकते हैं ताकि कोई भी गैर-विशेषाधिकार प्राप्त उपयोगकर्ता इसे ऑन-डिमांड पर माउंट / अनमाउंट कर सके।
ऐसा करने के लिए, आपको एक बार रूट विशेषाधिकार की आवश्यकता होगी । यदि आपके पास रूट विशेषाधिकारों की कमी है, तो इसे स्थापित करने के लिए अपने सिस्टम के व्यवस्थापक से पूछें।
सबसे पहले, आपको एक पंक्ति जोड़ने की आवश्यकता है /etc/fstab
। Fstab में रेखा इस तरह दिख सकती है:
none /mnt/ramfs ramfs noauto,user,size=1024M,mode=0770 0 0
/mnt/ramfs
एक आरोह बिंदु है, जहां रैमफस फाइलसिस्टम आरोहित किया जाएगा। निर्देशिका मौजूद होनी चाहिए।noauto
विकल्प इसे स्वचालित रूप से माउंट होने से रोकता है (जैसे सिस्टम के बूट अप पर)।user
यह नियमित उपयोगकर्ताओं द्वारा माउंट करने योग्य बनाता है।size
यह "रैमडिस्क" का आकार सेट करता है (आप यहां M
और G
यहां उपयोग कर सकते हैं)।mode
है बहुत महत्वपूर्ण , अष्टाधारी कोड के साथ 0770
ही जड़ और उपयोगकर्ता, जो इस फाइल सिस्टम घुड़सवार, यह करने के लिए पढ़ने के लिए और लिखने में सक्षम हो जाएगा दूसरों को नहीं (आप अच्छी तरह से अपनी पसंद के अलग अलग कोड का उपयोग कर सकते हैं, लेकिन इसके बारे में बहुत सुनिश्चित करें! )।जब यह किया जाता है, तो कोई भी उपयोगकर्ता इसे मांग पर माउंट करने में सक्षम होगा।
एक बार जब कुछ उपयोगकर्ता यह मान लेते हैं, तो नया 1024 एमबी ramfs
फाइल सिस्टम बनाया जाता है और उस पर आरोहित किया जाता है /mnt/ramfs/
। इसके स्वामित्व में होगा root:user
। एक बार जब वह इसे अनमाउंट कर देता है, या सिस्टम रिबूट हो जाता है, तो यह रैम-आधारित फाइल सिस्टम अपने सभी डेटा के साथ गायब हो जाएगा । जो मस्त हो।
इसके अलावा, इस फाइलसिस्टम को कई उपयोगकर्ताओं द्वारा स्वतंत्र रूप से माउंट किया जा सकता है, लेकिन एक ही समय में नहीं , यानी अगले उपयोगकर्ता द्वारा बढ़ते के लिए तैयार होने के लिए, पिछले उपयोगकर्ता को इस फाइल सिस्टम को अनमाउंट करना चाहिए।
चढ़ना:
mount /mnt/ramfs/
अनमाउंट करने के लिए:
umount /mnt/ramfs/
PS यदि आप rsync
एक गैर-रूट उपयोगकर्ता के रूप में नए माउंट किए गए / बनाए गए रम्फ्स की जड़ में फाइल करने की कोशिश कर रहे हैं , तो आपको एक rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
त्रुटि का सामना करना पड़ सकता है । यह पूरी तरह से ठीक और अपेक्षित है, क्योंकि आपका उपयोगकर्ता राम फाइल सिस्टम की जड़ नहीं है। समाधान सरल है, बस कुछ निर्देशिका बनाएं, /mnt/ramfs/copied/
उदाहरण के लिए, और rsync
इसमें।
PPS डेबियन 9 पर परीक्षण किया गया। बहुत यकीन है कि यह उबंटू पर भी काम करेगा।
आपके सिस्टम में पहले से ही उपलब्ध हो सकता है; Glibc पर आधारित हाल के लिनक्स सिस्टम में हमेशा एक tmpfs लगा होता है/dev/shm
।
यदि आपके सिस्टम में एक नहीं है या यह बहुत छोटा है, तो एक फाइल सिस्टम रूट द्वारा आरोहित नहीं है जिसका अर्थ है FUSE । उबंटू पर, आपको fuse
FUSE का उपयोग करने के लिए समूह में रहने की आवश्यकता है । उपलब्ध FUSE फाइल सिस्टम के माध्यम से , मैं केवल रामफ्यूज़ को देखता हूं , जो दुर्भाग्य से ऊपर की ओर छोड़ दिया गया है।
सामान्य तौर पर, नहीं, फाइल सिस्टम केवल रूट द्वारा माउंट किया जा सकता है। यदि आप किसी उपयोगकर्ता को मनमाने ढंग से फाइलसिस्टम रखने की अनुमति देते हैं, तो यह अनिवार्य रूप से उन्हें रूट दे रहा है। (आसान तरीका: एक ओवर / आदि को माउंट करें, वहां अपना स्वयं का पासवार्ड और छाया डालें, नए रूट पासवर्ड के साथ सु जो आपने अभी-अभी बनाया है, अनराउंट करें)
यदि आप किसी विशेष स्थान पर एक tmpfs चाहते हैं, तो आप इसे /etc/fstab
झंडे के साथ जोड़ सकते हैं noauto,user
और फिर एक उपयोगकर्ता इसे माउंट करने में सक्षम होगा (लेकिन यह विशेष रूप से स्पष्ट नहीं है कि आप इसे ऑटो-माउंट क्यों नहीं करेंगे)
यदि उपयोगकर्ताओं को मनमाने ढंग से tmpfs की आवश्यकता है, तो आपके पास कुछ विकल्प हैं:
sudo
उपयोगकर्ताओं को इसे चलाने की अनुमति देने के लिए उपयोग करें । सुनिश्चित करें कि आप उपयोगकर्ता को मनमाने रास्ते चुनने की अनुमति नहीं देते हैं।