ویرایش فایل /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/).
دسترسی روت
حساب کاربری root دسترسی کامل دارد. برای نصب نرمافزار، مدیریت کاربران یا اصلاح فایلهای سیستمی باید دسترسی روت داشته باشید. سه روش رایج:
-
sudo: برای کارهای روزمره و توصیهشده.
-
su: برای سیستمهای قدیمی یا زمانی که sudo در دسترس نیست.
-
ورود مستقیم به 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/نگه داشته شوند تا بازبینی و بازیابی آسان باشد.
بازیابی در حالت اضطراری
-
اگر sudo از کار افتاد، از
pkexec visudoیا حالت single-user برای اصلاح استفاده کنید. -
پس از اصلاح، سیستم را ریبوت کرده و صحت عملکرد را بررسی کنید.

