تغییر زمان گذرواژه sudo در لینوکس به آسانی ویرایش یک فایل متنی ساده است.
هنگامی که دستور sudo را در لینوکس اجرا می کنید، رمز عبور را به طور پیش فرض به مدت 15 دقیقه به خاطر می آورد که توسط متغیر timestamp_timeout در فایل /etc/sudoers تعیین می شود. بنابراین در این مدت می توانید هر دستور sudo دیگری را بدون ارائه رمز عبور اجرا کنید. پس از 15 دقیقه عدم فعالیت sudo دوباره رمز عبور را درخواست می کند.
با این حال، میتوانید دوره وقفه پیشفرض را تغییر دهید و آن را با توجه به ترجیحات خود طولانیتر یا کوتاهتر کنید. همچنین می توانید آن را به گونه ای پیکربندی کنید که همیشه در هر جلسه ترمینال یا بوت شدن سیستم یک رمز عبور بخواهد یا آن را درخواست کند. در اینجا نحوه انجام این کار آمده است.
Sudo Password Timeout را در لینوکس تنظیم کنید
برای هرگونه تغییر مرتبط با sudo مانند اعطای امتیازات sudo، افزودن یا تنظیم قوانین سفارشی و غیره، باید فایل /etc/sudoers/ را ویرایش کنید. با این حال، ویرایش دستی این فایل به طور مستقیم با استفاده از هر ویرایشگر متنی توصیه نمی شود. در عوض از دستور زیر برای ویرایش فایل استفاده کنید:
sudo visudo
این دستور فایل /etc/sudoers را در یک ویرایشگر متن برای ویرایش باز می کند.
برای تغییر مهلت زمانی پیشفرض رمز عبور sudo (و طولانیتر یا کوتاهتر کردن آن)، خط زیر را در انتهای فایل اضافه کنید و مقدار آن را به هر زمان (در دقیقه) که میخواهید قبل از مهلت زمانی منتظر بماند، تغییر دهید.
Defaults timestamp_timeout=x
فرض کنید میخواهید زمان گذرواژه sudo را به سه دقیقه کوتاه کنید، بنابراین اضافه میکنید:
Defaults timestamp_timeout=3
توجه داشته باشید که عبارت Defaults در دستور بالا به تنظیمات کل سیستم اشاره دارد. برای اعمال پیکربندی فقط برای یک کاربر خاص، به جای آن از دستور زیر استفاده کنید:
Defaults:username timestamp_timeout=x
همیشه یک رمز عبور sudo را درخواست کنید
برای اینکه هر زمان که دستور sudo اجرا میشود، رمز عبور را درخواست کنید، مقدار متغیر timestamp_timeout را به 0 تغییر دهید:
Defaults timestamp_timeout=0
به یاد داشته باشید، شما می توانید این تغییر را فقط به عنوان یک کاربر فوق العاده انجام دهید. به عنوان یک کاربر استاندارد، می توانید با استفاده از دستور زیر این کار را انجام دهید:
sudo -k
این دستور نیازی به رمز عبور sudo ندارد. همچنین، دفعه بعد که آن را اجرا می کنید، از sudo درخواست رمز عبور می دهد. با این حال، به یاد داشته باشید که تغییر دائمی نخواهد بود. هر زمان که بخواهید sudo رمز عبور را درخواست کند، می توانید این دستور را فراخوانی کنید.
در هر جلسه ترمینال یک بار رمز عبور ادمین را درخواست کنید
همچنین می توانید یک بار در هر جلسه ترمینال برای رمز عبور از sudo درخواست کنید. به عنوان مثال، اگر می خواهید رمز عبور sudo را فقط یک بار در هر جلسه وارد کنید، خط زیر را در فایل /etc/sudoers اضافه کنید:
Defaults timestamp_timeout = -1
اکنون تا زمانی که ترمینال را نبندید، مهر زمانی منقضی نمیشود. این بدان معناست که پس از باز کردن ترمینال، زمانی که اولین دستور sudo را اجرا می کنید، تنها یک بار باید رمز عبور را وارد کنید.
یک راه جایگزین برای انجام این کار، باز کردن پوسته به عنوان root با استفاده از دستور زیر است:
sudo bash
دستور زیر یک بار پسورد sudo را درخواست می کند و سپس می توانید تمام دستورات بعدی را بدون هیچ رمز عبور اجرا کنید.
در هر بار بوت شدن سیستم، رمز عبور مدیر را درخواست کنید
برای اینکه یک بار در هر بار بوت شدن سیستم یک رمز عبور از sudo درخواست کنید، ورودی های زیر را در فایل /etc/sudoers اضافه کنید:
Defaults !tty_tickets
Defaults timestamp_timeout = -1
در دستور بالا، !tty_tickets مهر زمانی واحد را برای تمام جلسات ترمینال فعال می کند، بنابراین صرف نظر از اینکه چند ترمینال را باز می کنید، فقط یک بار باید رمز عبور sudo را وارد کنید. timestamp_timeout = -1 رمز عبور sudo را تا زمانی که سیستم راه اندازی مجدد نشود منقضی نمی کند.
می توانید دستگاه لینوکس خود را مجددا راه اندازی کنید تا بررسی کنید آیا تغییرات ذخیره شده اند یا خیر.
بهینه سازی Sudo Timeout Behavior در لینوکس
اکنون میتوانید به راحتی رفتار زمانبندی sudo را تغییر دهید و زمانی که از شما رمز عبور میخواهد تنظیم کنید. توجه داشته باشید که شما همچنین می توانید از sudo بدون درخواست رمز عبور استفاده کنید. با این حال، تنها در صورتی باید از این گزینه استفاده کنید که تنها کاربر هستید که به سیستم دسترسی دارید. در غیر این صورت، می تواند یک خطر امنیتی بزرگ باشد.