পুরো জিনোম সেশনের জন্য কীভাবে `umask` সেট করবেন?


10

জিনোম ৩.১৮ ব্যবহার করা হচ্ছে। আমি পরিবারের অন্যান্য সদস্যদের মধ্যে ফাইলগুলি ভাগ করি, তবে আমার ডিস্ট্রোতে (আর্চলিনাক্স) ডিফল্ট উমাস্ক 0022। সুতরাং তৈরি প্রতিটি ফাইল / ডিরেক্টরি আমাদের সাধারণ দলের জন্য লেখার যোগ্য নয়।

আমি লাগাতে চেষ্টা umask 0002মধ্যে /etc/profileকিন্তু GNOME অধিবেশন এখনও ব্যবহার করছে 0022। এটি লগইন ব্যাশ শেলের জন্য কাজ করছে।

আমি এই লাইনটি এতে যুক্ত করার চেষ্টাও করেছি /etc/pam.d/system-auth: session required pam_umask.so umask=0002 এটি এর মধ্যে যেমন রয়েছে তেমন প্রভাব ফেলে /etc/profile। আমি চেষ্টা করেছিলাম

যদি আমি জিনোম-টার্মিনাল শেলটিতে ম্যানুয়ালি উমাস্কটি পরিবর্তন করি তবে আমি এটি থেকে একটি অ্যাপ্লিকেশন চালু করব, জিডিট বলি, তারপরে তৈরি করা ফাইলগুলির অনুমতি থাকা উচিত। যদি আমি জিনোম মেনুগুলি থেকে জিডিট চালু করি তবে তা হয় না। সুতরাং আমার বিষয়টি আসলে জিনোম সেশনের জন্য উমাস্ক সেট করা এবং এটি কোথায় করা উচিত তা আমি খুঁজে পাচ্ছি না।

সম্পাদনা (গিলসের মন্তব্যের জবাব দেওয়ার জন্য): আমি ডিএম হিসাবে জিডিএম ৩.১৮ ব্যবহার করছি। আমি পাম_উমস্ক লাইনটি এতে যুক্ত করার চেষ্টাও করেছি /etc/pam.d/gdm-launch-environment। অন্যান্য সকল gdm-*ফাইল অন্তর্ভুক্ত রয়েছে sessionথেকে system-auth, ফাইল যাতে তারা আরো প্রয়োজন করা উচিত নয়। এটি কিছুই পরিবর্তন করে না।

/etc/login.defsরয়েছে UMASK 077কিন্তু USERGROUPS_ENAB yesযা সেট করা উচিত umaskহয় 0077বা 0007যেসব ব্যবহারকারীর প্রাথমিক গ্রুপ ব্যবহারকারী নাম হল জন্য।

শুধুমাত্র যে ফাইলটি রয়েছে 022মধ্যে umask জন্য /etcহয় /etc/profileকিন্তু যে আমার প্রথম ব্যবহার করে দেখুন ছিল।

হিসাবে হিসাবে /etc/Xsession.d, আমার এই ডিরেক্টরি নেই। এছাড়াও, ওয়েইল্যান্ড এখন ডিফল্ট ডিসপ্লে সার্ভার হিসাবে, আমি নিশ্চিত নই যে উমাস্কটি এক্স ইনিশিয়ালেশনের অংশ হিসাবে সেট করা উচিত, এমনকি যদি আমি এখনও এটি নিজে ব্যবহার করি।


আপনি কোন ডিসপ্লে ম্যানেজার ব্যবহার করেন? (এটি সেই প্রোগ্রাম যেখানে আপনি আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রবেশ করান)) জিডিএম, লাইটডিএম, স্লিম, এক্সডিএম, কেডিএম,…? আর্ক এবং আপনার ডিএম কীভাবে সেট আপ করা হয়েছে তার উপর নির্ভর করে কোনও ফাইল /etc/Xsession.dবা অন্য কোনও ফাইল যুক্ত করার চেষ্টা করুন /etc/pam.d(আমি ধরে নিচ্ছি যে আপনি এই সিস্টেমটি-ব্যাপী সেট করতে চান)। বা হতে পারে /etc/login.defs
গিলস 21:56-

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

1
ইস্যুটির চিকিত্সা করা আর্চলিনাক্স ফোরামেও একই ধরণের থ্রেড রয়েছে: bbs.archlinux.org/viewtopic.php?id=207753 gdm এ বাগের মতো মনে হচ্ছে ...

আমি এসিএলগুলি ব্যবহার করে শেষ করেছি, যা অনুমতিগুলি নিয়ন্ত্রণের একটি আরও ভাল উপায়। ডিফল্ট নিরাপদ অনুমতির মাস্ক পরিবর্তন করার দরকার নেই।
ক্রিস্টোফ ড্রেভেট-ড্রাগুয়েট

উত্তর:


6

কিছু জিনোম অ্যাপ্লিকেশন দ্বারা চালু করা হয় systemd --user, এক্ষেত্রে পাম_উমাস্কের0022 কনফিগার করা মান নির্বিশেষে সিস্টেমের দ্বারা উমাস্ক সেট করা থাকে । আমি কোনও কাজের দিক সম্পর্কে অবগত নই, তবে আমি সিস্টেমড গিথুব ইস্যু ট্র্যাকারটিতে একটি সমস্যা খুলেছি । এই সমস্যাটি জিনোম বাগজিলাতেও প্রতিবেদন করা হয়েছে ।

উমাস্ক সেট ব্যবহার করে pam_umaskএমন অ্যাপ্লিকেশনগুলির প্রত্যাশা অনুযায়ী কাজ করছে যা চালু হয় না systemd --user

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


এটি নিজেই তদন্ত করতে

আপনি আপনার সিস্টেমে চলমান প্রক্রিয়াগুলি একটি বৃক্ষ বিন্যাসে (পিতা বা মাতা / সন্তানের প্রক্রিয়া) তালিকাভুক্ত করতে পারেন:

pstree -Tapu

এর জন্য পিআইডি সন্ধান করুন: (1) আপনার সেশনটির সিস্টেমড - ব্যবহারকারীর উদাহরণ ; (২) এর দ্বারা প্রবর্তিত একটি অ্যাপ্লিকেশন যেমন জিডিট, যা সিস্টেম-ব্যবহারকারীকে শিশু প্রক্রিয়া হিসাবে দেখায় ; এবং (3) আপনার সেশনের একটি প্রক্রিয়া সিস্টেমড - ব্যবহারকারী দ্বারা চালু করা হয়নি

তুলনা করুন umasks রিপোর্ট জন্য procfs :

grep Umask /proc/<pid>/status

systemd হল --user নিজেই (1) ও প্রক্রিয়া না এটি দ্বারা চালু (3) সঠিক থাকা উচিত umask যার দ্বারা সেট করা হয়েছিল pam_umaskসিস্টেমড - ইউজার (2) দ্বারা প্রবর্তিত প্রক্রিয়াগুলিতে উমাস্ক থাকবে 0022


3

সমস্যাটি সেবাসথ উল্লেখ করেছেন। আমি অনেকগুলি চেষ্টা করেছিলাম, কিন্তু তারপরে আমি একটি কার্যকরী সন্ধান পেয়েছি যা ডিবিসের (প্রতি ব্যবহারকারী) ইউমাস্ককে ওভাররাইটিংয়ে গঠিত:

$ systemctl --user edit dbus

যে ফাইলটি খোলায়, কেবলমাত্র এটি লিখুন:

[Service]
UMask=002 # This is the umask I want to use

ফাইলটি .config / systemd / user / dbus.service.d / override.conf- এ সংরক্ষিত হয়ে যায় এবং dbus ডিফল্ট উমাস্ককে ওভাররাইড করে, যা আমি অনুমান করি systemd --user থেকে উত্তরাধিকার সূত্রে প্রাপ্ত, যেহেতু dbus এটি চালু করেছে। কেবল লগআউট এবং আবার লগইন করুন এবং জিনোম অ্যাপ্লিকেশনগুলিতে নির্দিষ্ট উমাস্ক ব্যবহার করা উচিত। কেবল একটি কাজ, কিন্তু এটি আমার জন্য কার্যকর।


2

পরিবর্তনের পরিবর্তে umaskআপনি usergroupsবিকল্পটি ব্যবহার করতে পারেন pam_umask, এই ব্যবহারকারী এবং গোষ্ঠীর সাথে ফোল্ডারগুলি ভাগ করার ক্লাসিকাল ইউনিক্স উপায় হিসাবে একই অনুমতি রয়েছে।

# /etc/pam.d/login or
# /etc/pam.d/common-session or system-auth
session optional pam_umask.so usergroups

1
যদি ব্যবহারকারী রুট না থাকে এবং ব্যবহারকারীর নামটি প্রাথমিক গোষ্ঠীর নামের মতো হয় তবে উমাস্ক গ্রুপ বিটগুলি মালিকের বিটগুলির সমান হতে সেট করা আছে (উদাহরণ: 022 -> 002, 077 -> 007)।
ক্রিস্টোফ ড্রেভেট-ড্রাগুয়েট

আমি প্রাথমিক গ্রুপটি ভাগ করে নেওয়ার গ্রুপ হিসাবে ব্যবহার করি। ব্যবহারকারীর গোষ্ঠীগুলির সাথে ফাইলগুলি ডিফল্টরূপে এই ব্যবহারকারী দলের সাথে তৈরি করা হবে এবং অন্যান্য ব্যবহারকারীদের দ্বারা সম্পাদনাযোগ্য হবে না।
ক্রিস্টোফ ড্রেভেট-ড্রাগুয়েট

1
যদিও আমি একটি উপায় দেখতে পাচ্ছি: আমি ব্যবহারকারীর গোষ্ঠী এবং একটি সাধারণ মাধ্যমিক গ্রুপ ব্যবহার করতে পারি এবং তারপরে, ভাগ করা গাছের উপরে, সমস্ত তৈরি করা ফাইল এবং ফোল্ডারগুলিতে এই সাধারণ গ্রুপটিকে বাধ্য করার জন্য একটি "সেট গ্রুপ" বিট যুক্ত করুন। যাইহোক, আমি আমার পিসিতে পরে চেষ্টা করব। আমি নিশ্চিত নই যে জিনোম যেভাবেই সে সম্পর্কে যত্ন নেবে, কারণ এটি টিটি সেশনের জন্য যা কাজ করে তা নির্বিশেষে এটি সর্বদা 0022 কে উমাস্ক হিসাবে গ্রহণ করে।
ক্রিস্টোফ ড্রেভেট-ড্রাগুয়েট

1

ডিফল্ট উমাস্ক সিস্টেম-ভিত্তিক সেট করতে আপনাকে প্রথমে এটি সক্ষম করতে হবে, যা এখানে বেশ সুন্দরভাবে ব্যাখ্যা করা হয়েছে:

http://manpages.debian.org/cgi-bin/man.cgi?query=pam_umask&sektion=8

উপরের লিঙ্কটি ডেবিয়ান এবং উবুন্টুর জন্য তবে অন্য সমস্ত লিনাক্স সিস্টেমের জন্য একই।

এটিকে উমাস্ক সক্ষম করতে (যা ইতিমধ্যে ইতিমধ্যে রয়েছে) আপনার একটি লাইন যুক্ত করতে হবে /etc/pam.d/common-session:

session optional pam_umask.so

একবার সক্ষম হয়ে গেলে আপনি এটি এতে সেট আপ করতে পারেন:

/etc/login.defs

আমি দেখতে পাচ্ছি যে আপনি এই ফাইলটি ইতিমধ্যে খুঁজে পেয়েছেন সুতরাং আপনার যা করতে হবে তা হ'ল সেট করা:

# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK           077

এবং এটি ইউএমএএসকেকে 0002 বা আপনি যা খুশি সেট করুন।

এটি ডিফল্ট মান সিস্টেম-প্রশস্ত সেট করবে, যার অর্থ সমস্ত ব্যবহারকারী তাদের প্রফাইলে বা .bashrc এ অন্যথায় সেট না করে যদি সেখান থেকে উমাস্কটি বেছে নেবে means


আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ। আমি এটি চেষ্টা করতে হবে। আমি তেমন আশাবাদী নই কারণ আমি ইতিমধ্যে একটি ইনলাইন প্যারামিটার "উমাস্ক = 0002" দিয়ে এই পিএএম মডিউলটি চেষ্টা করেছি এবং এটি কার্যকর হয়নি (যদিও জিনোমের জন্য, এটি অন্যান্য লগইন শেলগুলির জন্য কাজ করেছে)। আমি আপনার পরামর্শ চেষ্টা করব।
ক্রিস্টোফ ড্রেভেট-ড্রুয়েট

আপনি সিস্টেম-
লেখার

3
এটি ফাইলের নাম বিতরণ পছন্দের বিষয় মাত্র। আমি জানি common-*সাধারণ সেটিংয়ের জন্য ডেবিয়ান ব্যবহার । আর্চ, রেডহ্যাট হিসাবে, এর system-authজন্য একটি ফাইল ব্যবহার করে। যাই হোক, আমি যোগ করার আপনার পরামর্শের চেষ্টা session optional pam_umask.soএবং UMASK 002মধ্যে /etc/login.defsআমি আশা, এবং যেমন pam_umask.so umask=0002, এটি একটি TTY কাজ login(, SSH বা মাধ্যমে) অধিবেশন কিন্তু, Gnome একটি সেট 0022সবসময় umask। জিনোমকে অবশ্যই একটি অভ্যন্তরীণ উমাস্ক সেটিং ব্যবহার করতে হবে, বা আর্চলিনাক্স একটি ব্যবহার করছে ... সমস্যাটি খুব উত্থাপিত হয়েছে কিনা তা দেখার জন্য আমি অন্য বিতরণ চেষ্টা করব।
ক্রিস্টোফ ড্রেভেট-ড্রাগুয়েট

1

লগইন সেশনের জন্য: umask 0002আপনার $HOME/.profile(বা /etc/profile) এ যুক্ত করুন।

জিনোম সেশনের জন্য: umask 0002আপনার যুক্ত করুন$HOME/.gnomerc


1

সম্পাদনা: জিনোম সেশনের উমাস্ক সেট করার জন্য সিস্টেমড করার জন্য, আমি নিম্নলিখিত লাইনের সাহায্যে /etc/systemd/system/display-manager.service.d/ এর অধীনে একটি umask.conf ফাইল তৈরি করেছি:


[Service]
UMask=0002

মেশিনটি রিবুট করার পরে, এটি এখন সমস্ত প্রক্রিয়া user.sliceআপনার পছন্দ মতো উমাস্কের সাথে খাপ খাইয়ে নিতে দেয়। পরিবর্তনগুলি হওয়ার জন্য লগ আউট করা যথেষ্ট ছিল না তাই আমি প্রক্রিয়া umasks পরীক্ষা করার আগে আপনার মেশিনটি পুনরায় বুট করার পরামর্শ দেব।

অতিরিক্ত তথ্য:

  • ওএস: CentOS7.4
  • ডিই: জিনোম 3

3
যদি এটা কাজ, তারপর মত একটি ফাইল /etc/systemd/system/gdm.service.d/umask.confশুধুমাত্র ধারণকারী [Service]\nUMask=0002যথেষ্ট হওয়া উচিত।
ক্রিস্টোফ ড্রেভেট-ড্রাগুয়েট

এবং সত্যিই এটি! শুধু এটি সেখানে পরীক্ষা। আমার / etc / systemd / system / ফোল্ডারে gdm.service- তে একটি সিমিলিংক রয়েছে তাই আমি একটি ডিসপ্লে-ম্যানেজার। সার্ভিস.ডি / umask.conf তৈরি করেছি এবং লাইনটি যুক্ত করেছি, এটি সঠিকভাবে কাজ করেছে, এটি অন্তর্ভুক্ত করার জন্য উত্তর আপডেট করতে চলেছে han ধন্যবাদ আপনি @ ক্রিস্টোফ্রেডেভেট-ড্রাগুয়েট
জামালম

0

কেবল যুক্ত করতে চেয়েছিলেন যে pam_umaskম্যান্যাপগুলি আপনার উমাস্কটি কোথা থেকে আসছে তা নির্ধারণের জন্য আপনাকে বেশ কিছু ভাল তথ্য সরবরাহ করে। বিশেষ করে:

pam_umask বর্তমান পরিবেশের ফাইল মোড তৈরির মুখোশ সেট করতে একটি প্যাম মডিউল। উমাস্ক নতুন তৈরি করা ফাইলগুলিতে নির্ধারিত ডিফল্ট অনুমতিগুলিকে প্রভাবিত করে।

পিএএম মডিউল নিম্নলিখিত স্থানগুলি থেকে নিম্নলিখিত ক্রমে উমাস্কের মানটি পাওয়ার চেষ্টা করে:

·   umask= argument
·   umask= entry of the users GECOS field
·   pri= entry of the users GECOS field
·   ulimit= entry of the users GECOS field
·   UMASK= entry from /etc/default/login
·   UMASK entry from /etc/login.defs

যেমনটি কেউ বলেছেন, আপনার common-sessionডিরেক্টরিতে ফাইলটিতে এটি সেট আপ করা উচিত /etc/pam.d

মনে রাখবেন যে লগইনগুলি যে পাম ব্যবহার করে না (যেমন ব্যবহার করে gettyবা loginতাদের উমাস্কের মাধ্যমে সেট থাকবে login.defs


0

জেনোমের সাথে ফেডোরা ২৯-এর একটি ইনস্টল-এ আমি দেখতে পেলাম যে, জিনোম লঞ্চার থেকে আরম্ভ হওয়া প্রোগ্রামগুলি 0022 অন্যান্য ফাইলগুলি পাঠযোগ্য রেখে গেছে above উপরে বর্ণিত পাম দৃশ্যত /etc/login.defs এ স্থগিত করে। যাইহোক, সেখানে মাস্ক সম্পাদনা, 0077, জোনমের আচরণ পরিবর্তন করেনি। আমাকে / etc / প্রোফাইলটিও সম্পাদনা করতে হয়েছিল এবং / etc / bashrc- এ দুটোই এটিকে 0022 এ সেট করে রেখেছিল।

ফেডোরার জন্য এটির জন্য একটি জায়গা থাকলে এটি ভাল হবে তবে / ইত্যাদি / প্রোফাইলে এবং / ইত্যাদি / বাশারসিআর এন্ট্রি 200 এর উপরে বা নীচের আইডি সহ ব্যবহারকারীদের জন্য মুখোশটিকে আলাদাভাবে সেট করে, তাই মনে হচ্ছে যে একটি মুখোশ পুরোপুরি ফিট করে না।

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


0

কমপক্ষে ফেডোরার 31-এ আমার কাজটি শেষ হয়েছে:

sudo vi /etc/profile.d/umask.sh
umask <your_umask>

sudo vi /etc/login.defs
UMASK <your_umask>

sudo vi /usr/local/bin/systemd-user
/usr/lib/systemd/systemd --user

sudo chmod a+x /usr/local/bin/systemd-user

sudo vi /usr/lib/systemd/system/user@.service
ExecStart=-/usr/local/bin/systemd-user
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.