(কীভাবে) আমি নিয়মিত (নন-রুট) ব্যবহারকারী হিসাবে টিএমপিএফ তৈরি করতে পারি?


39

বিতরণটি একটি উবুন্টু সার্ভার যা 2.6.35-30 লিনাক্স কার্নেলটি চালাচ্ছে।

আমি একটি ডিরেক্টরি রাখতে চাই যা সম্পূর্ণরূপে স্মৃতিতে বসে। মূল অধিকার ছাড়াই এটি কি সম্ভব?

উত্তর:


49

লিনাক্স একটি tmpfs ডিভাইস সরবরাহ করে যা কোনও ব্যবহারকারী ব্যবহার করতে পারেন /dev/shm,। এটি ডিফল্টরূপে নির্দিষ্ট ডিরেক্টরিতে মাউন্ট করা হয় না, তবে আপনি এখনও এটি হিসাবে ব্যবহার করতে পারেন।

কেবল একটি ডিরেক্টরি তৈরি করুন /dev/shmএবং তারপরে এটি যেখানে চান সেখানে সিমিলিং করুন। আপনি তৈরি ডিরেক্টরিটি আপনার পছন্দ অনুযায়ী যে কোনও অনুমতি দিতে পারেন, যাতে অন্য ব্যবহারকারীরা এটি অ্যাক্সেস করতে না পারে।

এটি একটি র‌্যাম ব্যাকড ডিভাইস, তাই মেমোরিতে ডিফল্টরূপে কী আছে। আপনার ভিতরে যে কোনও ডিরেক্টরি তৈরি করতে পারেন/dev/shm

স্বাভাবিকভাবেই, এখানে রাখা ফাইলগুলি পুনরায় বুট থেকে বাঁচবে না এবং যদি আপনার মেশিনটি অদলবদল শুরু করে, /dev/shmআপনাকে সাহায্য করবে না।

থেকে সোলারিস সমান্তরাল /dev/shmহয় /tmpযা "বদল" টাইপ পার্টিশন, এবং এছাড়াও মেমরি ভিত্তিক হয়। যেমনটি /dev/shmস্বেচ্ছাসেবীর ব্যবহারকারীরা /tmpসোলারিসে ফাইল তৈরি করতে পারেন ।

ওপেনবিএসডি-তে মেমরি ভিত্তিক মাউন্ট ব্যবহার করার ক্ষমতাও রয়েছে তবে এটি ডিফল্টরূপে উপলভ্য নয়। Mount_mfs কমান্ডটি সুপার ব্যবহারকারীর কাছে উপলব্ধ।

আমি অন্যান্য * বিএসডি সম্পর্কে নিশ্চিত নই।


1
একটি সিমিলিংক যেখানে সমস্যার সমাধান করতে পারে ।
এনজোটিব

ডিও ... এইসব অল্প অল্প সংলাপের কথা ভুলে গেছি।
গ্যাবে

@ এঞ্জোটিব ঠিক করে দিয়েছে!
গ্যাবে

/dev/tmpfsসিস্টেমে এটি বলে মনে হচ্ছে না (আমার নিজস্ব সিস্টেমটিতেও একটি 3.0.0 কার্নেল নেই)। আপনি কি নিশ্চিত যে এটি আপনার বিতরণ দ্বারা নির্মিত কিছু নয়?
বিটমাস্ক

1
এটি অন্যের জন্যও প্রয়োগ হয় কিনা তা নিশ্চিত নন তবে আমার বর্তমান উবুন্টু সংস্করণে এটি বদলে গেছে বলে মনে হচ্ছে /runএবং সম্ভবত /run/shmআমার উত্তর আপডেট করার আগে আরও তদন্ত করা দরকার।
গ্যাবে

14

/ dev / shm নিরাপত্তাহীন

... সক্রিয় অদলবদল সিস্টেমগুলিতে ! আপনার কম্পিউটারটি সক্ষম করে দেওয়ার সম্ভাবনাগুলি খুব বেশি

আরও ভাল, সুরক্ষিত , মানক বিকল্প রয়েছে - ramfs। আপনি ramfsযদি বেসরকারী কী, বিটকয়েন বা ইথেরিয়াম ওয়ালেট ইত্যাদির মতো অস্থায়ী সংবেদনশীল ডেটা র‌্যাম-ব্যাকড স্পেস ব্যবহার করার পরিকল্পনা করেন তবে আপনি ব্যবহার করতে পারেন ।

ramfstmpfsসুরক্ষার সাথে সম্পর্কিত হওয়ার চেয়ে ভাল , যেহেতু ramfsডেটা কখনই অদলবদল হয় না (কোনও ফিজিক্যাল স্টোরেজ ড্রাইভে সংরক্ষণ করা হয়), আবার অদলবদল tmpfs হতে পারে । তৃতীয় পক্ষের তারপর swap 'র স্থান পরিদর্শন করতে এবং সংবেদনশীল তথ্য নিষ্কাশন

সমাধান

আপনি ramfsমাউন্ট প্রস্তুত করতে পারেন যাতে কোনও অ-সুযোগ-সুবিধা প্রাপ্ত ব্যবহারকারী এটি অন-চাহিদা মাউন্ট / আনমাউন্ট করতে পারে।

এটি করার জন্য, আপনাকে একবারে মূল অধিকার প্রয়োজন হবে । আপনার সিস্টেমের প্রশাসককে আপনার জন্য এটির জন্য সেট আপ করতে বলুন, যদি আপনার মূল সুযোগগুলির অভাব থাকে।

প্রথমে, আপনাকে একটিতে একটি লাইন যুক্ত করতে হবে /etc/fstab। Fstab- এ থাকা রেখাটি দেখতে দেখতে এটির মতো হতে পারে:

none    /mnt/ramfs    ramfs    noauto,user,size=1024M,mode=0770    0    0
  • /mnt/ramfsএটি একটি মাউন্ট পয়েন্ট, যেখানে ramfs ফাইল সিস্টেম মাউন্ট করা হবে। ডিরেক্টরি উপস্থিত থাকতে হবে।
  • noauto বিকল্পটি এটিকে স্বয়ংক্রিয়ভাবে মাউন্ট করা থেকে বিরত করে (যেমন সিস্টেমের বুট আপ এ)।
  • user নিয়মিত ব্যবহারকারীর দ্বারা এই মাউন্টযোগ্য করে তোলে।
  • sizeএই "ramdisk" আকার নির্ধারণ করে (আপনি ব্যবহার করতে পারেন Mএবং Gএখানে)।
  • modeহয় খুব গুরুত্বপূর্ণ , অকট্যাল কোড সহ 0770শুধুমাত্র root এবং ব্যবহারকারী, যিনি এই ফাইল সিস্টেম মাউন্ট, এটি পড়তে ও লিখতে সক্ষম হবে অন্যদের না (আপনি পাশাপাশি আপনার পছন্দের বিভিন্ন কোড ব্যবহার পারে, কিন্তু এটা সম্পর্কে খুব নিশ্চিত করা! )।

এটি হয়ে গেলে, কোনও ব্যবহারকারীর চাহিদা অনুসারে এটি মাউন্ট করতে সক্ষম হবে।

কিছু ব্যবহারকারী এটি মাউন্ট করার পরে, নতুন 1024 এমবি ramfsফাইল সিস্টেম তৈরি এবং মাউন্ট করা হয় /mnt/ramfs/। এটি মালিকানাধীন হবে root:user। একবার সে এটি আনম্যাম্ট করে নিলে বা সিস্টেমটি পুনরায় বুট হয়ে যায়, এই র্যাম-ভিত্তিক ফাইল সিস্টেমটি এর সমস্ত ডেটা দিয়ে অদৃশ্য হয়ে যাবে । যা দুর্দান্ত।

এছাড়াও, এই ফাইল সিস্টেমটি বেশ কয়েকটি ব্যবহারকারী স্বতন্ত্রভাবে মাউন্ট করতে পারে তবে একই সময়ে নয় , অর্থাত্ পরবর্তী ব্যবহারকারী দ্বারা মাউন্ট করার জন্য প্রস্তুত হতে, পূর্ববর্তী ব্যবহারকারীর এই ফাইল সিস্টেমটি আনমাউন্ট করতে হবে।

এতো উঁচু:

mount /mnt/ramfs/

আনমাউন্ট করতে:

umount /mnt/ramfs/

পিএস যদি আপনি 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এটিতে কিছু ডিরেক্টরি তৈরি করুন ।

পিপিএস দেবিয়ান ৯-তে পরীক্ষিত হয়েছে খুব সুন্দর এটি উবুন্টুতেও কাজ করবে sure


10

আপনার সিস্টেমে একটি ইতিমধ্যে উপলব্ধ থাকতে পারে; গ্লিবসি ভিত্তিক সাম্প্রতিক লিনাক্স সিস্টেমগুলিতে সর্বদা একটি tmpfs মাউন্ট করা থাকে/dev/shm

যদি আপনার সিস্টেমে একটি না থাকে বা এটি খুব ছোট হয়, তবে রুট দ্বারা মাউন্ট করা একটি ফাইল সিস্টেমের অর্থ বেশিরভাগই ফুস । উবুন্টুতে, fuseFUSE ব্যবহার করার জন্য আপনাকে গ্রুপে থাকতে হবে। মাধ্যমে দেখার জন্যে প্রাপ্তিসাধ্য ফিউজ ফাইল সিস্টেম , আমি শুধুমাত্র দেখতে Ramfuse , যা দুর্ভাগ্যবশত মূল প্রজেক্টের হয় পরিত্যক্ত।


5

সাধারণভাবে, না, ফাইল সিস্টেমগুলি কেবল রুট দ্বারা মাউন্ট করা যায়। যদি আপনি কোনও ব্যবহারকারীকে যথেচ্ছভাবে ফাইল-সিস্টেম স্থাপনের অনুমতি দেন তবে এটি মূলত তাদের মূল দেয়। (সহজ উপায়: ওভার ওভার / ইত্যাদি মাউন্ট করুন, আপনার নিজের পাসডওড এবং ছায়া সেখানে রাখুন, আপনি যে নতুন রুট পাসওয়ার্ডটি সবে তৈরি করেছেন তা সহ আনআম্ট করুন)

আপনি যদি কোনও নির্দিষ্ট জায়গায় টিএমপিএফ চান, তবে এটির /etc/fstabপতাকাগুলি দিয়ে আপনি এটি যুক্ত করতে পারেন noauto,userএবং তারপরে কোনও ব্যবহারকারী এটি মাউন্ট করতে সক্ষম হবেন (তবে এটি কেন কেবলমাত্র স্বয়ংক্রিয়ভাবে মাউন্ট করবেন না) এটি স্পষ্ট নয়)

যদি ব্যবহারকারীদের যথেচ্ছ tmpfs এর প্রয়োজন হয়, তবে আপনার কাছে কয়েকটি বিকল্প রয়েছে:

  • একটি টিএমপিএফ-র উপ-ডিরেক্টরি ব্যবহার করুন। সম্ভবত সেরা পন্থা। আপনার সম্ভবত সম্ভবত একাধিক টিএমপিএফ প্রয়োজন হবে না।
  • এমন একটি স্ক্রিপ্ট তৈরি করুন যা ডিরেক্টরি তৈরি করবে এবং তার উপর একটি টিএমপিএফ মাউন্ট করবে এবং তারপরে এটি কোথায় প্রিন্ট করবে। sudoব্যবহারকারীদের এটি চালানোর অনুমতি দেওয়ার জন্য ব্যবহার করুন । নিশ্চিত হয়ে নিন যে আপনি ব্যবহারকারীকে নির্বিচারে পথ বেছে নেওয়ার অনুমতি দিচ্ছেন না
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.