Chmod ক্যালকুলেটর
owner, group ও বাকি সবার জন্য পড়া, লেখা ও
চালানো টিক করে অক্টাল chmod নম্বর ও
সিম্বলিক স্ট্রিং (rwxr-xr-x) পান — অথবা যেকোনোটি টাইপ করুন এবং বক্সগুলো
আপডেট হবে। setuid, setgid ও sticky bit সমর্থন করে। সবকিছু আপনার ব্রাউজারেই চলে।
| কার জন্য | পড়া (4) | লেখা (2) | চালানো (1) |
|---|---|---|---|
| Owner (user) | |||
| Group (group) | |||
| Other (world) |
বিশেষ পারমিশন বিট দেখান (setuid / setgid / sticky)
chmod 755 filename chmod পারমিশন কীভাবে কাজ করে
কোনো Unix বা Linux সিস্টেমে প্রতিটি ফাইল ও ডিরেক্টরি তিন শ্রেণির ব্যবহারকারীর জন্য পারমিশন রাখে:
owner (যে ব্যবহারকারী ফাইলটির মালিক), group (ব্যবহারকারীদের
একটি দল), এবং other (বাকি সবাই)। প্রতিটি শ্রেণিকে তিনটি পারমিশন দেওয়া যায়:
পড়া (মান 4), লেখা (মান 2) ও চালানো (মান 1)।
কোনো শ্রেণির জন্য কাঙ্ক্ষিত মানগুলো যোগ করে তার অক্টাল অঙ্ক পান — পড়া + চালানো = 4 + 1 = 5,
পড়া + লেখা = 4 + 2 = 6, তিনটিই = 7 — এবং তিনটি অঙ্ক সেই নম্বরে সাজান যা আপনি chmod-কে
দেন। তাই chmod 640 file মানে owner 6 (পড়া + লেখা), group 4 (পড়া), other 0 (কিছুই নয়)।
একই পারমিশন সিম্বলিক রূপে নয়টি অক্ষরে লেখা হয় — owner, group ও other-এর জন্য rwx-এর
তিনটি গ্রুপ, এবং যেখানে কোনো পারমিশন বন্ধ সেখানে একটি ড্যাশ। 755 মানে
rwxr-xr-x; 644 মানে rw-r--r--। এই ক্যালকুলেটরটি টিক-বক্স, অক্টাল
নম্বর, সিম্বলিক স্ট্রিং ও চালানোর-জন্য-প্রস্তুত chmod কমান্ডকে সমন্বয়ে রাখে — যেকোনো
একটি বদলান, বাকিগুলো তৎক্ষণাৎ আপডেট হয়।
সাধারণ পারমিশন
সিম্বলিক কলামটি অক্টাল মান থেকে গণনা করা, দেখে নেওয়া নয় — তাই এটি সবসময় সঠিক থাকে:
| অক্টাল | সিম্বলিক | সাধারণ ব্যবহার |
|---|---|---|
644 | rw-r--r-- | ফাইলের জন্য ডিফল্ট — owner পড়ে/লেখে, বাকি সবাই কেবল পড়তে পারে। |
755 | rwxr-xr-x | ডিরেক্টরি, স্ক্রিপ্ট ও প্রোগ্রামের জন্য ডিফল্ট — owner-এর পূর্ণ, অন্যদের পড়া + চালানো। |
600 | rw------- | ব্যক্তিগত ফাইল — কেবল owner পড়তে ও লিখতে পারে (SSH কি, ক্রেডেনশিয়াল)। |
700 | rwx------ | ব্যক্তিগত ডিরেক্টরি বা স্ক্রিপ্ট — কেবল owner-এর যেকোনো অ্যাক্সেস। |
775 | rwxrwxr-x | owner + group পূর্ণ, অন্যরা পড়া + চালানো — একটি সহযোগিতামূলক (collaborative) ডিরেক্টরি। |
664 | rw-rw-r-- | owner + group পড়ে/লেখে, অন্যরা কেবল পড়ে — group-শেয়ার করা ফাইল। |
640 | rw-r----- | owner পড়া/লেখা, group পড়া, অন্যরা কিছুই নয় — group-শেয়ার করা কনফিগ। |
750 | rwxr-x--- | owner-এর পূর্ণ, group-এর পড়া + চালানো, অন্যদের কিছুই নয় — group-শেয়ার করা প্রোগ্রাম। |
444 | r--r--r-- | সবার জন্য কেবল পড়া। |
400 | r-------- | কেবল owner-এর জন্য কেবল পড়া। |
711 | rwx--x--x | owner-এর পূর্ণ; group ও অন্যরা কোনো ডিরেক্টরিতে ঢুকতে পারে কিন্তু তার তালিকা দেখতে পারে না। |
777 | rwxrwxrwx | সবাই পড়তে, লিখতে ও চালাতে পারে — অনিরাপদ, শেয়ার করা সিস্টেমে এড়িয়ে চলুন। |
পড়া, লেখা ও চালানো — ফাইল বনাম ডিরেক্টরি
| পারমিশন | ফাইলে | ডিরেক্টরিতে |
|---|---|---|
r পড়া (4) | ফাইলের বিষয়বস্তু দেখুন। | ভেতরের এন্ট্রিগুলোর নাম তালিকাভুক্ত করুন। |
w লেখা (2) | ফাইলটি বদলান বা ওভাররাইট করুন। | ভেতরে এন্ট্রি তৈরি, নাম বদল বা মুছুন। |
x চালানো (1) | ফাইলটি প্রোগ্রাম/স্ক্রিপ্ট হিসেবে চালান। | ডিরেক্টরিতে ঢুকুন এবং ফাইলগুলো নাম দিয়ে অ্যাক্সেস করুন (“search”)। |
বিশেষ পারমিশন বিট
একটি চতুর্থ, অগ্রণী অক্টাল অঙ্ক তিনটি বিশেষ বিট রাখে। এগুলো ঐচ্ছিক এবং ডিফল্টভাবে বন্ধ — এগুলো সেট করতে টুলে “বিশেষ পারমিশন বিট দেখান” টিক করুন।
| বিট | অক্টাল | সিম্বলিক | এটি কী করে |
|---|---|---|---|
| setuid | 4000 | s (user execute) | কোনো executable-কে কলারের বদলে ফাইলের owner-এর বিশেষাধিকার নিয়ে চালায়। owner ট্রায়াডে s (বা execute বন্ধ থাকলে S) দেখায়। ক্লাসিক উদাহরণ: /usr/bin/passwd। |
| setgid | 2000 | s (group execute) | কোনো ফাইলে, এটিকে group-এর বিশেষাধিকার নিয়ে চালায়। কোনো ডিরেক্টরিতে, নতুন ফাইল ডিরেক্টরির group উত্তরাধিকারে পায় — শেয়ার করা ফোল্ডারের জন্য উপযোগী। group ট্রায়াডে s / S দেখায়। |
| sticky bit | 1000 | t (other execute) | কোনো ডিরেক্টরিতে, কেবল ফাইলের owner (বা root) সেটি মুছতে বা নাম বদলাতে পারে, অন্যরা লিখতে পারলেও — /tmp-এর মতো world-writable ডিরেক্টরিতে ব্যবহৃত হয়। other ট্রায়াডে t / T দেখায়। |
সিম্বলিক নোটেশনে কোনো বিশেষ বিট execute অক্ষরকে প্রতিস্থাপন করে: execute-ও চালু থাকলে ছোট হাতের অক্ষর
(s, t), বন্ধ থাকলে বড় হাতের অক্ষর (S, T)। উদাহরণস্বরূপ
chmod 4755 মানে rwsr-xr-x, এবং chmod 1777 (একটি sticky,
world-writable ডিরেক্টরি যেমন /tmp) মানে rwxrwxrwt।
কমান্ড লাইনে এটি ব্যবহার করা
chmod কমান্ডটি কপি করুন এবং একটি টার্মিনালে চালান, filename-কে আপনার পাথ
দিয়ে বদলে। কোনো ডিরেক্টরি ও তার ভেতরের সবকিছুতে পারমিশন রিকার্সিভলি প্রয়োগ করতে -R
অপশন যোগ করুন — সুবিধাজনক, তবে প্রথমে নম্বরটি আবার যাচাই করুন, কারণ রিকার্সিভ 777 বা ডেটা
ফাইলে ভুলবশত বসানো execute বিট একটি সাধারণ ভুল। আপনি সিম্বলিক অপারেটর দিয়ে পারমিশন রিলেটিভলিও প্রয়োগ
করতে পারেন (যেমন কেবল owner-এর জন্য execute যোগ করতে chmod u+x script.sh); এই টুলটি পূর্ণ
অক্টাল ও সিম্বলিক মান গণনার ওপর মনোনিবেশ করে।
গোপনীয়তা
এই ক্যালকুলেটরটি সম্পূর্ণ ক্লায়েন্ট-সাইড গণিত — আপনার দেওয়া মান কখনো আপনার ডিভাইস থেকে বাইরে যায় না, কিছুই লগ হয় না এবং কোনো নেটওয়ার্ক অনুরোধ নেই। লোড হওয়ার পরে এটি অফলাইনে কাজ করতে থাকে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
- chmod 755 মানে কী?
- এটি তিনটি পারমিশন অঙ্ক সেট করে — একটি করে owner, group ও বাকি সবার (“other”) জন্য। প্রতিটি অঙ্ক পড়া (4), লেখা (2) ও চালানো (1) যোগ করে। তাই 7 = 4+2+1 = পড়া, লেখা ও চালানো; 5 = 4+1 = পড়া ও চালানো। তাই chmod 755 owner-কে পূর্ণ অ্যাক্সেস দেয় এবং group ও বাকি সবাইকে পড়া + চালানো দেয় কিন্তু লেখা নয়। সিম্বলিক রূপে এটি rwxr-xr-x। এটি ডিরেক্টরি, স্ক্রিপ্ট ও প্রোগ্রামের জন্য মানক সেটিং।
- অক্টাল ও সিম্বলিক নোটেশনের মধ্যে পার্থক্য কী?
- দুটোই একই পারমিশনকে দুইভাবে বর্ণনা করে। অক্টাল (সংখ্যাসূচক) হলো 755 বা 4755-এর মতো তিন- বা চার-অঙ্কের নম্বর, যেখানে প্রতিটি অঙ্ক owner, group ও other-এর জন্য পড়া (4), লেখা (2) ও চালানো (1)-এর যোগফল। সিম্বলিক হলো rwxr-xr-x-এর মতো নয়-অক্ষরের স্ট্রিং, যা owner, group ও other-এর জন্য তিনটি r/w/x গ্রুপে ভাগ, এবং যেখানে কোনো পারমিশন বন্ধ সেখানে ড্যাশ। এই টুলটি দুটোই একসাথে দেখায় এবং আপনাকে যেকোনোটি টাইপ করতে দেয় — টিক-বক্স সেট করে নম্বরটি পড়ুন, অথবা কোনো নম্বর বা সিম্বলিক স্ট্রিং পেস্ট করে বক্সগুলো দেখুন।
- ফাইল বনাম ডিরেক্টরির জন্য পড়া, লেখা ও চালানো মানে কী?
- কোনো ফাইলের জন্য: পড়া আপনাকে তার বিষয়বস্তু দেখতে দেয়, লেখা তা বদলাতে বা ওভাররাইট করতে দেয়, এবং চালানো তা প্রোগ্রাম বা স্ক্রিপ্ট হিসেবে চালাতে দেয়। কোনো ডিরেক্টরির জন্য অর্থ ভিন্ন: পড়া আপনাকে তার ভেতরের নামগুলো তালিকাভুক্ত করতে দেয়, লেখা ভেতরে এন্ট্রি তৈরি, নাম বদল বা মুছতে দেয়, এবং চালানো (প্রায়ই “search” বিট বলা হয়) আপনাকে ডিরেক্টরিতে ঢুকে ভেতরের ফাইলগুলো নাম দিয়ে অ্যাক্সেস করতে দেয়। এ কারণেই ডিরেক্টরির সাধারণত চালানো প্রয়োজন হয় (যেমন 755) যেখানে সাধারণ ডেটা ফাইলের সাধারণত হয় না (যেমন 644)।
- setuid, setgid ও sticky bit কী?
- এগুলো তিনটি ঐচ্ছিক “বিশেষ” পারমিশন বিট যা একটি অগ্রণী চতুর্থ অক্টাল অঙ্কে সংরক্ষিত হয় (setuid 4, setgid 2, sticky 1)। setuid কোনো executable-কে ফাইলের owner-এর বিশেষাধিকার নিয়ে চালায়; setgid তা group-এর বিশেষাধিকার নিয়ে চালায়, বা কোনো ডিরেক্টরিকে তার group নতুন ফাইলে দেয়; কোনো ডিরেক্টরিতে sticky bit ব্যবহারকারীদের একে অপরের ফাইল মুছতে বাধা দেয় (যেমন /tmp-তে)। সিম্বলিক রূপে এগুলো execute অক্ষরকে s/S (setuid, setgid) বা t/T (sticky) দিয়ে প্রতিস্থাপন করে — execute-ও সেট থাকলে ছোট হাতের অক্ষর, না থাকলে বড় হাতের অক্ষর। এগুলো সেট করতে উপরে “বিশেষ পারমিশন বিট দেখান” টিক করুন।
- chmod 777 কি নিরাপদ?
- প্রায় কখনোই নয়। 777 সিস্টেমের সবাইকে পড়া, লেখা ও চালানো — সবই দেয়, তাই যেকোনো ব্যবহারকারী (বা কোনো আপসকৃত প্রসেস) ফাইল বা তার বিষয়বস্তু পরিবর্তন বা প্রতিস্থাপন করতে পারে। এটি পারমিশন এররের একটি সাধারণ কিন্তু ঝুঁকিপূর্ণ “সমাধান”। যতটা কম পারমিশনে কাজ চলে ততটাই রাখুন — সাধারণত ফাইলের জন্য 644 এবং ডিরেক্টরি ও স্ক্রিপ্টের জন্য 755, এবং ডেটা সংবেদনশীল হলে group/other অঙ্কগুলো আঁটসাঁট করুন (যেমন 600 বা 640)।
- কিছু কি আপলোড বা সেভ হয়?
- না। পুরো ক্যালকুলেটরটি আপনার ব্রাউজারে চলা সাধারণ JavaScript — এটি কেবল আপনার দেওয়া নম্বর ও অক্ষরের ওপর ছোট বিট-গণিত করে। কিছুই কোনো সার্ভারে পাঠানো হয় না, কিছুই সংরক্ষিত হয় না, এবং পৃষ্ঠা লোড হওয়ার পরে এটি অফলাইনে কাজ করতে থাকে।