ویرایش فایل /etc/sudoers یک کار حیاتی است که مستقیماً امنیت سیستم و مدیریت دسترسی کاربران را تحت تأثیر قرار میدهد. اعمال تغییرات نادرست ممکن است باعث از دست رفتن دسترسی مدیریتی یا ایجاد آسیبپذیری شود. تنها روش امن و توصیهشده، استفاده از دستور visudo است که قبل از اعمال تغییرات، سینتکس را بررسی میکند تا خطاها ایجاد نشوند.
در این راهنما یاد میگیرید چگونه با استفاده از visudo فایل sudoers را امن و صحیح ویرایش کنید، دسترسی sudo را به کاربران بدهید، مشکلات رایج را رفع کنید و بهترین شیوهها برای حفظ امنیت سیستم را دنبال کنید.
نکات کلیدی
-
همیشه برای ویرایش
/etc/sudoersیا فایلهای داخل/etc/sudoers.d/ازvisudoاستفاده کنید. این دستور فایل را قفل و سینتکس را هنگام ذخیره بررسی میکند. -
قبل و بعد از تغییرات با
sudo visudo -csudo -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
مسیرهای دستورها را در هر توزیع بررسی و تنظیم کنید (مثلاً systemctl در /usr/bin/ یا /bin/).
دسترسی روت
در کنار مدیریت دسترسی روت با sudoers، غیرفعالسازی ورود مستقیم روت از طریق SSH Key نیز به امنیت سرور کمک میکند.
حساب کاربری 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/نگه داشته شوند تا بازبینی و بازیابی آسان باشد.
برای امنیت جامعتر سرور، تنظیم قوانین فایروال iptables نیز توصیه میشود.
بازیابی در حالت اضطراری
-
اگر sudo از کار افتاد، از
pkexec visudo
پس از اصلاح، سیستم را ریبوت کرده و صحت عملکرد را بررسی کنید.
