root-এর বদলে ইউজার ও sudo
কীভাবে একটি কাজের ইউজার তৈরি করবেন, তাকে sudo দেবেন, SSH কী সরাবেন, এবং সার্ভারে root হিসেবে লগইন করা বন্ধ করবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
মেশিনে সম্পূর্ণ root অ্যাক্সেস থাকে, আর প্রথম প্রবৃত্তি হলো root হিসেবেই কাজ চালিয়ে যাওয়া। rm -rf-এ প্রথম টাইপো হওয়ার আগ পর্যন্ত এটা সুবিধাজনকই লাগে। আসল কার্যকর সেটআপ ভিন্ন: দৈনন্দিন কাজের জন্য একটি সাধারণ ইউজার, আর root-এ যাওয়া sudo দিয়ে — কেবল যখন সত্যিই দরকার।
একটি ইউজার তৈরি করুন
Debian এবং Ubuntu:
adduser artem
usermod -aG sudo artem
AlmaLinux এবং CentOS Stream:
adduser artem
passwd artem
usermod -aG wheel artem
গ্রুপটি আলাদা: Debian পরিবারে sudo, RHEL পরিবারে wheel। অধিকার যাচাই করুন:
sudo -l -U artem
SSH কী স্থানান্তর করুন
প্যানেলের "Access" ট্যাবে /hosting/vds/m/<id> যোগ করা কী-গুলো root ইউজারের কাছে জমা হয়। নতুন ইউজারের জন্য সেগুলো আপনাকেই বসাতে হবে:
mkdir -p /home/artem/.ssh
cp /root/.ssh/authorized_keys /home/artem/.ssh/
chown -R artem:artem /home/artem/.ssh
chmod 700 /home/artem/.ssh
chmod 600 /home/artem/.ssh/authorized_keys
এখানে পারমিশন কোনো আনুষ্ঠানিকতা নয়: বেশি শিথিল হলে sshd নীরবে কী গ্রহণ করতে অস্বীকার করবে।
বর্তমান টার্মিনাল উইন্ডো বন্ধ না করে আলাদা একটি উইন্ডোতে নতুন ইউজার হিসেবে লগ ইন করতে পারছেন কি না যাচাই করুন:
ssh artem@<address>
sudo whoami
সফলভাবে যাচাই হওয়ার পরেই root লগ ইন বন্ধ করা-র দিকে এগোবেন।
sudo কীভাবে ব্যবহার করবেন
sudo systemctl restart nginx
sudo -i
sudo -u www-data ls /var/www
sudo -i আপনাকে সম্পূর্ণ root শেল দেয় — ধারাবাহিক কয়েকটি কমান্ডের জন্য, স্থায়ী কাজের জন্য নয়। sudo-র প্রতিটি কল লগে লেখা হয়, আর কোনো ঘটনা তদন্তের সময় সেটাই আপনার সূত্র:
journalctl -t sudo -n 50
grep sudo /var/log/auth.log
লগ সম্পর্কে আরও — মেশিনে কে লগ ইন করেছে।
সার্ভিসের জন্য অধিকার
আরেকটি সাধারণ ভুল হলো "যাতে কাজ করে" এই ভেবে অ্যাপ্লিকেশন root হিসেবে চালানো। প্রতিটি সার্ভিসের জন্য শেল-বিহীন একটি সিস্টেম ইউজার তৈরি করুন:
useradd --system --no-create-home --shell /usr/sbin/nologin appsrv
chown -R appsrv:appsrv /opt/app
তাহলে অ্যাপ্লিকেশনে কোনো ফাঁক থাকলে আক্রমণকারীর হাতে একবারেই পুরো মেশিন চলে যায় না।
সাধারণ ভুল
| ভুল | কারণ | সমাধান |
|---|---|---|
artem is not in the sudoers file | গ্রুপে নেই বা আবার লগ ইন করেননি | usermod -aG sudo artem, আবার লগ ইন করুন |
| কী গ্রহণ করা হচ্ছে না | .ssh-এর পারমিশন 700-এর চেয়ে বেশি বা মালিক root | উপরের মতো chown ও chmod |
| sudo পাসওয়ার্ড কাজ করছে না | ইউজারের কোনো পাসওয়ার্ড সেট করা নেই | passwd artem |
| sudoers সম্পাদনা করে sudo নষ্ট হয়েছে | ফাইলে সিনট্যাক্স ত্রুটি | কেবল visudo; rescue mode দিয়ে মেরামত |
/etc/sudoersসম্পাদনা করুন একমাত্রvisudoকমান্ড দিয়ে — এটি সংরক্ষণের আগে সিনট্যাক্স যাচাই করে। নষ্ট ফাইল একবারেই সবার কাছ থেকে sudo কেড়ে নেয়।