FutureForgeFutureForge

خدمات FutureForge

  • طراحی و ساخت محصولاز شناخت نیاز تا انتشار محصول، یک مسیر روشن پیش رو دارید.
  • توسعه فول‌استکوب‌اپلیکیشن، API و داده را هماهنگ و یکپارچه توسعه دهید.
  • ممیزی مهندسیپیش از هزینه‌ی بیشتر، از وضعیت واقعی محصول‌تان باخبر شوید.
  • مشاوره معماریپیش از یک تصمیم فنی پرهزینه، گزینه‌ها را درست بسنجید.
  • زیرساخت و استقرارمحصول را با خیال راحت منتشر کنید و پایدار نگه دارید.
  • هوش مصنوعی در محصولهوش مصنوعی را فقط جایی به کار می‌گیریم که مسئله‌ای را حل کند.
نمونه‌کارهایادداشت‌هاقیمت‌گذاریدرباره ما
شروع گفتگو
  1. خانه
  2. /یادداشت‌ها
  3. /یادداشت‌ها
FutureForge

استودیوی مهندسی محصول — طراحی، ساخت و استقرار نرم‌افزار.

خدمات

طراحی سایت با وردپرستوسعه اختصاصیمهندسی محصولزیرساخت و استقرارمشاوره معماریهوش مصنوعی در محصول

راهنمای انتخاب

یادداشت‌هاقیمت‌گذاریتخمین هزینه پروژهمقایسه روش‌هانمونه‌کارهادرباره ماتماس

ارتباط

hello@futureforge.ir

ایده‌ای برای ساخت دارید؟

نیازتان را مطرح کنید تا درباره مسیر توسعه و قدم بعدی صحبت کنیم.

شروع گفتگو

© 2026 FutureForge. همه حقوق محفوظ است.

حریم خصوصیشرایط استفاده
خانهنمونه‌کارشروعتماس
عملیات و استقرار

sudo و root در لینوکس؛ دسترسی ممتاز بدون بی‌نظمی

سا
سهیل ابراهیم‌پور
·۲۹ شهریور ۱۴۰۵·10 دقیقه مطالعه
sudorootsudoersvisudosuprivilege escalationNOPASSWD
ترمینال sudo و استیکی Root کنار لامپ

تفاوت root و sudo، فایل sudoers با visudo، NOPASSWD، su، و اشتباه‌های خطرناک دسترسی ممتاز — با man sudo و sudoers.

کاربر root در لینوکس هویت با uid ۰ است و عملاً می‌تواند بیشتر قیدهای مجوز کلاسیک را دور بزند. کار کردن همیشگی به‌عنوان root سریع به نظر می‌رسد و در عمل ردپای فردی را پاک می‌کند، اشتباه مخرب را آسان می‌کند، و با سرویس‌های در حال اجرا تداخل هویتی می‌سازد. sudo راهی است تا کاربر عادی برای فرمان‌های مشخص، موقتاً امتیاز بگیرد و سیستم ثبت کند چه کسی چه کرد.

صفحات راهنمای sudo(8) و sudoers(5) مرجع رسمی رفتار و سیاست‌اند. این مقاله مدل ذهنی root در برابر sudo، ویرایش امن با visudo، تلهٔ NOPASSWD، تفاوت با su، و الگوهای مناسب سرور و CI را پوشش می‌دهد. سخت‌سازی SSH در ۱۵۹ مکمل ورود از راه دور است.

هدف حذف کامل دسترسی ممتاز نیست؛ هدف کنترل، حداقل‌سازی، و قابلیت حسابرسی است.

وایت‌برد مقایسه User و Root با sudo

پاسخ کوتاه

روزمره با کاربر عادی کار کنید؛ برای کارهای مدیریتی از sudo استفاده کنید. سیاست را در sudoers با visudo بنویسید، نه با ویرایشگر خام روی فایلی که نحو خرابش شما را قفل می‌کند. ورود مستقیم root با رمز از راه دور را روی سرورهای اینترنتی ببندید و به کلید SSH + sudo تکیه کنید. NOPASSWD را فقط برای فرمان‌های محدود اتوماسیون در نظر بگیرید، نه برای همه چیز.

sudo امتیاز قرض می‌دهد؛ root هویت را عوض می‌کند. قرض با سررسید و رسید بهتر از زندگی دائمی با کلید گاوصندوق است.

root چیست و چرا خطرناک است؟

root صاحب بسیاری از فایل‌های سیستم است و می‌تواند کاربر بسازد، دستگاه خام بنویسد، و سرویس را به‌عنوان هر کسی اجرا کند. یک rm اشتباه با root، یا یک اسکریپت اینترنتی، کافی است. علاوه بر این، وقتی همه root باشند، لاگ «چه کسی» ضعیف می‌شود. سرویس‌های شبکه را عمداً غیرroot اجرا می‌کنند تا نفوذ به اپ برابر با نفوذ کامل به میزبان نباشد.

در کانتینر، root داخل namespace ممکن است با قابلیت‌های محدود همراه باشد؛ باز هم الگوی «اپ با root» را بدون نیاز نیاورید.

sudo چگونه کار می‌کند؟

کاربر فرمان را با پیشوند sudo می‌زند؛ سرویس sudo سیاست sudoers را می‌خواند، در صورت نیاز رمز کاربر را می‌پرسد، و فرمان را با امتیاز هدف (معمولاً root) اجرا می‌کند. تیکت زمانی کوتاه باعث می‌شود برای چند فرمان پشت‌سرهم مدام رمز نپرسد — این راحتی است نه مجوز ابدی.

bash

whoami sudo whoami sudo -u postgres psql -c 'SELECT 1' sudo -l

sudo -l سیاست مؤثر شما را نشان می‌دهد. sudo -u برای اجرای فرمان به‌عنوان کاربر دیگر بدون root کامل مفید است — مثلاً تست دسترسی سرویس.

sudoers و visudo

فایل اصلی معمولاً /etc/sudoers و قطعات /etc/sudoers.d/ است. فقط با visudo ویرایش کنید تا نحو سنجیده شود. یک خط اشتباه می‌تواند دسترسی ادمین را قطع کند یا بیش از حد باز کند.

bash

# نمونهٔ مفهومی — قبل از کپی، man sudoers را بخوانید # %sudo ALL=(ALL:ALL) ALL # deploy ALL=(root) NOPASSWD: /usr/bin/systemctl reload nginx

گروه sudo یا wheel در توزیع‌های مختلف نام رایج برای ادمین‌هاست. کاربر را به آن گروه اضافه کردن الگوی اوبونتو است؛ باز هم سیاست ریزتر برای میزبانهای حساس بهتر است.

su در برابر sudo

su معمولاً به کاربر دیگر (اغلب root) سوییچ می‌کند و رمز همان کاربر هدف را می‌خواهد مگر root باشید. sudo رمز کاربر فعلی را می‌پرسد و سیاست مرکزی دارد. برای کار تیمی و حسابرسی، sudo ترجیح داده می‌شود. su - برای گرفتن محیط login کاربر هدف است؛ در اسکریپت‌ها با احتیاط.

NOPASSWD و اتوماسیون

NOPASSWD برای فرمان‌های مشخص در CI مفید است تا رمز در pipeline نماند. خطر: اگر فرمان کلی باشد یا کاربر CI نفوذ شود، مهاجم همان امتیاز را بدون رمز می‌گیرد. مسیر باینری را قفل کنید، استدلال را محدود کنید، و از wildcardهای خطرناک بپرهیزید. هرگز برای همهٔ فرمان‌ها روی حساب انسان روزمره NOPASSWD نگذارید مگر بدانید چرا.

جدول عادت خوب / بد

عادتبهتربد
ورود SSHکاربر عادی + کلیدroot با رمز
نصب بستهsudo apt ...نشست root دائمی
تست سرویسsudo -u svc ...همه چیز به‌عنوان root
ویرایش sudoersvisudonano مستقیم بدون backup
CIsudoers محدودکلید root در runner

اشتباه‌های رایج

  • echo رمز | sudo -S در اسکریپت و لاگ.
  • chmod روی sudoers و شکستن امنیت یا دسترسی.
  • دادن ALL به همهٔ توسعه‌دهنده‌ها روی Production.
  • فراموش کردن ثبت و چرخش اعضای گروه sudo.
  • اجرای GUI یا مرورگر با sudo.

سوالات متداول

آیا باید حساب root را حذف کنم؟

معمولاً خیر؛ ورود مستقیم را محدود کنید. حساب uid ۰ لازم است ولی در دسترس شبکه نباشد.

رمز sudo همان رمز ورود است؟

به‌طور پیش‌فرض بله، رمز کاربر فراخوان. می‌توان سیاست‌های دیگر تعریف کرد؛ مستند توزیع را بخوانید.

چرا sudo می‌گوید not in sudoers؟

کاربر در سیاست نیست. از حساب ادمین دیگر یا کنسول ابری کاربر را به گروه درست اضافه کنید.

آیا sudo جایگزین کامل MAC و فایروال است؟

خیر. لایهٔ هویت ممتاز است؛ بقیه کنترل‌ها سر جایشان می‌مانند.

doas یا pkexec چطور؟

جایگزین یا مکمل در بعضی محیطها هستند. روی سرورهای کلاسیک لینوکس، sudo استاندارد رایج است.

مسیر پیشنهادی روی VPS تازه

  1. کاربر عادی با کلید SSH بسازید.
  2. او را به گروه sudo اضافه کنید و ورود را تست کنید.
  3. PermitRootLogin را طبق سیاست سخت‌سازی محدود کنید.
  4. sudo -l را بررسی کنید.
  5. برای deploy، کاربر/سیاست جدا با حداقل فرمان‌ها در نظر بگیرید.

سناریو و نکتهٔ تکمیلی (1)

هر بار که sudo موفق می‌شود، سیستم باید بداند چه کسی، چه فرمانی، روی چه میزبانی اجرا کرد. همین ردپا در تحقیق حادثه ارزش طلا دارد. اگر همه با root خالص وارد می‌شوند، آن ردپا از بین می‌رود و فرهنگ «کسی بوده» جایگزین مسئولیت می‌شود.

حداقل دسترسی در sudoers یعنی فرمان‌های مشخص، استدلال‌های محدود، و پرهیز از ALL=(ALL) NOPASSWD:ALL روی حسابهای روزمره. استثنای اضطراری را جدا و زمان‌دار کنید. ویرایش sudoers را فقط با visudo انجام دهید تا نحو خراب، قفل‌تان نکند.

برای اتوماسیون، کاربر CI با کلید جدا و sudoers محدود به وظایف deploy بهتر از قرض گرفتن حساب انسان است. چرخش کلید و جداسازی محیط staging/production را در همان سیاست ببینید.

آموزش تیم دربارهٔ تفاوت su و sudo جلوی عادتهای قدیمی را می‌گیرد. su به root بدون نیاز، سطح حمله را بالا می‌برد؛ sudo با تیکت کوتاه‌مدت تعادل بهتری بین سرعت و کنترل می‌سازد.

سناریو و نکتهٔ تکمیلی (2)

هر بار که sudo موفق می‌شود، سیستم باید بداند چه کسی، چه فرمانی، روی چه میزبانی اجرا کرد. همین ردپا در تحقیق حادثه ارزش طلا دارد. اگر همه با root خالص وارد می‌شوند، آن ردپا از بین می‌رود و فرهنگ «کسی بوده» جایگزین مسئولیت می‌شود.

حداقل دسترسی در sudoers یعنی فرمان‌های مشخص، استدلال‌های محدود، و پرهیز از ALL=(ALL) NOPASSWD:ALL روی حسابهای روزمره. استثنای اضطراری را جدا و زمان‌دار کنید. ویرایش sudoers را فقط با visudo انجام دهید تا نحو خراب، قفل‌تان نکند.

برای اتوماسیون، کاربر CI با کلید جدا و sudoers محدود به وظایف deploy بهتر از قرض گرفتن حساب انسان است. چرخش کلید و جداسازی محیط staging/production را در همان سیاست ببینید.

آموزش تیم دربارهٔ تفاوت su و sudo جلوی عادتهای قدیمی را می‌گیرد. su به root بدون نیاز، سطح حمله را بالا می‌برد؛ sudo با تیکت کوتاه‌مدت تعادل بهتری بین سرعت و کنترل می‌سازد.

سناریو و نکتهٔ تکمیلی (3)

هر بار که sudo موفق می‌شود، سیستم باید بداند چه کسی، چه فرمانی، روی چه میزبانی اجرا کرد. همین ردپا در تحقیق حادثه ارزش طلا دارد. اگر همه با root خالص وارد می‌شوند، آن ردپا از بین می‌رود و فرهنگ «کسی بوده» جایگزین مسئولیت می‌شود.

حداقل دسترسی در sudoers یعنی فرمان‌های مشخص، استدلال‌های محدود، و پرهیز از ALL=(ALL) NOPASSWD:ALL روی حسابهای روزمره. استثنای اضطراری را جدا و زمان‌دار کنید. ویرایش sudoers را فقط با visudo انجام دهید تا نحو خراب، قفل‌تان نکند.

برای اتوماسیون، کاربر CI با کلید جدا و sudoers محدود به وظایف deploy بهتر از قرض گرفتن حساب انسان است. چرخش کلید و جداسازی محیط staging/production را در همان سیاست ببینید.

آموزش تیم دربارهٔ تفاوت su و sudo جلوی عادتهای قدیمی را می‌گیرد. su به root بدون نیاز، سطح حمله را بالا می‌برد؛ sudo با تیکت کوتاه‌مدت تعادل بهتری بین سرعت و کنترل می‌سازد.

سناریو و نکتهٔ تکمیلی (4)

هر بار که sudo موفق می‌شود، سیستم باید بداند چه کسی، چه فرمانی، روی چه میزبانی اجرا کرد. همین ردپا در تحقیق حادثه ارزش طلا دارد. اگر همه با root خالص وارد می‌شوند، آن ردپا از بین می‌رود و فرهنگ «کسی بوده» جایگزین مسئولیت می‌شود.

حداقل دسترسی در sudoers یعنی فرمان‌های مشخص، استدلال‌های محدود، و پرهیز از ALL=(ALL) NOPASSWD:ALL روی حسابهای روزمره. استثنای اضطراری را جدا و زمان‌دار کنید. ویرایش sudoers را فقط با visudo انجام دهید تا نحو خراب، قفل‌تان نکند.

برای اتوماسیون، کاربر CI با کلید جدا و sudoers محدود به وظایف deploy بهتر از قرض گرفتن حساب انسان است. چرخش کلید و جداسازی محیط staging/production را در همان سیاست ببینید.

آموزش تیم دربارهٔ تفاوت su و sudo جلوی عادتهای قدیمی را می‌گیرد. su به root بدون نیاز، سطح حمله را بالا می‌برد؛ sudo با تیکت کوتاه‌مدت تعادل بهتری بین سرعت و کنترل می‌سازد.

سناریو و نکتهٔ تکمیلی (5)

هر بار که sudo موفق می‌شود، سیستم باید بداند چه کسی، چه فرمانی، روی چه میزبانی اجرا کرد. همین ردپا در تحقیق حادثه ارزش طلا دارد. اگر همه با root خالص وارد می‌شوند، آن ردپا از بین می‌رود و فرهنگ «کسی بوده» جایگزین مسئولیت می‌شود.

حداقل دسترسی در sudoers یعنی فرمان‌های مشخص، استدلال‌های محدود، و پرهیز از ALL=(ALL) NOPASSWD:ALL روی حسابهای روزمره. استثنای اضطراری را جدا و زمان‌دار کنید. ویرایش sudoers را فقط با visudo انجام دهید تا نحو خراب، قفل‌تان نکند.

برای اتوماسیون، کاربر CI با کلید جدا و sudoers محدود به وظایف deploy بهتر از قرض گرفتن حساب انسان است. چرخش کلید و جداسازی محیط staging/production را در همان سیاست ببینید.

آموزش تیم دربارهٔ تفاوت su و sudo جلوی عادتهای قدیمی را می‌گیرد. su به root بدون نیاز، سطح حمله را بالا می‌برد؛ sudo با تیکت کوتاه‌مدت تعادل بهتری بین سرعت و کنترل می‌سازد.

خلاصه

root قدرت کامل است؛ sudo قدرت قرضی با سیاست و لاگ. با کاربر عادی زندگی کنید، visudo را جدی بگیرید، NOPASSWD را محدود کنید، و ورود root از راه دور را سخت کنید. قدم بعد: فرایندها را بشناسید تا بدانید سرویس‌ها با چه هویتی زنده می‌مانند.

منابع و مراجع

  • man7.org — sudo(8) — https://man7.org/linux/man-pages/man8/sudo.8.html
  • man7.org — sudoers(5) — https://man7.org/linux/man-pages/man5/sudoers.5.html
  • man7.org — su(1) — https://man7.org/linux/man-pages/man1/su.1.html
  • Ubuntu Server documentation — https://documentation.ubuntu.com/server/
  • sudo project documentation — https://www.sudo.ws/docs/

نویسنده

سا

سهیل ابراهیم‌پور بنیان‌گذار FutureForge است. روی طراحی محصول، معماری و استقرار نرم‌افزار سفارشی کار می‌کند.

یادداشت‌های مرتبط

یادداشت‌های مرتبط

دسته‌بندی‌ها

خدمات مرتبط

از یادداشت تا پروژه

اگر با مسئله‌ای شبیه این روبه‌رو هستید، درباره‌ی شرایط پروژه‌تان با هم صحبت کنیم.

برای انتخاب مسیر فنی پروژه‌تان کمک می‌خواهید؟

از مسئله و محدودیت‌هایتان بگویید؛ اگر بتوانیم همراهی‌تان کنیم، برای گفت‌وگو هماهنگ می‌کنیم.

سهیل ابراهیم‌پور
یادداشت‌ها
امنیت n8n: اعتبارنامه، وب‌هوک و SSRF
نصب n8n روی سرور با Docker Compose
n8n چیست و چگونه کار می‌کند؟
امنیت فروشگاه اینترنتی: سایت، درگاه و فرایند عملیاتی
بازیابی سرور لینوکس بعد از خرابی دیسک یا استقرار اشتباه

عملیات و استقرار

امنیت n8n: اعتبارنامه، وب‌هوک و SSRF

۹ آبان ۱۴۰۵

عملیات و استقرار

نصب n8n روی سرور با Docker Compose

۸ آبان ۱۴۰۵

عملیات و استقرار

n8n چیست و چگونه کار می‌کند؟

۸ آبان ۱۴۰۵

عملیات و استقرار

امنیت فروشگاه اینترنتی: سایت، درگاه و فرایند عملیاتی

۶ آبان ۱۴۰۵

عملیات و استقرار

بازیابی سرور لینوکس بعد از خرابی دیسک یا استقرار اشتباه

۲ آبان ۱۴۰۵
همه یادداشت‌ها315
معماری نرم‌افزار31
واژه‌نامه37
عملیات و استقرار94
مهندسی محصول122
راهنمای وب31
طراحی و ساخت محصول
توسعه فول‌استک
ممیزی مهندسی
مشاوره معماری
زیرساخت و استقرار
شروع گفتگو
ابزارهای رایگان
شروع گفتگو