umask কি?

umask (user file-creation mode mask) হল একটি Linux এবং Unix সেটিং যা নতুন তৈরি ফাইল এবং ডিরেক্টরিতে নির্ধারিত ডিফল্ট অনুমতি নিয়ন্ত্রণ করে। অনুমতি সরাসরি সেট করার পরিবর্তে, umask সংজ্ঞায়িত করে যে নতুন ফাইল বা ডিরেক্টরি তৈরি করার সময় সিস্টেম ডিফল্ট থেকে কোন অনুমতি বিট সরিয়ে ফেলা উচিত।

সিস্টেম ফাইলের জন্য 666 (সবার জন্য পড়া এবং লেখার অনুমতি) এবং ডিরেক্টরির জন্য 777 (সবার জন্য পড়া, লেখা এবং সম্পাদনের অনুমতি) এর একটি বেস অনুমতি দিয়ে শুরু করে। umask তখন একটি লজিক্যাল AND-NOT অপারেশন ব্যবহার করে এই ডিফল্ট থেকে বিটওয়াইজ বিয়োগ করা হয়, চূড়ান্ত অনুমতি তৈরি করে। উদাহরণস্বরূপ, 022 এর umask সহ, নতুন ফাইলগুলি 644 এবং নতুন ডিরেক্টরিগুলি 755 এর সাথে শেষ হয়।

প্রতিটি umask ডিজিট একটি অনুমতি ক্লাসের সাথে সামঞ্জস্যপূর্ণ: প্রথম ডিজিট মালিককে প্রভাবিত করে, দ্বিতীয়টি গ্রুপকে, এবং তৃতীয়টি অন্যদেরকে। 0 এর একটি ডিজিট মানে কোন অনুমতি মাস্ক করা হয় না, যখন 7 সেই ক্লাসের জন্য সমস্ত অনুমতি সরিয়ে দেয়।

টুল বর্ণনা

Linux umask ক্যালকুলেটর একটি umask মান এবং একটি বেস অনুমতিকে অক্টাল এবং সিম্বলিক নোটেশন উভয়েই ফলাফলের কার্যকর অনুমতিতে রূপান্তরিত করে। এটি সঠিক umask শেল কমান্ডও তৈরি করে, যা সিস্টেম অ্যাডমিনিস্ট্রেটর, ডেভেলপার এবং DevOps ইঞ্জিনিয়ারদের একটি শেল, স্ক্রিপ্ট বা সিস্টেম কনফিগারেশনে প্রয়োগ করার আগে যেকোনো umask এর ফলাফল প্রিভিউ করতে সাহায্য করে।

উদাহরণ

Umask Base ফলাফল অক্টাল সিম্বলিক
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

বৈশিষ্ট্য

  • যেকোনো umask থেকে ফলাফল অক্টাল এবং সিম্বলিক অনুমতি গণনা করে
  • 3-ডিজিট এবং 4-ডিজিট (শীর্ষস্থানীয় sticky/setuid বিট সহ) উভয় umask মান সমর্থন করে
  • সাধারণ umask প্রিসেট (022, 027, 077, 002, 007, 000)
  • ফাইল (666) এবং ডিরেক্টরির (777) জন্য বেস অনুমতি প্রিসেট
  • ব্যবহারের জন্য প্রস্তুত umask শেল কমান্ড তৈরি করে

ব্যবহারের ক্ষেত্র

  • সার্ভার শক্তিশালীকরণ: /etc/profile বা ব্যবহারকারীর শেল কনফিগারেশনে যোগ করার আগে 077 এর মতো একটি কঠোর umask প্রিভিউ করুন যাতে নতুন ফাইলগুলি ব্যক্তিগত থাকে।
  • ভাগ করা ডেভেলপমেন্ট পরিবেশ: যাচাই করুন যে 002 বা 007 সহযোগী প্রকল্প ডিরেক্টরির জন্য গ্রুপ-লেখার যোগ্য ফাইল তৈরি করে।
  • স্থাপনা স্ক্রিপ্ট: CI/CD পাইপলাইন বা কন্টেইনার এন্ট্রিপয়েন্টে ব্যবহৃত umask অ্যাপ্লিকেশন লগ এবং আপলোড করা সম্পদের জন্য প্রত্যাশিত ফাইল অনুমতি তৈরি করবে তা নিশ্চিত করুন।

এটি কীভাবে কাজ করে

চূড়ান্ত অনুমতি প্রতিটি ক্লাসের (মালিক, গ্রুপ, অন্যরা) জন্য সূত্র ব্যবহার করে গণনা করা হয়:

final = base AND (NOT umask)

প্রতিটি অক্টাল ডিজিট স্বাধীনভাবে প্রক্রিয়া করা হয়। 2 এর একটি umask ডিজিট (বাইনারি 010) এবং 6 এর একটি বেস ডিজিট (বাইনারি 110) এর জন্য, ফলাফল হল 110 AND NOT 010 = 100, যা 4 এর সমান (শুধুমাত্র পড়া)। একটি 4-ডিজিট umask এর শীর্ষস্থানীয় ডিজিট বিশেষ বিট (setuid, setgid, sticky) নিয়ন্ত্রণ করে এবং মান অনুমতি গণনায় উপেক্ষা করা হয়।

টিপস

  • নতুন ফাইলগুলির অনুমতি দেখতে 666 বেস হিসাবে ব্যবহার করুন, এবং নতুন ডিরেক্টরির জন্য 777
  • 000 এর একটি umask মানে কোন অনুমতি সরানো হয় না — শুধুমাত্র কঠোরভাবে নিয়ন্ত্রিত, বিচ্ছিন্ন পরিবেশে দরকারী।
  • umask স্থায়ী করতে, উৎপন্ন কমান্ডটি ~/.bashrc, ~/.profile, বা /etc/profile এ যোগ করুন আপনি যে স্কোপ চান তার উপর নির্ভর করে।