এক্সডিজি_আরটিআইএমআইডিআইআর-এর জন্য ভাল ডিফল্ট?


10

XDG বেস ডিরেক্টরি সুনির্দিষ্টকরণ ব্যবহারকারী ডিরেক্টরি জন্য একটি খুব আকর্ষণীয় বৈশিষ্ট হয়। এটি বাদে ভাল ডিফল্ট মানও সরবরাহ করে XDG_RUNTIME_DIR

এখন আমি একটি সফ্টওয়্যার লিখছি যা নামকরণ করা পাইপ তৈরি করা প্রয়োজন। এটি প্রতি ব্যবহারকারী ক্লায়েন্ট-সার্ভার ফ্রেমওয়ার্ক (সার্ভারের জন্য একটি ফিফো এবং ক্লায়েন্টের জন্য একটি ফিফো রয়েছে)।

যদি XDG_RUNTIME_DIRসংজ্ঞায়িত না করা হয় তবে আমি বর্তমানে প্রতি ব্যবহারকারী সাব-ডাইরেক্টরি ব্যবহার করছি /tmp- তবে এটি নির্দিষ্ট করা সমস্ত শর্তাদি নিশ্চিত করে না (যেমন "ডিরেক্টরিটির আজীবন ব্যবহারকারীর লগ ইন করা আবশ্যক ..." দিয়ে শুরু হওয়া অনুচ্ছেদ )

কি /tmp/myserver-$USERভাল কি যথেষ্ট?

সম্পাদন করা

আমি অন্য কোথাও কয়েকটি পরামর্শ দেখেছি:

  • . বেশ অসন্তুষ্ট (কমপক্ষে কারণ এটি কোনও পরম পাথ নয়)
  • আমি আরও দেখেছি /var/run/user/$USER- খারাপ নয়, তবে সেই ডিরেক্টরিটি বিদ্যমান নেই (কমপক্ষে আমার বাক্সে একটি ডেবিয়ান পরীক্ষা চালাচ্ছে )

উত্তর:


4

/tmpইতিমধ্যে ইতিমধ্যে প্রচুর প্রোগ্রাম দ্বারা ব্যবহৃত হয়। আমার সিস্টেমে আমি /tmp/orbit-$USER(জিনোমের ওআরবিট 2 দ্বারা ব্যবহৃত) এবং /tmp/.X11-unix/( এক্সর্গ এবং এক্স 11) ডিরেক্টরিতে প্রচুর পাইপ, এএইএম, সকেট, সেগুলিতে দেখতে পাচ্ছি। আমি নিশ্চিত যে অন্যরাও রয়েছেন, তাই আপনি যা করছেন তাতে আমি কিছুই ভুল দেখছি না। কেবল প্রস্তুত থাকুন যেহেতু এটি বিশ্ব রচনামূলক অবস্থান হ'ল কোনও দূষিত প্রক্রিয়াটি স্থানটি হাইজ্যাক করতে পারে (এটি লেখার আগে অনুমতিগুলি যাচাই করে নিন)।

আমি $TMPDIRযারা pam_mktemp ব্যবহার করি তাদের জন্যও সুপারিশ করতে পারি , কারণ এই ডিরেক্টরিটি কেবল ব্যবহারকারী দ্বারা অ্যাক্সেসযোগ্য।


প্যাম সঠিক সমাধান, ধন্যবাদ! ডেবিয়ানকে এটিকে লিপপ্যাম-টেম্পডির বলা হয়
ক্যাডারিয়ান

5

সিস্টেমডি কিন্ডাকে /run/user/$USERবাধ্যতামূলক করে তোলে ।

http://www.freedesktop.org/software/systemd/man/file-hierarchy.html

অনিবদ্ধ লেখার প্রবেশাধিকার

সুবিধাবঞ্চিত প্রক্রিয়াগুলিতে সাধারণত শ্রেণিবিন্যাসের বেশিরভাগ লেখার অভাব থাকে।

স্বাভাবিক ব্যবহারকারীদের জন্য ব্যতিক্রম আছে /tmp, /var/tmp, /dev/shm, পাশাপাশি home ডিরেক্টরিতে যেমন $HOME(সাধারণত নীচে পাওয়া /home) এবং রানটাইম ডিরেক্টরি $XDG_RUNTIME_DIR(নীচে পাওয়া /run/user) ব্যবহারকারী, যা সব লিখনযোগ্য হয়।

কেবল অনিবদ্ধ সিস্টেম প্রক্রিয়াগুলির জন্য /tmp, /var/tmpএবং /dev/shmলিখনযোগ্য। যদি একটি অনিবদ্ধ সিস্টেম প্রক্রিয়াটিতে একটি ব্যক্তিগত, লিখনযোগ্য ডিরেক্টরি প্রয়োজন হয় /varবা /runএটি হয়, এটি হয় ডেমন কোডে সুবিধাগুলি ছাড়ার আগে এটি তৈরি করার পরামর্শ দেওয়া হয়, বুট চলাকালীন tmpfiles.d (5) খণ্ডের মাধ্যমে তৈরি করতে, বা RuntimeDirectory= পরিষেবা ইউনিটগুলির নির্দেশের মাধ্যমে create (বিশদ জন্য systemd.unit (5) দেখুন)।


2

অনন্য আইডি সহ ডিরেক্টরি /tmp/service-$USER.id তৈরি করুন। উদাহরণস্বরূপ, শেলের মধ্যে:

mktemp -d /tmp/service-"$USER".XXX

1
প্রথম লগইন থেকে ব্যবহারকারীর শেষ লগআউটে একই ডিরেক্টরিটি ব্যবহার করা হয় এমন প্রয়োজনীয়তা আপনি কীভাবে নিশ্চিত করবেন?
ক্যাডারিয়ান

হুঁ ... সিম্যলিংক তৈরি করুন ~ ব্যবহারকারী /। পরিষেবা / tmp_dir। যদি লিঙ্কযুক্ত ডিরেক্টরিটি বিদ্যমান না থাকে তবে নতুন তৈরি করুন
সেলিবানোভ পাভেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.