رفتن به محتوای اصلی
iServer24 | ارائه‌کننده سرورهای ابری و اختصاصی
راهنمای امن ویرایش فایل Sudoers

راهنمای امن ویرایش فایل Sudoers

ویرایش فایل /etc/sudoers باید با دستور visudo و با دقت انجام شود تا دسترسی مدیریتی و امنیت سیستم حفظ شود. در این آموزش روش امن دادن دسترسی sudo، ایجاد قوانین کم‌دسترسی و اعتبارسنجی تغییرات توضیح داده شده است. همچنین نکات امنیتی پیشرفته و روش بازیابی در صورت بروز مشکل ارائه شده‌اند.

ویرایش فایل /etc/sudoers یک کار حیاتی است که مستقیماً امنیت سیستم و مدیریت دسترسی کاربران را تحت تأثیر قرار می‌دهد. اعمال تغییرات نادرست ممکن است باعث از دست رفتن دسترسی مدیریتی یا ایجاد آسیب‌پذیری شود. تنها روش امن و توصیه‌شده، استفاده از دستور visudo است که قبل از اعمال تغییرات، سینتکس را بررسی می‌کند تا خطاها ایجاد نشوند.

در این راهنما یاد می‌گیرید چگونه با استفاده از visudo فایل sudoers را امن و صحیح ویرایش کنید، دسترسی sudo را به کاربران بدهید، مشکلات رایج را رفع کنید و بهترین شیوه‌ها برای حفظ امنیت سیستم را دنبال کنید.

نکات کلیدی

  • همیشه برای ویرایش /etc/sudoers یا فایل‌های داخل /etc/sudoers.d/ از visudo استفاده کنید. این دستور فایل را قفل و سینتکس را هنگام ذخیره بررسی می‌کند.

  • قبل و بعد از تغییرات با

sudo visudo -c
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
صحت سینتکس را بررسی کنید و سپس با
sudo -k && sudo -v && sudo -l
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
و اجرای دستورات آزمایشی، عملکرد را تست کنید.

 

  • استفاده از گروه‌های مدیریتی به جای تعریف ALL برای هر کاربر ساده‌تر و ایمن‌تر است (Ubuntu/Debian: گروه sudo، RHEL/CentOS/Fedora: گروه wheel).

  • قوانین را به صورت ماژولار در /etc/sudoers.d/ نگه دارید تا مدیریت و بازبینی آن‌ها ساده باشد.

  • اصل حداقل دسترسی را رعایت کنید: مسیرهای مطلق و محدوده دستورات دقیق را مشخص کنید، از wildcard و ALL گسترده خودداری کنید.

  • ثبت و بررسی لاگ‌ها را فعال کنید (/var/log/auth.log یا /var/log/secure) و مسیر امن (secure_path) تعریف کنید.

  • برنامه بازیابی داشته باشید: در صورت مشکل با sudo، از

  • pkexec visudo
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    یا حالت single-user/emergency استفاده کنید.

     

  • مسیرهای دستورها را در هر توزیع بررسی و تنظیم کنید (مثلاً systemctl در /usr/bin/ یا /bin/).

  • دسترسی روت

    در کنار مدیریت دسترسی روت با sudoers، غیرفعال‌سازی ورود مستقیم روت از طریق SSH Key نیز به امنیت سرور کمک می‌کند.

    حساب کاربری root دسترسی کامل دارد. برای نصب نرم‌افزار، مدیریت کاربران یا اصلاح فایل‌های سیستمی باید دسترسی روت داشته باشید. سه روش رایج:

    1. sudo: برای کارهای روزمره و توصیه‌شده.

    2. su: برای سیستم‌های قدیمی یا زمانی که sudo در دسترس نیست.

    3. ورود مستقیم به root: برای مواقع اضطراری، با استفاده از کنسول یا حالت single-user.

    ایجاد قوانین کم‌دسترسی

    با استفاده از aliases و مسیرهای مطلق، دستورات را محدود و قابل بررسی نگه دارید. مثال:

    • تعریف گروه کاربری:

    User_Alias GROUPONE = abby, brent, carl
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

  • تعریف alias دستوری:

  • Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

  • اعمال به گروه:

  • GROUPONE ALL = POWER
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

    تست و اعتبارسنجی

    • بررسی سینتکس:

    sudo visudo -c
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

  • پاک‌سازی کش احراز هویت و ورود مجدد:

  • sudo -k && sudo -v
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

  • مشاهده دسترسی‌های کاربر:

  • sudo -l
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

    نکات امنیتی پیشرفته

    • برای سرویس‌ها یا اتوماسیون‌ها، دسترسی محدود و قابل ثبت (audit) بدهید.

    • از NOPASSWD و NOEXEC تنها برای دستورات کم‌ریسک استفاده کنید.

    • مسیرهای مطلق را همیشه مشخص کنید.

    • قوانین در /etc/sudoers.d/ نگه داشته شوند تا بازبینی و بازیابی آسان باشد.

    برای امنیت جامع‌تر سرور، تنظیم قوانین فایروال iptables نیز توصیه می‌شود.

    بازیابی در حالت اضطراری

    • اگر sudo از کار افتاد، از

    pkexec visudo
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    یا حالت single-user برای اصلاح استفاده کنید.

     

  • پس از اصلاح، سیستم را ریبوت کرده و صحت عملکرد را بررسی کنید.

  • زیرساخت ابری برای اجرای همین آموزش

    سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

    ادامه یادگیری:Docker·Ubuntu·VPS