Sep 13, 2025

Umask and File Permission in Linux

Umask (User Mask অথবা User file creation Mask) অথবা Umask ভ্যালু হচ্ছে, লিনাক্সের ফাইল/ডিরেক্টরি পার্মিশন লেভেল। অর্থাৎ লিনাক্সে যখন কোনও ফাইল/ডিরেক্টরি তৈরি করা হয়, তখন umask ভ্যালুর উপর ভিত্তি করে সিস্টেম থেকে পার্মিশন লেভেল সেট হয়।

লিনাক্সে ডিফল্ট ফাইল এবং ডিরেক্টরির পার্মিশন হচ্ছেঃ

  • ডিরেক্টরিঃ 755 (drwxr-xr-x)
  • ফাইলঃ 644(-rw-r–r–)

লিনাক্স সিস্টেমের ডিফল্ট umask ভ্যালু হচ্ছেঃ

  • রুট (root) ইউজারঃ  0022
  • রেগুলার ইউজারঃ 0002
  • নিচের কমান্ডের মাধ্যমে রুট (root) ইউজারের ডিফল্ট umask ভ্যালু চেক করা যাবেঃ 
  • নিচের কমান্ডের মাধ্যমে রেগুলার ইউজারের (student) ডিফল্ট umask ভ্যালু চেক করা যাবেঃ 

উদাহরণ হিসেবে যদি কোনও নতুন ফাইল/ডিরেক্টরি তৈরি করি, তখন umask ভ্যালু কিভাবে কাজ করে সেটা এখন আমরা দেখব। আমরা file1 এবং dir1 নামে একটি করে ফাইল এবং ডিরেক্টরি তৈরি করি এবং ‘ls -l’ কমান্ডের মাধ্যমে পার্মিশন সম্পর্কিত সকল তথ্য পেতে পারিঃ

এখানে আমরা দেখতে পাচ্ছি যে, ডিরেক্টরি পার্মিশন 755 এবং ফাইল পার্মিশন হিসেবে 644 আছে। যাদের 755 এবং 644 বুঝতে সমস্যা হচ্ছে তাদের জন্য একটু ব্যাখ্যা করি। এখানে ফাইল এবং ডিরেক্টরির দ্বিতীয় ফিল্ড অর্থাৎ file1 (rw-r–r–) এবং dir1 (rwxr-xr-x) পার্মিশন দেওয়া আছে।

এখানে rwx থেকে যদি বিস্তারিত জানতে চাই তাহলেঃ 

  • r = read, (4)
  • w = write, (2)
  • x = execute, (1)
  • = no permission, (0)

অর্থাৎ file1 (rw-r–r–) এর পার্মিশন হবে 644 এবং dir1(rwxr-xr-x) এর পার্মিশন হবে 755

কিভাবে umask ভ্যালু বের করবেন ?

আমরা ইতিমদ্ধ্যে জেনেছি যে, রুট (root) ইউজারের ডিফল্ট umask ভ্যালু 0022 এবং রেগুলার ইউজারদের ডিফল্ট umask 0002। মিনিমাম এবং ম্যাক্সিমাম ভ্যালু হচ্ছেঃ    

  • ডিরেক্টরির জন্য মিনিমাম এবং ম্যাক্সিমাম umask ভ্যালুঃ 000 এবং 777
  • ফাইলের জন্য মিনিমাম এবং ম্যাক্সিমাম umask ভ্যালুঃ 000 এবং 666

এখানে একটা প্রশ্ন থাকতে পারে যে, ফাইলের জন্য umask ভ্যালু 666 কেন? কারণ শুধুমাত্র বাইনারি এবং স্ক্রিপ্ট ফাইলে executable পার্মিশন থাকে এবং রেগুলার ফাইলে কোনো executable পার্মিশন থাকে না। একটা ফাইলে read/write পার্মিশন থাকলেই সেটাতে আমরা লিখতে/পড়তে বা এডিট করতে পারি এই জন্য ফাইলের সর্বোচ্চ পার্মিশন হলো 666। কিন্তু দরকার হলে আমরা যেকোনও রেগুলার ফাইলকে executable করে নিতে পারি। আর ডিরেক্টরির ক্ষেত্রে যদি কোনও executable পার্মিশন না থাকে, তাহলে সে ডিরেক্টরি আমরা এক্সেস করতে পারবো না। এজন্য ডিরেক্টরির ক্ষেত্রে সর্বোচ্চ পার্মিশন 777 দেওয়া হয়। আমরা এখন umask ভ্যালু থেকে কিভাবে ফাইল পার্মিশন বের করা হয়, সেটা নিয়ে আলোচনা করবো। 

যদি ম্যাক্সিমাম ফাইল/ডিরেক্টরি পার্মিশন (666/777) থেকে umask ভ্যালু বাদ দেওয়া হয়, তাহলে যে আউটপুট পাওয়া যাবে, সেটাই হচ্ছে ফাইল/ডিরেক্টরির বর্তমান পার্মিশন। উদাহরণ হিসেবে বর্তমান umask চেক করা যেতে পারেঃ

যেহেতু এখানে ‘root’ ইউজারের umask ভ্যালু 0022 সুতরাং ফাইল/ডিরেক্টরির ডিফল্ট পার্মিশন হবেঃ

এখানে রেগুলার ইউজারের (student) umask ভ্যালু 0002 সুতরাং ফাইল/ডিরেক্টরির ডিফল্ট পার্মিশন হবেঃ

আমরা যদি এখন umask ভ্যালু পরিবর্তন করি এবং নতুন ফাইল/ডিরেক্টরি তৈরি করি তাহলে, নতুন umask ভ্যালুর উপর ভিত্তি করে ফাইল/ডিরেক্টরির নতুন পার্মিশন সেট হবে। umask ভ্যালু দুই ভাবে পরিবর্তন করা যায়। প্রথমত কমান্ডের মাধ্যমে অস্থায়ী ভাবে (Temporary) এবং দ্বিতীয়ত এডিটর (vim/vi) ব্যবহার করে স্থায়ী (Permanently) ভাবে। 

  • নিচের কমান্ডের মাধ্যমে রুট (root) ইউজারের umask ভ্যালু পরিবর্তন করা যাবেঃ 

umask ভ্যালু পরিবর্তন করার পর এখন দেখবো কি পার্মিশন সেট হয়? আমরা file2 এবং dir2 নামে পুনরায় একটি ফাইল এবং একটি ডিরেক্টরি তৈরি করি এবং ‘ls -l’ কমান্ড দিয়ে পার্মিশন চেক করিঃ

এখানে ডিরেক্টরি dir1dir2 এবং ফাইল file1file2 এর মধ্যে তুলনা করলে নতুন ফাইলের পার্মিশন 622 (rw–w–w-) এবং ডিরেক্টরির পার্মিশন 733 (rwx-wx-wx) বর্তমান umask উপর ভিত্তি করে সেট হয়েছে।

আমরা যেহেতু অস্থায়ী (Temporary) ভাবে umask ভ্যালু সেট করেছি সুতরাং সিস্টেম রিবুট/রিস্টার্ট দেওয়্যার পরে umask ভ্যালু আবার ডিফল্ট মোডে (0022) চলে যাবে। এজন্য সিস্টেমে স্থায়ী ভাবে (Permanently) umask ভ্যালু সেট করতে হলে ‘/etc/profile’ ফাইলটি এডিট করে ইচ্ছেমত umask ভ্যালু পরিবর্তন করে সিস্টেম রিস্টার্ট দিতে হবে অথবা ‘source’ কমান্ড রান করতে হবে।  

  • নিচের কমান্ডের মাধ্যমে ‘/etc/profile’ ফাইলে বর্তমান umask ভ্যালু দেখা যাবেঃ  
Avatar photo
Md. Azaj Ikbal

Red Hat | CentOS | Ubuntu | Shell Scripting | Server Hardening | Server Clustering | Virtualization | VMware | vSphere | vCenter | ESXi | vMotion | SAN Storage | vSAN | VMware Data Center | Windows Server Domain Controller | DNS & DNS Sec | RADIUS | Cacti | Observium | GrayLog | Veeam Backup | Huawei Networking | Cisco Networking | IP Telephony | Server Admin | Network Engineer