SSD Nodes Learn 🎉 VPS $4.99/মাস থেকে
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-07

Ubuntu VPS-এ root password কীভাবে পরিবর্তন করবেন

Ubuntu VPS-এ root বা user password পরিবর্তনে passwd, chpasswd ও chage ব্যবহার, নতুন password যাচাই এবং SSH বা root password হারালে আবার প্রবেশের উপায় জানুন।

Verified Every command ran end-to-end on a fresh Ubuntu 24.04 server, August 1, 2026.

Ubuntu-তে আপনার VPS root password কীভাবে পরিবর্তন করবেন

Ubuntu-তে আপনার VPS (virtual private server)-এর root password পরিবর্তন করতে, sudo চালাতে পারেন এমন একজন ব্যবহারকারী হিসেবে SSH (secure shell) session খুলুন। এরপর sudo passwd root চালান। এটি নতুন password দুইবার দিতে বলে এবং পুরোনো password চায় না, কারণ sudo ইতিমধ্যে আপনার পরিচয় যাচাই করেছে। নিজের login password পরিবর্তন করতে কোনো argument ছাড়া passwd চালান। সে ক্ষেত্রে এটি প্রথমে আপনার বর্তমান password চায়।

passwd                  # your own password
sudo passwd deploy      # another user's password
sudo passwd root        # root's password

এটাই সম্পূর্ণ প্রক্রিয়া। নিচের অংশে সাধারণত যে সমস্যাগুলো হয় সেগুলো ব্যাখ্যা করা হয়েছে: session হারানোর আগে নতুন password কাজ করছে কি না যাচাই করা, script থেকে password সেট করা, ইচ্ছাকৃতভাবে password-এর মেয়াদ শেষ করা এবং password হারিয়ে গেলে আবার প্রবেশাধিকার পাওয়া।

পাসওয়ার্ড পরিবর্তনের আগে দ্বিতীয় একটি session খুলুন

এখনই দ্বিতীয় একটি SSH session খুলে সংযোগটি চালু রাখুন। এই গাইডে প্রায় সব ব্যর্থতা সমাধান করতে দুই মিনিটই লাগে, যদি অন্তত একটি authenticated shell চালু থাকে। শেষ session বন্ধ হয়ে গেলে সমাধানের জন্য console-এ যেতে হতে পারে।

আগে থেকে খোলা shell সংশ্লিষ্ট account-এ পরিবর্তন, lock বা expire প্রয়োগ করার পরও কাজ করতে থাকে। কারণ SSH login-এর সময় credential পরীক্ষা করে, পরে আর পরীক্ষা করে না। এর ব্যতিক্রম হলো sudo। এর timestamp মেয়াদ শেষ হলে এটি PAM (pluggable authentication modules)-এর মাধ্যমে আপনার password আবার পরীক্ষা করে। ডিফল্টভাবে, শেষ prompt-এর 15 মিনিট পরে timestamp-এর মেয়াদ শেষ হয়। তাই নতুন password-এর প্রথম বাস্তব পরীক্ষা login-এর সময় নয়; পরের বার sudo password চাইলে তখন হয়।

প্রথম session চালু রেখে দ্বিতীয় session-এ নতুন password পরীক্ষা করুন।

passwd দিয়ে নিজের পাসওয়ার্ড পরিবর্তন করুন

passwd
Changing password for deploy.
Current password:
New password:
Retype new password:
passwd: password updated successfully

passwd: password updated successfully একমাত্র এমন output, যার অর্থ /etc/shadow-এর hash প্রতিস্থাপিত হয়েছে। অন্য যেকোনো output পুরোনো পাসওয়ার্ডই রেখে দিয়েছে।

এখানে দুটি failure ঘটে। passwd: Authentication token manipulation error-এর পরে passwd: password unchanged দেখালে এর অর্থ হলো আপনি যে বর্তমান পাসওয়ার্ড লিখেছেন তা ভুল, অথবা /etc/shadow ধারণকারী filesystem-এ লেখা যায় না; recovery mode-এ এটিই স্বাভাবিক অবস্থা। You must choose a longer password. এসেছে /etc/pam.d/common-password-এর pam_unix থেকে। এটি সাধারণ user-এর ক্ষেত্রে password-এর দৈর্ঘ্য ও সাদৃশ্য পরীক্ষা প্রয়োগ করে।

বেশিরভাগ VPS image-এ default account (ubuntu, অথবা provider যে নাম ব্যবহার করে) কোনো পাসওয়ার্ড থাকে না; শুধু একটি SSH key থাকে। passwd-এর যাচাই করার মতো কোনো বর্তমান পাসওয়ার্ড নেই, তাই এটি প্রথম prompt অতিক্রম করতে পারে না। এর পরিবর্তে sudo passwd $USER ব্যবহার করুন। এটি কাজ করে, কারণ image-এর sudoers drop-in file ওই account-কে পাসওয়ার্ড ছাড়াই sudo চালানোর অনুমতি দেয়।

sudo passwd ব্যবহার করে অন্য ব্যবহারকারীর password পরিবর্তন করুন

sudo passwd deploy

root-এর কাছে পুরোনো password চাওয়া হয় না। এছাড়া pam_unix সাধারণ ব্যবহারকারীদের ক্ষেত্রে প্রযোজ্য password strength check এড়িয়ে যায়। তাই root এমন password সেট করতে পারে, যা ব্যবহারকারী নিজে সেট করতে পারতেন না।

Lock করা আলাদা একটি কাজ। sudo passwd -l deploy সংরক্ষিত hash-এর সামনে একটি ! বসায়। ফলে কোনো password-এর সঙ্গে সেটি মেলে না। sudo passwd -u deploy এটি সরিয়ে দেয়। sudo passwd -S deploy দিয়ে বর্তমান অবস্থা পড়ে দেখুন।

Password lock করলেও ওই ব্যবহারকারীর login বন্ধ হয় না। তার ~/.ssh/authorized_keys-এ থাকা যেকোনো key এখনও কাজ করে, কারণ public key authentication কখনও /etc/shadow পড়ে না। কোনো account সম্পূর্ণভাবে বন্ধ করতে account-টিকেই expire করুন:

sudo usermod --expiredate 1 deploy

এতে account expiry 1970 সালের একটি তারিখে সেট হয়। ফলে যে credential-ই দেওয়া হোক, sshd login প্রত্যাখ্যান করে। sudo usermod --expiredate '' deploy দিয়ে এই পরিবর্তন বাতিল করুন।

passwd -d ব্যবহার এড়িয়ে চলুন। এটি account lock না করে একটি empty password সেট করে। পুরোনো কোনো release-এ PAM stack-এ nullok থাকলে empty password যে কেউ ব্যবহার করতে পারে।

VPS-এ root-এর কি password দরকার?

Ubuntu-তে root account locked অবস্থায় থাকে। /etc/shadow hash-এর বদলে ! সংরক্ষণ করে, আর sudo passwd -S root root L দিয়ে শুরু হওয়া একটি line দেখায়। আপনি password সেট না করা পর্যন্ত password দিয়ে root হিসেবে কেউ login করতে পারে না। তাই image-এ sudo ব্যবহারের অনুমতিসম্পন্ন একটি user দেওয়া হয়। root হিসেবে কাজ না করে VPS-এ least privilege user account ব্যবহার করা অনুসরণ করাই সঠিক পদ্ধতি।

root password সেট করলে একটি নির্দিষ্ট সুবিধা পাওয়া যায়: provider console দিয়ে প্রবেশের একটি উপায়। এই console network stack-এর নিচে virtual machine-এর সঙ্গে সংযুক্ত থাকে। তাই sshd-এর configuration ভুল হলেও বা firewall rule ভুল হলেও এটি কাজ করে। তবে এর একটি অসুবিধাও আছে। root-এর password সেট করা থাকলে GRUB recovery menu-এর root shell সেই password চায়। ফলে ভুলে যাওয়া password reset করার জন্য যে tool ব্যবহার করবেন, সেটিও একই password-এর আড়ালে চলে যায়।

root password সেট করলেই root-এর SSH-এর মাধ্যমে login করার অনুমতি হয় না। Ubuntu-তে PermitRootLogin prohibit-password থাকে, যার অর্থ শুধু key ব্যবহার করা যাবে। আপনার server বাস্তবে কী ব্যবহার করছে তা পরীক্ষা করুন:

sudo sshd -T | grep -i permitrootlogin

প্রতিটি Include line resolve করার পর sshd -T কার্যকর configuration দেখায়। তাই /etc/ssh/sshd_config.d/ drop-in file রাখলে এটিই একমাত্র নির্ভরযোগ্য উত্তর।

স্ক্রিপ্ট থেকে chpasswd দিয়ে একটি password সেট করুন

passwd terminal থেকে input পড়ে এবং script থেকে নিয়ন্ত্রণ করা যায় না। chpasswd standard input থেকে প্রতি লাইনে একটি করে user:password জোড়া পড়ে।

printf '%s:%s\n' 'deploy' "$NEW_PASSWORD" | sudo chpasswd

এটি কাজ করে, তবে আপনার shell history এবং CI (continuous integration) log-এ plaintext password লিখে রাখে। আগে hash করে নিন:

HASH=$(openssl passwd -6)
printf '%s:%s\n' 'deploy' "$HASH" | sudo chpasswd -e

openssl passwd -6 কোনো output না দেখিয়ে password দুবার চায়, তারপর $6$ দিয়ে শুরু হওয়া একটি SHA-512 crypt hash প্রিন্ট করে। -e, দ্বিতীয় field-টি ইতিমধ্যে hashed আছে—এ কথা chpasswd-কে জানায়। তাই এটি অপরিবর্তিত অবস্থায় /etc/shadow-এ কপি হয়। এই hash repository বা CI variable-এ রাখা নিরাপদ। আপনি যে machine-এ password লিখেছেন, plaintext সেখান থেকে কখনো বের হয় না।

passwd password সেট করলে Ubuntu 24.04 নতুন password-এ yescrypt ($y$) ব্যবহার করে। অন্যদিকে openssl passwd -6 SHA-512 ব্যবহার করে। libxcrypt উভয় format পড়তে পারে বলে login-এর সময় দুটিই যাচাই করা যায়। এগুলো মিশিয়ে ব্যবহার করা যায়। openssl passwd -6 সব Ubuntu LTS release-এ একইভাবে কাজ করে। chpasswd -c YESCRYPT-এর ক্ষেত্রে তা প্রযোজ্য নয়। 20.04-এর পুরোনো shadow package ওই method name চেনে না।

পাসওয়ার্ড সত্যিই পরিবর্তিত হয়েছে কি না কীভাবে যাচাই করবেন?

প্রথমে metadata দেখুন। তারপর login করে তা নিশ্চিত করুন।

sudo passwd -S deploy
deploy P 08/01/2026 0 99999 7 -1

দ্বিতীয় field-টি হলো state: ব্যবহারযোগ্য পাসওয়ার্ডের জন্য P, locked অবস্থার জন্য L, এবং কোনো পাসওয়ার্ড না থাকার জন্য NP। তারিখটি পাসওয়ার্ড সর্বশেষ পরিবর্তনের সময় নির্দেশ করে। তাই এখানে আজকের তারিখ দেখা উচিত। এর পরের সংখ্যাগুলো নিচে বর্ণিত aging field।

চলমান session-এ সবচেয়ে নিরাপদ পরীক্ষা হলো sudo নিজেই। sudo -k cached timestamp বাতিল করে এবং sudo -v নতুন করে prompt দেখায়। সেখানে নতুন পাসওয়ার্ড গ্রহণ করা হলে PAM সেটি গ্রহণ করেছে, এবং আপনার session-এর কোনো পরিবর্তন হয়নি।

sudo -k && sudo -v

অন্য account পরীক্ষা করতে unprivileged shell থেকে su - deploy চালান। sudo su - deploy চালাবেন না, কারণ root-এর কাছে কখনও পাসওয়ার্ড চাওয়া হয় না এবং এই পরীক্ষা কিছুই প্রমাণ করে না। ভুল পাসওয়ার্ড দিলে su: Authentication failure প্রদর্শিত হয়।

আসল পরীক্ষা হলো আপনার laptop থেকে নতুন SSH login করা, যখন কাজের session-টি এখনও খোলা আছে:

ssh -o PubkeyAuthentication=no deploy@203.0.113.10

এখানে Permission denied (publickey). বোঝায় যে server কখনও password authentication প্রস্তাব করেনি। তাই কোনো পাসওয়ার্ড পরিবর্তন করেই আপনি login করতে পারবেন না। Permission denied, please try again. বোঝায় যে server password authentication প্রস্তাব করেছে, কিন্তু আপনি যে পাসওয়ার্ড লিখেছেন তা প্রত্যাখ্যান করেছে।

পরবর্তী লগইনে chage ব্যবহার করে password পরিবর্তন বাধ্যতামূলক করুন

sudo chage -d 0 deploy

-d 0 সর্বশেষ password পরিবর্তনের তারিখ epoch-এ সেট করে। ফলে PAM password-টিকে মেয়াদোত্তীর্ণ হিসেবে বিবেচনা করে। পরবর্তী interactive login-এ shell দেওয়ার আগে বর্তমান password এবং তারপর নতুন password চাওয়া হয়। sudo passwd -e deploy ঠিক একই কাজ করে।

এটি শুধু সেই account-গুলোর জন্য ব্যবহার করুন, যেগুলো password দিয়ে interactive login করে। মেয়াদোত্তীর্ণ password key-based login-কেও প্রভাবিত করে, কারণ key authentication সম্পন্ন হলেও sshd PAM account stage চালায়। স্ক্রিপ্টে থাকা ssh deploy@203.0.113.10 'systemctl restart app' এই বার্তাসহ ব্যর্থ হয় এবং থেমে যায়:

Password change required but no TTY available.

ওই লাইনের পর আর কিছু চালানো হয় না। Job শুধু একটি non-zero exit code জানায়।

পাসওয়ার্ডের মেয়াদ ব্যবস্থাপনার ফিল্ডগুলোর অর্থ

sudo chage -l deploy
Last password change                                    : Aug 01, 2026
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

এই সংখ্যাগুলো হলো /etc/shadow-এ ওই ব্যবহারকারীর লাইনের 4 থেকে 8 নম্বর ফিল্ড। Minimum days (chage -m) হলো আবার পরিবর্তন করার আগে ব্যবহারকারীকে যত দিন অপেক্ষা করতে হবে। জোর করে পরিবর্তন করানোর পর কেউ যেন সঙ্গে সঙ্গে আগের পাসওয়ার্ডে ফিরে যেতে না পারে, এটি তা প্রতিরোধ করে। Maximum days (chage -M) হলো পাসওয়ার্ড কত দিন বৈধ থাকবে। Warning days (chage -W) নির্ধারণ করে, মেয়াদ শেষ হওয়ার কত দিন আগে login-এ সতর্কবার্তা দেখানো শুরু হবে। Inactive days (chage -I) হলো মেয়াদ শেষ হওয়ার পরের grace period; এই সময় শেষ হলে পাসওয়ার্ডটি আর কোনোভাবেই গ্রহণ করা হবে না। Account expiry (chage -E) একটি নির্দিষ্ট শেষ তারিখ। এটি পাসওয়ার্ডের মেয়াদ থেকে স্বাধীন।

sudo chage -M 90 -W 14 deploy

কোনো policy-তে প্রয়োজন থাকলেই এটি সেট করুন। NIST (US National Institute of Standards and Technology) 2017 সাল থেকে নিয়মিত password expiry ব্যবহারের বিরুদ্ধে পরামর্শ দিয়ে আসছে। কারণ এতে মানুষ একই পাসওয়ার্ডের অনুমানযোগ্য পরিবর্তন ব্যবহার করতে উৎসাহিত হয়। এর পরিবর্তে compromise-এর প্রমাণ পাওয়া গেলে পাসওয়ার্ড পরিবর্তন করানো উচিত। Password manager-এ সংরক্ষিত দীর্ঘ ও অনন্য পাসওয়ার্ডের সঙ্গে key based SSH ব্যবহার করা 90 দিনের password cycle-এর চেয়ে বেশি নিরাপদ।

root password হারিয়ে গেলে কী করবেন

সার্ভারের কোনো account যদি sudo চালাতে পারে, তাহলে কিছু recover করার দরকার নেই: sudo passwd root একটি নতুন password সেট করে। আসল কঠিন পরিস্থিতি হলো যখন কোনো কার্যকর login একেবারেই নেই।

নিচের সব ধাপের জন্য provider console দরকার। অধিকাংশ panel-এ এটি VNC (virtual network computing) বা serial console নামে থাকে। এটি network stack-এর নিচে virtual machine-এর সঙ্গে সংযুক্ত হয়। তাই sshd-এর settings এবং firewall rules এতে প্রভাব ফেলে না।

  1. panel থেকে server reboot করুন এবং console পর্যবেক্ষণ করুন।
  2. GRUB menu খুলুন। Cloud image-গুলোতে সাধারণত GRUB_TIMEOUT=0 সেট করা থাকে। তাই BIOS boot হলে reboot শুরু হওয়ার সঙ্গে সঙ্গে Shift চেপে ধরে রাখুন। UEFI boot হলে Esc বারবার চাপুন।
  3. Advanced options for Ubuntu নির্বাচন করুন। এরপর (recovery mode) দিয়ে শেষ হওয়া entry নির্বাচন করুন। তারপর recovery menu-তে root নির্বাচন করুন।
  4. প্রথমে mount -o remount,rw / চালান। Recovery root filesystem-কে read-only হিসেবে mount করে। তাই এটি না চালালে passwd ব্যর্থ হয় এবং passwd: Authentication token manipulation error দেখায়, কারণ এটি /etc/shadow-এ লিখতে পারে না।
  5. যে account-এর জন্য password পরিবর্তন করতে হবে, তার জন্য passwd ubuntu চালান। এরপর panel থেকে reboot করুন।

root account-এ আগে থেকেই password সেট করা থাকলে এবং হারিয়ে যাওয়া password-টি সেটিই হলে recovery shell সেটি চাইবে। সে ক্ষেত্রে এই পদ্ধতিতে এগোনো যাবে না। পরিবর্তে provider-এর rescue image boot করুন। তারপর প্রকৃত disk mount করে সেই disk-এর filesystem-এর ভেতরে password পরিবর্তন করুন।

lsblk
sudo mount /dev/vda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt passwd ubuntu
sudo umount -R /mnt

এই পৃষ্ঠা থেকে /dev/vda1 কপি না করে lsblk থেকে partition layout দেখুন। root partition-টি বড় partition। UEFI image-এ এর পাশে একটি ছোট EFI partition থাকে। সেখানে কোনো /etc directory থাকে না।

SSH আপনার password গ্রহণ করা বন্ধ করলে কী করবেন

আপনার যে session এখনও খোলা আছে, সেটি ব্যবহার করুন। কোনো session খোলা না থাকলে console ব্যবহার করুন।

Permission denied, please try again. এর অর্থ, সার্ভার password authentication-এর প্রস্তাব দিয়েছে, কিন্তু আপনি যে password পাঠিয়েছেন তা প্রত্যাখ্যান করেছে। সাধারণ কারণ হলো caps lock চালু থাকা অথবা console-এর keyboard layout, password সেট করার সময় ব্যবহৃত layout-এর সঙ্গে আলাদা হওয়া।

Permission denied (publickey). এর অর্থ, সার্ভার password authentication-এর প্রস্তাবই দেয়নি। কোথাও PasswordAuthentication no সেট করা আছে। Ubuntu 22.04 এবং পরবর্তী সংস্করণে এটি সাধারণত /etc/ssh/sshd_config.d/-এর অধীনে থাকা একটি drop-in file-এ থাকে, যা মূল file-এর configuration override করে। কার্যকর মানগুলো দেখুন:

sudo sshd -T | grep -Ei 'passwordauthentication|kbdinteractiveauthentication|permitrootlogin'

KbdInteractiveAuthentication yes-এর পাশাপাশি PasswordAuthentication no চালু থাকলেও password ব্যবহার করা যায়, কারণ keyboard-interactive method একই PAM stack চালায়। একটিকে বন্ধ রেখে অন্যটি চালু রাখলেই এমন সার্ভার তৈরি হয়, যা key-only মনে হলেও typed password গ্রহণ করে।

Disconnect message-এ Too many authentication failures দেখা গেলে এর অর্থ, password-এ পৌঁছানোর আগে আপনার client একাধিক key পাঠিয়েছে এবং সার্ভার MaxAuthTries সীমায় পৌঁছেছে; এর default মান 6। একটি মাত্র method জোর করে ব্যবহার করুন:

ssh -o IdentitiesOnly=yes -o PubkeyAuthentication=no deploy@203.0.113.10

এক মিনিট আগে কাজ করা কোনো port-এ Connection refused দেখা গেলে সাধারণত এর অর্থ, SSH monitor করা fail2ban একাধিক ব্যর্থ প্রচেষ্টার পরে আপনার address ban করেছে। এর default ban rule packet drop না করে তা reject করে। তাই timeout না হয়ে refusal দ্রুত ফিরে আসে। Console থেকে sudo fail2ban-client status sshd banned address-গুলোর তালিকা দেখায় এবং sudo fail2ban-client set sshd unbanip 203.0.113.10 আপনার address-এর ban সরিয়ে দেয়।

পাসওয়ার্ড একটি অস্থায়ী ধাপ, key হলো চূড়ান্ত ব্যবস্থা

SSH-এর মাধ্যমে কাজ করে এমন একটি password এমন একটি password, যা Internet-এর প্রতিটি scanner অনুমান করার চেষ্টা করতে পারে। key ভিত্তিক authentication ব্যবহার করুন, তাহলে এই অনুমানের ঝুঁকি আর গুরুত্বপূর্ণ থাকে না। একটি key pair তৈরি করুন, public অংশটি ইনস্টল করুন, এবং অন্য কিছু পরিবর্তন করার আগে দ্বিতীয় terminal থেকে key দিয়ে login করা যাচ্ছে কি না নিশ্চিত করুন। SSH key management-এর মৌলিক বিষয়-এ generation, authorized_keys এবং passphrase সম্পর্কে বলা হয়েছে।

এরপর password authentication বন্ধ করুন, এবং যে file সম্পাদনা করেছেন সেটির ওপর নির্ভর না করে sudo sshd -T দিয়ে সেটি নিশ্চিত করুন। VPS-এ SSH hardening-এ পরিবর্তন করা মূল্যবান sshd setting-গুলোর বাকি অংশ ব্যাখ্যা করা হয়েছে, এবং নতুন VPS-এ প্রথম দশ মিনিট-এ নতুন server-এ এগুলো কোন ক্রমে করা উচিত তা দেখানো হয়েছে।

এর পরেও একটি password সংরক্ষণ করে রাখুন। sshd config নষ্ট হয়ে গেলে key-only server-এ শুধু provider console-এর মাধ্যমে প্রবেশ করা যায়, আর সেই console-এ username ও password চাওয়া হয়। সংরক্ষণ করে রাখা একটি শক্তিশালী password-সহ account-ই পাঁচ মিনিটে সমাধান করা এবং server পুনরায় install করার মধ্যে পার্থক্য তৈরি করে।

FAQ

VPS-এ পুরোনো root password জানা না থাকলে কীভাবে root password পরিবর্তন করব?

sudo চালাতে পারে এমন user হিসেবে লগ ইন করুন এবং sudo passwd root চালান। এটি পুরোনো password না চেয়েই নতুন password সেট করে, কারণ sudo ইতিমধ্যে আপনাকে authenticate করেছে। সার্ভারে কোনো account sudo চালাতে না পারলে provider console খুলুন, GRUB recovery menu-তে reboot করুন, root shell entry নির্বাচন করুন, mount -o remount,rw / চালান, তারপর passwd চালান। root-এর আগে থেকেই password সেট করা থাকলে এবং সেটিই হারিয়ে গেলে recovery shell সেই password চাইবে। সে ক্ষেত্রে disk mount করে chroot করা provider-এর rescue image ব্যবহার করাই বাকি উপায়।

passwd কেন "Authentication token manipulation error" দেখায়?

এই বার্তার দুটি কারণ আছে। সাধারণ কারণ হলো Current password: prompt-এ ভুল উত্তর দেওয়া। এর নিচের passwd: password unchanged line নিশ্চিত করে যে কিছু লেখা হয়নি। অন্য কারণ হলো এমন filesystem, যেখানে লেখা যায় না। Recovery mode-এ সাধারণত এটাই ঘটে, কারণ সেখানে / read-only হিসেবে mounted থাকে। mount -o remount,rw / চালিয়ে আবার চেষ্টা করুন।

Linux password পরিবর্তন করলে কি sudo password-ও পরিবর্তন হয়?

হ্যাঁ। sudo-এর নিজস্ব কোনো password নেই। এটি PAM-এর মাধ্যমে একই /etc/shadow entry ব্যবহার করে আপনাকে authenticate করে, যেটি SSH এবং su-ও ব্যবহার করে। তাই প্রতিটি account-এর জন্য একটি password থাকে। এই কারণেই পরিবর্তনের পর প্রথম sudo prompt-ই প্রকৃত পরীক্ষা। কার্যকর session থাকা অবস্থায় সেই prompt জোর করে দেখাতে sudo -k && sudo -v চালান।

Password পরিবর্তন করলে কি SSH key বা বর্তমানে খোলা session নষ্ট হবে?

না। Public key authentication কখনো /etc/shadow পড়ে না। তাই password পরিবর্তনের পর, passwd -l-এর পর এবং chage -d 0-এর পরও key কাজ করবে। ইতিমধ্যে খোলা session চালু থাকবে, কারণ SSH শুধু login-এর সময় credentials পরীক্ষা করে। Live session-এর মধ্যে একমাত্র যে বিষয়টি পরিবর্তিত হয় তা হলো sudo। এর 15 minute timestamp শেষ হলে এটি একবার নতুন password চায়।

পরবর্তী login-এ কোনো user-কে password পরিবর্তন করতে বাধ্য করব কীভাবে?

sudo chage -d 0 deploy চালান, অথবা sudo passwd -e deploy চালান; দুটিই একই কাজ করে। সংরক্ষিত last-change date epoch-এ চলে যায়। PAM তখন password-টিকে expired হিসেবে গণ্য করে। পরবর্তী interactive login-এ shell চালু হওয়ার আগে নতুন password সেট করতে হয়। SSH-এর মাধ্যমে script চালানো account-এর ক্ষেত্রে এটি করবেন না। তখন non-interactive command Password change required but no TTY available.-সহ ব্যর্থ হয় এবং কখনো চলে না।

#vps#ubuntu#passwords#ssh#server-security