লিনাক্স সার্ভার কনফিগারেশন পার্ট-২: ফাইল পারমিশন ও ACL মাস্টারক্লাস

Blog / লিনাক্স সার্ভার কনফিগারেশন পার্ট-২: ফাইল পারমিশন ও ACL মাস্টারক্লাস

লিনাক্স সার্ভার কনফিগারেশন পার্ট-২: ফাইল পারমিশন ও ACL মাস্টারক্লাস Detail Page

লিনাক্স সার্ভার কনফিগারেশন পার্ট-২: ফাইল পারমিশন ও ACL মাস্টারক্লাস

লিনাক্স টার্মিনালে ls -l কমান্ড দিয়ে ফাইল পারমিশন rwx দেখানো এবং chmod 755 কমান্ডের ব্যবহার

Part-1 এ আমরা tolearn ইউজার বানিয়েছি। কিন্তু সে কোন ফাইল পড়তে পারবে, কোনটা এডিট করতে পারবে? সেটা ঠিক করে দেয় ফাইল পারমিশন। ভুল পারমিশন = হ্যাক হওয়ার রাস্তা খুলে দেওয়া।

প্রয়োজনীয় প্যাকেজ: coreutils এবং acl – sudo apt install acl দিয়ে ACL ইনস্টল করুন।

Step 1: বেসিক পারমিশন বোঝা – ls -l

যেকোনো ফাইলের পারমিশন দেখুন:

Bash

ls -l /var/www/project/index.php

আউটপুট: -rwxr-xr-- 1 tolearn www-data 2048 Aug 4 22:00 index.php

ব্যাখ্যা:

অংশমানে
-ফাইল, d হলে ডিরেক্টরি
rwxOwner tolearn এর পারমিশন: Read, Write, Execute
r-xGroup www-data এর পারমিশন: Read, Execute
r--Others এর পারমিশন: শুধু Read

Numeric Value: r=4, w=2, x=1। তাই rwx = 7r-x = 5r-- = 4। rwxr-xr-- মানে 754

Step 2: পারমিশন পরিবর্তন – chmod

সবচেয়ে কমন পারমিশন:

Bash

chmod u+x script.sh  # User/Owner কে Execute পারমিশন দিন
chmod g-w file.txt   # Group থেকে Write পারমিশন কেড়ে নিন
chmod o=r file.txt   # Others কে শুধু Read পারমিশন দিন

Symbolic Way:

chmod u+x script.sh # User/Owner কে Execute পারমিশন দিন
chmod g-w file.txt # Group থেকে Write পারমিশন কেড়ে নিন
chmod o=r file.txt # Others কে শুধু Read পারমিশন দিন

Step 3: মালিকানা পরিবর্তন – chown ও chgrp

ফাইলের মালিক ও গ্রুপ চেঞ্জ:

Bash

sudo chown tolearn:www-data /var/www/project/index.php

ব্যাখ্যা: tolearn হলো নতুন Owner, www-data হলো নতুন Group।

শুধু গ্রুপ চেঞ্জ:

Bash

sudo chgrp developers /var/www/project/

Step 4: স্পেশাল পারমিশন – setuid, setgid, sticky bit

এগুলো অ্যাডভান্সড সিকিউরিটির জন্য।

১. setuid 4xxx: ফাইলটি যে Owner-এর, তার পারমিশন নিয়ে রান হবে। passwd কমান্ড এভাবে কাজ করে।

Bash

sudo chmod 4755 /usr/bin/program

২. setgid 2xxx: ফোল্ডারে নতুন ফাইল তৈরি হলে Parent ফোল্ডারের গ্রুপ পাবে। শেয়ার্ড ফোল্ডারের জন্য দরকারি।

Bash

sudo chmod 2775 /var/www/shared_project/

৩. sticky bit 1xxx/tmp ফোল্ডারে থাকে। ইউজার শুধু নিজের ফাইল ডিলিট করতে পারবে।

Bash

sudo chmod 1777 /tmp

Step 5: ACL – Access Control List: আসল ক্ষমতা

chmod দিয়ে শুধু 3 ধরনের ইউজার কন্ট্রোল করা যায়। কিন্তু যদি tolearn ইউজারকে রিড আর developer ইউজারকে রাইট দিতে চান? তখন লাগবে ACL।

১. ACL চেক করা:

Bash

getfacl /var/www/project/index.php

২. নির্দিষ্ট ইউজারকে পারমিশন দেওয়া:

Bash

sudo setfacl -m u:developer:rw /var/www/project/index.php

ব্যাখ্যা: developer ইউজারকে Read+Write দিলাম, অথচ ফাইলের Owner tolearn ই আছে।

৩. নির্দিষ্ট গ্রুপকে পারমিশন দেওয়া:

Bash

sudo setfacl -m g:testers:r /var/www/project/

৪. ACL মুছে ফেলা:

Bash

sudo setfacl -b /var/www/project/index.php

Step 6: ডিরেক্টরি স্ট্রাকচার ও বেস্ট প্র্যাকটিস

ওয়েব সার্ভারের জন্য রেকমেন্ডেড পারমিশন:

/var/www/ root:root 755
└── project/ tolearn:www-data 755
├── index.php tolearn:www-data 644
├── uploads/ www-data:www-data 775 + setgid
└── config.php tolearn:www-data 640 # Others পড়তে পারবে না

গোল্ডেন রুল:

  1. ফোল্ডার: 755, ফাইল: 644
  2. কনফিগ ফাইল: 640 বা 600
  3. কখনোই 777 পারমিশন দেবেন না।

3. সিরিজের পরবর্তী পর্ব

Part-3: SSH Key-Based Authentication ও সার্ভার হার্ডেনিং – পাসওয়ার্ড ছাড়া সিকিউর লগইন এবং root লগইন বন্ধ করা শিখব।

Leave a Reply

Welcome to To Learn Team, a dynamic educational platform where knowledge meets collaboration. Designed for students, educators, and lifelong learners, we provide a curated hub of interactive study groups, expert tutorials, and comprehensive resources across diverse subjects. We believe that learning is most powerful when done together. By uniting a global community, we transform curiosity into confidence and individual aspirations into shared achievements. Join the To Learn Team today—elevate your intellect and grow with us!

Get In Touch

Address

Dhaka, Bangladesh

Email

abir43tee@gmail.com

Phone

+880 1711427737

Quick Search