آذرسیس

9 useful Sudoers configuration to set up udo in Linux

آموزش امروز را به بررسی 9 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس اختصاص خواهیم داد. در لینوکس و سایر سیستم‌عامل‌های مشابه یونیکس، امکان اجرای دستورات تنها برای کاربران root امکان پذیر است.

آنها می توانند عملیات حیاتی خاصی را نیز بر روی سیستم انجام دهند. این عملیات شامل، فرآیند نصب و به‌روزرسانی، حذف بسته‌ها، ایجاد گروه هایی برای کاربران، تغییر فایل‌های پیکربندی مهم برای سیستم و موارد دیگر می باشند.

در کنار این موارد، مدیران وبسایت که نقش کاربر اصلی را بر عهده دارند، می توانند امکان دسترسی سایر کاربران عادی را نیز برای پیکربندی سیستم با کمک دستور sudo فراهم کنند تا آنها نیز بتوانند برخی از دستورات را اجرا کنند. همچنین، تعدادی از عملیات حیاتی سیستم مانند مواردی که در بالا به آنها اشاره شد نیز بر آنها خواهد بود.

علاوه بر این، مدیران سیستم می توانند رمز عبور کاربر root را به اشتراک گذاشته تا کاربران عادی سیستم نیز از طریق دستور Sudo به حساب کاربری root دسترسی داشته باشند.

بررسی 9 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس

sudo به کاربر این اجازه را می دهد تا دستوری را به عنوان کاربر root و یا کاربر دیگر اجرا کند. کاربرد های Sudo شامل موارد زیر می باشد:

  • دستور /etc/sudoers را خوانده و تجزیه می کند. همچنین، کاربر مجوزهای لازم را می تواند جستجو کند.
  •  دستور invoking user برای درخواست رمز عبور مورد استفاده قرار می گیرد. معمولاً این رمز عبور مربوط به دسترسی کاربر Root خواهد بود که می تواند در این میان برای رمز عبور کاربر هدف نیز مورد استفاده قرار گیرد.
  • sudo یک فرآیند child نیز ایجاد می کند که در آن setuid() را فراخوانی کرده و می تواند کاربر مورد نظر را پیکربندی کند.
  • در مرحله بعد، این دستور می تواند یک پوسته یا دستوری را که به عنوان arguments در فرآیند child مورد استفاده قرار گرفته است را نیز اجرا کند.

در این قسمت، به ده پیکربندی فایل /etc/sudoers برای تغییر رفتار دستور sudo با استفاده از ورودی های پیش فرض اشاره کردیم:

 sudo cat /etc/sudoers
 This file MUST be edited with the 'visudo' command as root.

 Please consider adding local content in /etc/sudoers.d/ instead of
 directly modifying this file.

 See the man page for details on how to write a sudoers file.

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults        logfile="/var/log/sudo.log"
Defaults        lecture="always"
Defaults        badpass_message="Password is wrong, please try again"
Defaults        passwd_tries=5
Defaults        insults
Defaults        log_input,log_output

انواع ورودی های پیش فرض

Defaults                parameter,   parameter_list     #affect all users on any host
Defaults@Host_List      parameter,   parameter_list     #affects all users on a specific host
Defaults:User_List      parameter,   parameter_list     #affects a specific user
Defaults!Cmnd_List      parameter,   parameter_list     #affects  a specific command
Defaults>Runas_List     parameter,   parameter_list     #affects commands being run as a specific user

برای دامنه، به اولین نوع پیش فرض در فرم های zero down می رویم.

پارامترهای مورد استفاده ممکن است به صورت flags ،integer ،values ،strings یا lists باشند.

باید توجه داشته باشید که flag ها به طور ضمنی Boolean هستند و می‌توان با استفاده از «!» آن را خاموش کرد.

Defaults     parameter
OR
Defaults     parameter=value
OR
Defaults     parameter -=value  
Defaults     parameter +=value 
OR
Defaults     !parameter

 تنظیم یک مسیر امن

این مسیر برای هر دستوری که با sudo اجرا می شود قابل استفاده می باشد، از مزایای این دستور می توان به موارد زیر اشاره کرد:

از این دستور زمانی استفاده می شود که مدیر وبسایت از داشتن متغیر محیطی PATH ایمن، برای جدا کردن «root path» و «user path» کاربران sudo مطمئن نیست، فقط کاربرانی که توسط exempt_group تعریف شده‌اند تحت تأثیر این تنظیم قرار نمی‌گیرند.

برای تنظیم می توانید از دستور زیر را استفاده کنید:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

 فعال کردن sudo در TTY User Login Session

به منظور فعال کردن sudo برای فراخوانی از یک tty واقعی از دستور زیر استفاده کنید. اما توجه داشته باشید که در موقع اعمال روش‌هایی مانند اسکریپت‌های cron یا cgi-bin از این دستور استفاده نمی شود:

Defaults  requiretty

 اجرای دستور Sudo با استفاده از pty

مهاجمان چندین بار می توانند یک برنامه مخرب را مانند یک ویروس یا بدافزار را با استفاده از sudo اجرا کنند، اجرای دستور می تواند دوباره یک فرآیند پس زمینه را ایجاد کرده که حتی پس از اتمام اجرای برنامه اصلی نیز در دستگاه ترمینال کاربر باقی می ماند.

برای جلوگیری از چنین پیشامدی، می‌توانید sudo را طوری پیکربندی کنید که فرمان‌های دیگر را فقط از یک psuedo-pty و همچنین با استفاده از پارامتر use_pty اجرا کند. توجه کنید که به هنگام ورود به سیستم، این گزینه ممکن است روشن باشد و یا غیر فعال باشد:

Defaults  use_pty

 ایجاد یک فایل Sudo Log

به طور پیش فرض، sudo از طریق syslog ثبت می شود. با این حال، برای تعیین یک فایل ثبت سفارشی، از پارامتر logfile مانند زیر می توانید استفاده کنید:

Defaults  logfile="/var/log/sudo.log"

برای log hostname و four-digit year در فایل ثبت سفارشی، به ترتیب از پارامترهای log_host و log_year به صورت زیر استفاده می شود:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

در تصویر زیر نمونه ای از فایل ثبت سفارشی sudo نشان داده شده است:

10 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس

 وارد کردن دستور Input یا Output 

Sudo، پارامترهای log_input و log_output را قادر می‌سازد تا دستوری را به صورت شبه tty اجرا کند و تمام ورودی‌های کاربر و همه خروجی‌های ارسال شده به صفحه را ثبت کند.

دایرکتوری پیش فرض ورود/خروج به صورت /var/log/sudo-io می باشد. توجه کنید اگر شماره ترتیب جلسه وجود داشته باشد در این دایرکتوری ذخیره می شود. شما می توانید یک دایرکتوری سفارشی را از طریق پارامتر iolog_dir مشخص کنید.

Defaults   log_input, log_output

در این میان برخی از آنها از دنباله‌های فرار پشتیبانی می‌شوند، برای مثال %{seq} که به صورت یک عدد دنباله پایه-36 و به صورت یکنواخت افزایش می‌یابد. اگر بخواهیم یک مثال بیان کنیم، 000001 که در آن از هر دو رقم برای تشکیل یک فهرست جدید استفاده می‌شود. یا در مثال 00/00/01 به صورت زیر عمل می کنیم:

 cd /var/log/sudo-io/
 ls
 cd  00/00/01
 ls
 cat log

10 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس

با استفاده از دستور cat می توانید بقیه فایل های آن دایرکتوری را مشاهده کنید.

 

نمایش پیام سفارشی به هنگام وارد کردن رمز عبور نامعتبر 

زمانی که کاربر رمز عبور خود را به صورت اشتباه وارد می کند، پیامی در command line نمایش داده می شود. این پیام به صورت پیش‌فرض sorry و try again نمایش داده می شود. شما می‌توانید پیام را با استفاده از پارامتر badpass_message به صورت زیر تغییر دهید:

Defaults  badpass_message="Password is wrong, please try again"

بالا بردن میزان حد امتحان رمز عبور

پارامتر passwd_tries برای تعیین تعداد دفعاتی که کاربر می‌تواند رمز عبور خود را وارد کند، استفاده می‌شود.

این مقدار پیش فرض، 3 تعیین شده است:

Defaults   passwd_tries=5

10 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس

برای تنظیم زمان گذرواژه که به صورت پیش‌فرض 5 دقیقه می باشد، با استفاده از پارامتر passwd_timeout دستور زیر را اضافه کنید:

Defaults   passwd_timeout=2

 دریافت پیام Sudo Insult به هنگام وارد کردن رمز عبور اشتباه 

در صورتی که کاربر رمز عبور خود را به صورت اشتباه تایپ می کند، sudo پیامی را با پارامتر insults در ترمینال نشان می دهد. این به طور خودکار پارامتر badpass_message را خاموش خواهد کرد.

Defaults  insults

10 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس

 یادگیری بیشتر تنظیمات Sudo

شما می‌توانید پیکربندی‌ دستورات بیشتری از sudo را با خواندن، بررسی تفاوت های ما بین su و sudo، همچنین نحوه پیکربندی sudo در لینوکس را بیاموزید.

آذرسیس، ارائه دهنده سرور مجازی لینوکس و سرور مجازی ویندوز با بالاترین کیفیت و تحویل فوری می باشد. شما پس از خرید از وبسایت، سرور خود را به صورت فوری پس از پرداخت وجه تحویل خواهید گرفت. خبر خوب این که پس از خرید از وبسایت، خدمات کانفیگ به صورت رایگان برای شما انجام خواهد گرفت.

سخن آخر

در این آموزش 9 پیکربندی مفید Sudoers برای تنظیم sudo در لینوکس را بررسی کردیم. اگر شما نیز در این زمینه فعالیت می کنید، خواندن این مقاله می تواند برای شما مفید واقع شود. ممنون که تا انتهای این آموزش همراه ما بودید، در صورت داشتن سوال، از بخش نظرات با ما در ارتباط باشید.

تعریف از فایل پیکربندی sudo در لینوکس چیست؟

فایل پیکربندی، sudo /etc/sudoers می باشد که همیشه باید با دستور visudo(8) ویرایش شود. visudo فایل sudoers را قفل کرده، ویرایش‌ها را در یک فایل موقت ذخیره می‌کند و قبل از کپی کردن آن در /etc/sudoers آن را برای خطاهای syntax بررسی می کند

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *