Future ForgeFuture ForgeFuture ForgeFuture Forge
ServicesWorkPackagesFree toolsNotesAboutContact
Start
  1. Home
  2. /Notes
Future ForgeFuture Forge

Product engineering studio — design, build, and deploy software.

Discuss your project

Contact

hello@futureforge.ir09128464105
Future ForgeFuture Forge

Product engineering studio — design, build, and deploy software.

Services

Product engineeringFull-stack engineeringEngineering auditArchitecture consultingInfrastructure and deploymentAI in the product

Explore

WorkNotesFAQPackages

Free tools

Engineering auditArchitecture advisorProject estimatorPrompt tool

Company

AboutContactPrivacyTerms of use

Discuss your project

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Discuss your project

Contact

hello@futureforge.ir09128464105
GitHubLinkedIn

© 2026 FutureForge. All rights reserved.

HomeServicesFree toolsStart
Operations

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

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

SE
Soheil Ebrahimpour

Founder & product engineer

·Sep 20, 2026·10 min read
sudorootsudoersvisudosuprivilege escalationNOPASSWD
ترمینال sudo و استیکی Root کنار لامپ

کاربر 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/

Author

SE

Soheil Ebrahimpour is the founder of FutureForge. He works on product design, architecture, and getting custom software into production.

Related notes

Related notes

Categories

Related services

From note to project

If this topic is close to your product or system, we can talk about the real scope.

If you are unsure about architecture or the build path, we can talk about the project.

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Soheil Ebrahimpour
Notes
Logging چیست؟ ثبت رویداد برای تشخیص و پاسخ به حادثه
تعیین اندازهٔ سرور: RAM، CPU و Storage بر اساس Workload
Docker در برابر Kubernetes؛ مقایسهٔ دقیق نه شعار
چرا همیشه به Kubernetes نیاز ندارید؟
Kubernetes چیست؟ اجرای مقاوم workloadهای کانتینری

Operations

Logging چیست؟ ثبت رویداد برای تشخیص و پاسخ به حادثه

Sep 20, 2026

Operations

تعیین اندازهٔ سرور: RAM، CPU و Storage بر اساس Workload

Sep 20, 2026

Operations

Docker در برابر Kubernetes؛ مقایسهٔ دقیق نه شعار

Sep 20, 2026

Operations

چرا همیشه به Kubernetes نیاز ندارید؟

Sep 20, 2026

Operations

Kubernetes چیست؟ اجرای مقاوم workloadهای کانتینری

Sep 20, 2026
All notes219
Software architecture13
Glossary37
Operations87
Product engineering74
Web guide8
Product engineering
Full-stack engineering
Engineering audit
Architecture consulting
Infrastructure and deployment
Discuss your project
Free tools
Discuss your project