উত্তর:
ব্যবহারকারীর উমাস্ক সেট করার জন্য তিনটি সাধারণ উপায় রয়েছে।
UMASK
মধ্যে/etc/login.defs
pam_umask.so
আপনার PAM কনফিগারেশন করতে/etc/pam.d
/etc/profile
এক্ষেত্রে সিস্টেম ব্যবহারকারী এবং সাধারণ ব্যবহারকারীদের মধ্যে কোনও পার্থক্য নেই।
তবে আমি ধরে নিচ্ছি আপনি একটি কাস্টম উমাস্ক দিয়ে একটি ডেমন শুরু করার চেষ্টা করছেন?
সমস্যা।। উপরে সমস্ত বিকল্পগুলির ঘটতে যখন একজন ব্যবহারকারী লগ আপনি একটি ডেমন চালাচ্ছেন, এটা কখনই লগ এটা init দ্বারা আরম্ভ করছে, তাহলে হয়, বা কল রুট হিসাবে সঞ্চালিত হয় setuid
সিস্টেম ব্যবহারকারী আপনাকে উল্লেখ চালানোর জন্য ।
আপনার প্রধান বিকল্পগুলি হ'ল:
umask
আপনার init স্ক্রিপ্ট (a কি grep umask /etc/init.d/*
একটি উদাহরণ জন্য)start-stop-daemon
তবে উমাস্ক বিকল্পটি পাস করুনসিস্টেম ব্যবহারকারীরা তিনটি উপায়ে 'সাধারণ' থেকে পৃথক হন: পাসওয়ার্ডের মেয়াদোত্তীর্ণতা, হোম ডিরেক্টরি (সিস্টেম ব্যবহারকারীদের একটি থাকে না) এবং ইউআইডি (সিস্টেম ব্যবহারকারীরা সাধারণত কিছুটা স্বেচ্ছাসেবী নীচে থাকেন)।
সাধারণ ক্ষেত্রে, আপনি প্রায় সম্পূর্ণ ভাগ্যের বাইরে। উমাস্ক সেট করতে আপনি পিএএম ব্যবহার করতে পারেন, তবে পিএএম এই তিনটি পার্থক্য বাদে অন্য বিষয়ের উপর ভিত্তি করে আচরণগুলি নির্বাচন করে।
অন্য কথায়, আপনি 'সিস্টেম' এবং 'নন-সিস্টেম' ব্যবহারকারীদের মধ্যে পার্থক্য করার জন্য পিএএম পেতে পারবেন না। এটি আপনাকে দুটি বিকল্প সহ ছেড়ে দেয়:
হয় আপনি সবার জন্য উমাস্ক সেট করার জন্য পিএএম ব্যবহার করেন (যেমন চেক ইন /etc/login.defs
), তারপরে /etc/bash.bashrc
(বা অনুরূপ) সিস্টেমে নন-সিস্টেম ব্যবহারকারীদের জন্য উমাস্কটি স্পষ্টভাবে সেট করুন ;
অথবা এটি করার জন্য আপনি নিজের পিএএম মডিউলটি লিখেন। আমি মনে করি এটি অনেক লোক স্বাগত জানাবে, কারণ উমাস্ক স্থাপন একটি সাধারণ অনুরোধ request
দয়া করে এই উত্তরটি উদার চিমটি লবণের সাথে নিন। এই ধরণের অনুরোধটি বেশ সাধারণ, এবং যদি আরও ভাল / সঠিক উপায় এখন উপস্থিত থাকে তবে আমি অবাক হব না।
pam_umask
, কিন্তু সম্ভবত সম্পর্কে না pam_succeed_if
। পাম_সুসিড_এফ দিয়ে আপনি অন্য কোনও মডিউল কেবলমাত্র প্রদত্ত ব্যবহারকারী বা গোষ্ঠীতে প্রয়োগ করতে পারবেন। তবে আমি এখনও মনে করি না যে প্যাম এখানে সহায়তা করবে।
@ মাইকেলের পরামর্শ অনুসারে, আপনি যদি ডেমন হিসাবে একটি সিস্টেম অ্যাকাউন্ট কনফিগার করার চেষ্টা করে থাকেন তবে নিজেই ডিমনটি কনফিগার করার চেষ্টা করুন।
আমি ম্যাকোস-এ কীভাবে _www অ্যাকাউন্টের জন্য উমাস্কটি সেট করতে হবে তা দেখে এই প্রশ্নে এসেছি। যদিও এটি উপরের উত্তরগুলির মতো প্রস্তাবিত হিসাবে কঠিন, আমি খুঁজে পেলাম যে আমি অ্যাপাচি পরিষেবাদিটি (এই ক্ষেত্রে) ব্যবহারকারী == একটি ডেমন হিসাবে কনফিগার করে সমাধান করেছি।
আমি আশ্চর্যজনকভাবে স্টার্টআপ স্ক্রিপ্টটি খুঁজে পাইনি (সাধারণত /etc/init.d/ এ কিন্তু লাইব্রেরিতে / লঞ্চডেমোনস / তে ম্যাকের জন্য), তবে সহায়তা থেকে: http://krypted.com/mac-security/apache2-umasks / আবিষ্কার করেছেন যে অ্যাপাচের নিজস্ব নির্দিষ্ট পরিবেশের স্ক্রিপ্ট রয়েছে।
$ sudo vim /usr/sbin/envvars
umask 002
সম্ভবত অন্যান্য ডিমনগুলিরও একই পদ্ধতি রয়েছে যা নির্দিষ্ট ক্ষেত্রে সহায়তা করতে পারে।