/ ভার / রান পিআইডি ফাইল লিখতে কি অনুমতি


51

উবুন্টু

স্পর্শ: touch /var/run/test.pid 'টাচ করতে পারবেন না: অনুমতি অস্বীকার করা হয়েছে

আমি স্টার্ট-স্টপ-ডেমন শুরু করছি এবং পিআইডি ফাইলটি লিখতে চাই / var / চালাতে স্টার্ট-স্টপ-ডেমনটি আমার প্রোগ্রাম-ব্যবহারকারী হিসাবে চালিত হয়

/ var / রান সেটিংটি drwxr-xr-x 9 রুট রুট

আমি আমার প্রোগ্রাম-ব্যবহারকারীকে মূল গোষ্ঠীতে স্থাপন করা এড়াতে চাই।

উত্তর:


71

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

# mkdir /var/run/mydaemon

তারপরে তার ব্যবহারকারীর / গোষ্ঠীর মালিকানা পরিবর্তন করুন যার অধীনে আপনি নিজের প্রক্রিয়া চালাতে চান:

# chown myuser:myuser /var/run/mydaemon

এখন / var / run / mydaemon / var / run ব্যবহার না করে নির্দিষ্ট করুন।

আপনি প্রশ্নযুক্ত ব্যবহারকারী হিসাবে পরীক্ষা চালিয়ে সর্বদা এটি পরীক্ষা করতে পারেন।


5
এটি আমার পক্ষে ভাল কাজ করেছে তবে আমি যখন আমার সার্ভারটি পুনরায় চালু করেছি তখন /var/run/mydaemonডিরেক্টরিটি চলে গিয়েছিল।
myborobudur

17
এটি সম্পূর্ণ উত্তর নয়, উবুন্টুতে / var / রান ডিফল্টরূপে tmpfs হয়। প্রতিটিবার সার্ভারটি mkdir শুরু হয়ে গেলে এবং ডাউন কমান্ডটি পুনরায় চালানো দরকার।
টিম

1
@ টিম করুন কীভাবে উত্তরটি সম্পাদনা করবেন এবং এটি সম্পূর্ণ করবেন?
কায়সার

আপনি যদি ডিমন নিয়ে কাজ করছেন তবে একটি পরিষ্কার সমাধান হ'ল এখানে বর্ণিত পদ্ধতি অনুসারে সিস্টেমড ইউনিট ফাইলে পাথ / ভার / রান / মাইডেমন যুক্ত করা । একটি সহজ হ্যাকি সমাধান হ'ল এম.কে.ডি.আর এবং ডাউন কমান্ডগুলি init.d স্ক্রিপ্টে যুক্ত করা (যদি এটি উপস্থিত থাকে)
অডডফস

1
একটি ভাল ব্যাপক উত্তর এখানে: superuser.com/a/1127720/71795 ভুল উত্তর যা খুবই মার্জিত মনে হয় এখানে: stackoverflow.com/a/5174433 । সংক্ষিপ্তসার: /tmpঅথবা হয় ব্যবহার করুন ~
টিম

13
mkdir /var/run/mydaemon
chown myuser:myuser /var/run/mydaemon

এটি কার্যকর হবে না, যেহেতু এটি পরবর্তী রিবুটে হারিয়ে যাবে ( /var/runউবুন্টুতে একটি টিএমপিএস)।

একমাত্র সম্ভাব্য সমাধান হ'ল স্টার্টআপ স্ক্রিপ্টগুলির অংশ হিসাবে mkdir এবং chmod চালানো।


3

আপনি এটি চেষ্টা করতে পারেন। একটি ডিরেক্টরি তৈরি করুন / var / রান / পরীক্ষা / এবং তারপরে এই ডিরেক্টরিটির অনুমতিটিকে একই প্রোগ্রামে পরিবর্তন করুন আপনার প্রোগ্রামটি চালায় change "চাওন / ভার / রান / পরীক্ষা /"। এখন আপনার আবেদনে পিআইডি ফাইলের অবস্থানটি /var/run/test/test.pid এ পরিবর্তন করুন। এটি আপনার জন্য কাজ করা উচিত।


2

"স্টিকি" বিট / ভার / রান ব্যবহার সম্পর্কে কী?

chmod + t / var / রান?

সম্ভবত কিছু অন্যান্য অ্যাপ্লিকেশন জগাখিচুড়ি, তবে মনে হয় এটি অন্য সমাধান হবে।

আমি আপাতত একটি পৃথক / var / রান ফোল্ডার তৈরি করতে থাকব।


1

প্রবেশের /etc/permissionsস্থায়ী হয়। ডিরেক্টরিতে স্থায়ীত্বের মালিকানা এবং অনুমতিগুলি তৈরি করতে সেখানে প্রবেশ করুন।


-6

আপনার প্রোগ্রাম-ব্যবহারকারীকে মূল গোষ্ঠীতে স্থাপন করা এড়াতে, অন্যকে লেখার অ্যাক্সেসের অনুমতি দিন:

# chmod 757

3
/ চলুন / চালাতে কখনও কোনও chmod 757 করবেন না! এটি মারাত্মক সুরক্ষা সমস্যার কারণ হতে পারে
মিশেল

1
এটি একটি ভয়ানক ধারণা। এটি সম্ভাব্যভাবে বিশাল সুরক্ষার সমস্যার কারণ হতে পারে
টম ও'কনোর

এমনকি যদি আমরা সুরক্ষা সমস্যাটিকে অগ্রাহ্য করি তবে chmod 757এটি কেবল পরবর্তী পুনরায় বুট হওয়া পর্যন্ত কাজ করবে। একটি নতুন উত্তর তৈরি করার জন্য দুঃখিত, তবে অন্য মন্তব্যের জবাব দেওয়ার কোনও উপায় নেই বলে মনে হচ্ছে।
ভ্লাদিমির নিকোলিকী

@michel, লেখক একটি বললেন না chmodউপর /var/run। লেখক এটিকে অ্যাপ্লিকেশন উপ-ডিরেক্টরিতে বোঝাতে পারেন। সমস্ত কলহ সম্পর্কে কী তা নিশ্চিত নয়।
একিউম্যানাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.