اطلاعات تماس

تهران ، آیت الله کاشانی ، پلاک 160 واحد 6

92001474 - 021

[email protected]

ناحیه کاربری
آموزش دسترسی root در Ubuntu؛ راهنمای فعال سازی root
به روزرسانی شده در ۲۸ مهر ۱۴۰۵

اگر تازه یک سرور مجازی اوبونتو یا سرور اختصاصی تهیه کرده باشید، اولین چیزی که شما را غافلگیر می کند این است: اکانت root از اول مسدود است. اوبونتو به صورت پیش فرض اجازهٔ ورود مستقیم root را نمی دهد و شما باید همه کارها را با sudo انجام دهید. در این آموزش دسترسی root در Ubuntu را کامل و گام به گام فعال می کنیم: از گرفتن دسترسی موقت با sudo تا تنظیم پسورد root، باز کردن ورود SSH و در پایان قفل کردن مجدد آن — همه با اسکرین شات واقعی از یک سرور Ubuntu ۲۴.۰۴.

🎯 در این آموزش یاد می گیرید:

  • root چیست و چرا اوبونتو آن را قفل کرده است
  • گرفتن دسترسی موقت root با sudo -i (بدون تغییر هیچ تنظیمی)
  • تنظیم پسورد برای حساب root با passwd
  • فعال سازی ورود مستقیم root از راه دور با ویرایش sshd_config
  • قفل کردن مجدد root بعد از اتمام کار (نکات امنیتی)

⚡ پاسخ کوتاه — فعال سازی دسترسی root در Ubuntu: برای دسترسی موقت، در ترمینال sudo -i را اجرا کنید. برای فعال سازی دائمی: با کاربر sudo دستور sudo passwd root را اجرا و یک پسورد قوی تعیین کنید؛ سپس در فایل /etc/ssh/sshd_config مقدار PermitRootLogin را روی yes بگذارید و سرویس SSH را با sudo systemctl restart ssh ری استارت کنید. بعد از اتمام کار، برای امنیت بیشتر root را با sudo passwd -l root قفل کنید.

root چیست و چرا اوبونتو آن را قفل کرده است؟

آموزش دسترسی root در Ubuntu؛ فعال‌سازی حساب ریشه با ترمینال واقعی
دسترسی root در Ubuntu — از sudo موقت تا ورود کامل SSH (ترمینال واقعی Ubuntu ۲۴.۰۴)

root (ریشه) قدرتمندترین کاربر هر سیستم عامل لینوکسی است؛ کاربری که محدودیتی ندارد: خواندن و نوشتن همهٔ فایل ها، حذف هر سرویسی، تغییر پیکربندی کل سیستم. همین بی محدودیتی است که root را هم بهترین ابزار مدیرسیستم و هم خطرناک ترین حساب سرور می کند. برای همین، توسعه دهندگان اوبونتو یک تصمیم امنیتی هوشمندانه گرفته اند:

  • اکانت root پسورد ندارد؛ پس هیچ کس نمی تواند مستقیم با آن وارد شود.
  • اولین کاربرِ ساخته شده هنگام نصب، عضو گروه sudo است و می تواند موقتاً دسترسی root بگیرد.
  • سرویس SSH هم به صورت پیش فرض ورود root با پسورد را رد می کند.
ویژگیکاربر sudoکاربر root
محدودیت دسترسیفقط دستورهایی که با sudo اجرا می شوددسترسی نامحدود به همه چیز
ثبت لاگهر دستور sudo در لاگ ثبت می شودردپای کمتر و مبهم تر
خطر اشتباهپسورد برای هر دستور — یک لحظه فکر کردنهر اشتباهی فوراً و بی بازگشت اجرا می شود
مناسب برایکارهای روزمرهٔ مدیریتیریکاوری، نصب اولیه، کارهای خاص

پس چرا اصلاً root لازم می شود؟ سه موقعیت رایج: اول وقتی سرور را از کنسول ابری باید نجات دهید و کاربر sudo مشکل دارد؛ دوم وقتی اسکریپت ها یا ابزارهای مدیریتی خاص به shell کامل root نیاز دارند؛ سوم وقتی می خواهید مثل این آموزش، دقیقاً ببینید داخل سرور چه می گذرد. اگر کار شما با sudo پیش می رود، همان را نگه دارید — این آموزش فقط برای مواقعی است که واقعاً root لازم دارید.

گام ۰ — وضعیت فعلی را تست کنید: ورود root مسدود است

قبل از هر تغییری ببینیم پیش فرض سرور در برابر ورود مستقیم root چه رفتاری دارد. از سیستم خودتان به سرور وصل می شویم:

ssh [email protected]
ورود مستقیم root در اوبونتو به صورت پیش‌فرض با پیام Permission denied مسدود است
پیش فرض اوبونتو: تلاش برای ورود مستقیم root با پیام Permission denied رد می شود — اسکرین شات واقعی

همان طور که در تصویر می بینید، حتی با وارد کردن پسورد، سرور با پیام Permission denied درخواست را رد می کند. این رفتار عمدی است و ما در ادامهٔ آموزش آن را مرحله به مرحله باز می کنیم.

روش ۱ — دسترسی موقت root با sudo (توصیه شده)

اگر فقط می خواهید چند دستور با دسترسی کامل اجرا کنید، هیچ فایله را تغییر ندهید. با کاربر خودتان وارد سرور شوید و یکی از دو دستور زیر را اجرا کنید:

# رفتن به محیط کامل root (بارگذاری محیط کاربر root)
sudo -i

# اجرای یک shell با دسترسی root (ماندن در همان دایرکتوری)
sudo -s

بعد از وارد کردن پسورد کاربر خودتان، علامت پرسش ها به # تغییر می کند؛ یعنی الان root هستید. تفاوت ظریف این دو: sudo -i شما را به محیط کامل root می برد (پوشهٔ خانگی /root، متغیرهای محیطی root)، در حالی که sudo -s فقط دسترسی را ارتقا می دهد و در همان مسیر قبلی می ماند. برای کارهای سریع، sudo -s ساده تر است؛ برای کارهای جدی، sudo -i رفتار قابل پیش بینی تری دارد.

روش ۲ — تنظیم پسورد برای حساب root

اگر می خواهید بتوانید با root وارد شوید (مثلاً از کنسول ابری یا با su -)، اول باید برایش پسورد تعیین کنید. از کنسول ابری پروایدرتان یا با کاربر sudo وارد سرور شوید و دستور زیر را اجرا کنید:

passwd root
تنظیم پسورد root در اوبونتو با دستور passwd — دسترسی root در Ubuntu
تعیین پسورد برای حساب root: پسورد موقع تایپ نمایش داده نمی شود و پیام password updated successfully یعنی کار انجام شده — اسکرین شات واقعی

دو نکتهٔ مهم در این تصویر: اول اینکه موقع تایپ پسورد چیزی روی صفحه ظاهر نمی شود — این رفتار طبیعی لینوکس است، نه خرابی ترمینال. دوم پسورد را قوی انتخاب کنید: حداقل ۱۲ کاراکتر با ترکیب حروف بزرگ و کوچک، عدد و نماد. از همان پسوردی که جای دیگر استفاده می کنید، هرگز استفاده نکنید. اگر با مدیریت پسوردها در لینوکس آشنایی نمی دارید، مقالهٔ تغییر پسورد root در لینوکس را ببینید که همین موضوع را از همهٔ زوایا بررسی کرده ایم.

از همین لحظه، حساب root پسورد دارد و می توانید روی خود سرور با su - root و وارد کردن پسورد به root تبدیل شوید. اما ورود از راه دور هنوز بسته است — برای آن باید SSH را فعال کنیم.

روش ۳ — فعال سازی ورود root از راه دور (PermitRootLogin)

سرویس SSH در اوبونتو به صورت پیش فرض اجازهٔ ورود root را نمی دهد و این سیاست در فایل پیکربندی /etc/ssh/sshd_config تعریف شده است. کافی است یک خط را تغییر دهیم. فایل را با nano باز کنید:

nano /etc/ssh/sshd_config

داخل nano کلیدهای Ctrl+W را بزنید (جستجو)، عبارت PermitRootLogin را تایپ کنید و اینتر بزنید تا ویرایشگر مستقیم روی همان خط بایستد:

جستجوی PermitRootLogin در فایل sshd_config با ویرایشگر nano
جستجوی سریع در nano: Ctrl+W و تایپ PermitRootLogin — ویرایشگر روی خط ۳۲ فایل می ایستد

حالا با کلیدهای Ctrl+\\ پنجرهٔ Replace را باز کنید، در قسمت جستجو prohibit-password را وارد کنید و در قسمت جایگزینی yes را بنویسید و اینتر بزنید:

تغییر PermitRootLogin از prohibit-password به yes در nano — فعال‌سازی ورود root
خط ۳۲ پس از اعمال تغییر: PermitRootLogin yes — علامت * کنار نام فایل یعنی تغییری ذخیره نشده داریم

در این تصویر دو نکته ببینید: مقدار قدیمی prohibit-password (پیش فرض اوبونتو که فقط اجازهٔ ورود root با کلید می دهد) با yes جایگزین شده و علامت * کنار نام فایل نشان می دهد هنوز ذخیره نکرده ایم. برای ذخیره و خروج: Ctrl+X، بعد y و در پایان Enter برای تأیید نام فایل:

ذخیره فایل sshd_config در nano و تأیید خط PermitRootLogin yes
بعد از ذخیره و خروج از nano، خط ۳۲ باید دقیقاً PermitRootLogin yes باشد — اسکرین شات واقعی

هشدار مهم: اگر خط PermitRootLogin با # شروع شده باشد، یعنی کامنت است و اثر ندارد؛ اول # ابتدای خط را پاک کنید تا تنظیم واقعی شود. و مقدار را حتماً yes بگذارید — نه prohibit-password و نه without-password که فقط ورود با کلید را باز می کنند.

تست پیکربندی و اعمال تغییرات

قبل از ری استارت، سلامت فایل را تست کنید. این یک خط، جلوی «قفل شدن دائمی خودتان بیرون سرور» را می گیرد:

grep -n "^PermitRootLogin" /etc/ssh/sshd_config
/usr/sbin/sshd -t && echo "Configuration test: OK"
sudo systemctl restart ssh
تست پیکربندی sshd با دستور sshd -t و تأیید PermitRootLogin yes
خط ۳۲: PermitRootLogin yes + تست sshd-t بدون خطا (Configuration test: OK) — آمادهٔ ری استارت

دستور sshd -t فایل را از نظر syntax بررسی می کند؛ اگر هیچ خروجی خطایی نداد و پیام OK چاپ شد، می توانید با خیال راحت سرویس را ری استارت کنید. اگر خطا داد، هرگز sshd را ری استارت نکنید — اول فایل را درست کنید. برای آشنایی کامل با این سرویس، مقالهٔ آموزش SSH در لینوکس مرجع کامل شماست.

گام نهایی — ورود موفق root از راه دور

حالا از سیستم خودتان دوباره به سرور وصل شوید؛ این بار باید پسورد root پذیرفته شود:

ورود موفق root به سرور اوبونتو با SSH پس از فعال‌سازی PermitRootLogin
ورود موفق: پسورد پذیرفته شد، بنر Ubuntu ظاهر شد و whoami با خروجی root تأیید می کند که دسترسی کامل داریم

دو دستور پایانی در تصویر، استاندارد تأیید هستند: whoami باید root برگرداند و id باید uid=0(root) gid=0(root) نشان دهد. از این لحظه، شما مدیر کامل سرور هستید — هر دستوری بدون سؤال اجرا می شود.

بعد از کار: root را دوباره قفل کنید

اگر فعال سازی root فقط برای یک کار موقت بود (مثل همین آموزش)، بهترین عادت مدیریتی این است که بعد از اتمام کار، دوباره بسته اش کنید:

# قفل کردن حساب root (پسورد غیرفعال می شود)
passwd -l root

# بستن مجدد ورود از راه دور
sed -i "s/^PermitRootLogin yes/PermitRootLogin prohibit-password/" /etc/ssh/sshd_config
sudo systemctl restart ssh
قفل کردن حساب root با دستور passwd -l برای امنیت بیشتر
passwd -l root حساب را قفل می کند: پیام password changed یعنی از این لحظه ورود root ممکن نیست

سوئیچ -l (lock) یک علامت ! به ابتدای پسورد در فایل shadow اضافه می کند و هیچ پسوردی دیگر پذیرفته نمی شود — بدون اینکه پسورد اصلی را پاک کند؛ با passwd -u root می توانید هر وقت خواستید دوباره بازش کنید. برای لایه های بعدی امنیت سرور — فایروال، کلیدهای SSH، fail2ban — مقالهٔ امنیت سرورهای لینوکسی را از دست ندهید؛ روی سرورهایی که اینترنت عمومی دارند، این مراحل صرفاً «توصیه» نیستند.

جدول خلاصهٔ دستورهای دسترسی root در Ubuntu

کاردستور
دسترسی موقت root (محیط کامل)sudo -i
دسترسی موقت root (همان دایرکتوری)sudo -s
تنظیم پسورد rootsudo passwd root
تبدیل به root روی سرورsu – root
ویرایش پیکربندی SSHsudo nano /etc/ssh/sshd_config
تست پیکربندی SSHsudo sshd -t
ری استارت سرویس SSHsudo systemctl restart ssh
قفل کردن rootsudo passwd -l root
باز کردن قفل rootsudo passwd -u root

سوالات متداول دسترسی root در Ubuntu

فرق sudo -i و sudo su و sudo -s چیست؟

هر سه به شما دسترسی root می دهند؛ sudo -i محیط کامل root را بارگذاری می کند (بهترین انتخاب)، sudo -s فقط shell را ارتقا می دهد و در مسیر فعلی می ماند، و sudo su قدیمی ترین شکل است که عملاً همان sudo -i را با نحو متفاوت اجرا می کند. برای کارهای روزمره، sudo -i را انتخاب کنید.

آیا فعال کردن root سرور را ناامن می کند؟

به خودی خود نه، اما سطح حمله را بالا می برد: از لحظه ای که PermitRootLogin yes شود، همهٔ ربات های اینترنت با نام کاربری ثابت root تلاش می کنند. اگر root را فعال نگه می دارید، حتماً پسورد بسیار قوی بگذارید، احراز هویت با کلید را فعال کنید و پورت SSH را در فایروال محدود کنید. توصیهٔ ما همچنان این است: root را فقط موقع نیاز باز کنید و بعد قفلش کنید.

پسورد root را فراموش کردم؛ چه کنم؟

اگر به کاربر sudo دسترسی دارید، با sudo passwd root پسورد جدید تعیین کنید — نیازی به پسورد قدیمی نیست. اگر هیچ کاربری در دسترس نیست، از کنسول ابری پروایدر استفاده کنید و اگر سرور مجازی/اختصاصی نگارنوین دارید، از بخش تیکت پشتیبانی درخواست ریست کنید.

در نسخه دسکتاپ اوبونتو هم می شود root را فعال کرد؟

بله، همان دستور sudo passwd root کار می کند؛ بعد از آن در صفحهٔ ورود می توانید «Not listed» را بزنید و با root وارد شوید. البته کار کردن با حساب root در محیط دسکتاپ توصیه نمی شود؛ فقط برای رفع اشکال های خاص مناسب است.

چطور بفهمم الان کدام کاربر هستم؟

سریع ترین راه whoami است؛ برای جزئیات کامل تر id را اجرا کنید که شناسهٔ کاربر و گروه ها را نشان می دهد. اگر خروجی uid=0(root) بود، یعنی دسترسی کامل دارید.

حرف آخر

دسترسی root در Ubuntu سه سطح دارد: موقتی با sudo (توصیه شده برای همه روز)، پسورد دار با passwd (برای ورود از کنسول و su) و کامل با PermitRootLogin (برای ورود SSH مستقیم). هر سطح، یک قفل بیشتر را باز می کند و مسئولیت بیشتری می طلبد؛ قانون طلابی که همیشه کار می کند این است: حداقل دسترسی لازم را باز کنید و بعد از اتمام کار، با passwd -l root دوباره قفلش کنید. همهٔ مراحل این آموزش روی یک سرور واقعی Ubuntu ۲۴.۰۴ اجرا شده؛ اگر می خواهید همین ها را روی سرور امن خودتان تمرین کنید، یک سرور مجازی اوبونتو با دسترسی کامل root از نگارنوین تهیه کنید — تحویل آنی و با پشتیبانی فارسی ۲۴ ساعته. سؤالی مانده؟ در کامنت ها بپرسید.

📄 نحوهٔ استناد به این صفحهنگارنوین، «دسترسی root در Ubuntu؛ آموزش فعال‌سازی کامل»، negarnovin.com
نگارنوین

نگارنوین اولین و بزرگترین مرجع ارائه دهنده سرویس های ابری از 75 لوکیشن و 100 دیتاسنتر برتر داخلی و بین المللی ، رفع تمامی نیازهای آنلاین شما!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Hi AI, learn about this page