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

درک سودو

برای نشان دادن روش عملکرد sudo، ابتدا از طریق SSH به VPS خود دسترسی پیدا کنید. اگر مشکل دارید، آموزش PuTTY را بررسی کنید.

به طور پیش فرض، کاربر ریشه نیازی به استفاده از پیشوند sudo ندارد. آنها در حال حاضر تمام امتیازات ممکن را دارند. در همین حال، اگر یک کاربر غیر ریشه بخواهد کاربر دیگری اضافه کند، باید پیشوند sudo را به دستور useradd اضافه کند، مانند این:

sudo useradd edward

اگر کاربر از پیشوند sudo استفاده نکند، a را دریافت خواهد کرد اجازه رد شد خروجی

فایل Sudoers

دستور sudo از طریق فایلی که در آن قرار دارد پیکربندی می شود /و غیره/ تماس گرفت سودوها.

از طریق دستور sudo امتیازات سطح مدیریت را به کاربران عادی ارائه می کنید. معمولاً اولین کاربری که هنگام نصب اوبونتو ایجاد می‌کنید دارای حقوق sudo است. در یک محیط VPS که کاربر اصلی پیش فرض است. می توانید سایر کاربران را طوری پیکربندی کنید که بتوانند دستور sudo را نیز اجرا کنند. این کار را می توان با ویرایش sudoers انجام داد.

مهم! توجه داشته باشید که خطاها یا نحو بد روی فایل sudoers شما ممکن است منجر به قفل کردن همه کاربران شود روی توزیع شما

پیشنهاد می‌کنیم بخوانید:  بایگانی VPS

نحو فایل Sudoers

می توانید فایل را با ویرایشگر متن دلخواه خود باز کنید. استفاده خواهیم کرد vi:

vi /etc/sudoers

فایل VPS ما به شکل زیر است:

نمونه ای از فایل لینوکس sodoers

بیایید به برخی از قالب‌ها و قوانینی که هنگام ویرایش sudoers باید رعایت کنیم نگاهی بیاندازیم:

  • تمام خطوط با شروع # نظرات هستند، به جز زمانی که نماد بخشی از #عبارتند از یا #includedir بخشنامه ها
  • root ALL=(ALL:ALL) ALL – این خط به این معنی است که کاربر root دارای امتیازات نامحدود است و می تواند هر دستوری را اجرا کند روی سیستم
  • %admin ALL=(ALL) ALL – علامت % یک گروه را مشخص می کند. هر کسی در گروه مدیریت دارای همان امتیازات کاربر ریشه است
  • %sudo ALL=(ALL:ALL) همه – همه کاربران در گروه sudo از امتیاز اجرای هر دستوری برخوردار هستند

خط دیگر مورد علاقه #includedir /etc/sudoers.d است، به این معنی که می‌توانیم تنظیماتی را به فایل sudoers.d اضافه کنیم و آن را در اینجا پیوند دهیم.

در حال ویرایش فایل Sudoers

برای ویرایش /etc/sudoers فایل، از دستور زیر استفاده کنید:

sudo visudo -f /etc/sudoers

توصیه می شود از visudo برای ویرایش فایل sudoers استفاده کنید. Visudo اطمینان حاصل می کند که sudoers توسط یک کاربر در یک زمان ویرایش می شود و بررسی های نحوی لازم را ارائه می دهد.

برای اینکه ببینیم چه کاربرانی در گروه sudo هستند می‌توانیم از دستور grep استفاده کنیم:

grep ‘sudo’ /etc/group

با این کار لیستی از نام‌های کاربری نمایش داده می‌شود.

برای افزودن کاربری به نام bill به گروه sudo، از اضافه کننده دستور در خط فرمان، مانند این:

adduser bill sudo

اگر از دستور grep برای بررسی افرادی که در گروه هستند استفاده کنیم، صورت حساب نام کاربری را خواهیم دید.

اگر می خواهید به کسی امتیازات root بدهید فقط آنها را به sudo اضافه کنید.

برای حذف یک کاربر از sudo:

deluser bill sudo

دستور deluser صورتحساب را از گروه sudo حذف می کند.

پیشنهاد می‌کنیم بخوانید:  10 بهترین پلاگین CRM وردپرس برای بهبود فروش در سال 1402

اکنون صورتحساب کاربر دیگر نمی تواند اقداماتی را انجام دهد که به امتیازات sudo نیاز دارند.

از فایل Sudoers برای اعطای امتیازات خاص استفاده کنید

اگر بخواهیم بیل بتواند فقط انواع خاصی از دستورات را با امتیازات sudo اجرا کند، مانند شبکه چه؟

برای این کار یک فایل پیکربندی در آن ایجاد می کنیم /etc/sudoers.d/ شبکه نامیده می شود.

برای ایجاد فایل از دستور زیر استفاده کنید:

sudo visudo -f /etc/sudoers.d/networking

متن زیر را در فایل اضافه کنید:

Cmnd_Alias     CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

سپس دستور را اجرا کنید:

addgroup netadmin

کاری که در فایل فوق انجام داده ایم ایجاد یک گروه نتادمین است. کاربران در گروه netadmin می توانند دستورات مشخص شده در NETALL را اجرا کنند. NETALL به نوبه خود شامل تمام دستورات تحت نام مستعار CAPTURE و SERVERS است. دستور tcpdump تحت نام مستعار CAPTURE است /usr/sbin/tcpdump.

سپس صورتحساب کاربر را به گروه netadmin اضافه می کنیم:

sudo adduser bill netadmin

اکنون صورتحساب کاربر می‌تواند دستور tcpdump را به همراه سایر دستورات مرتبط با شبکه اجرا کند.

نتیجه

اگر با چندین کاربر کار می کنید، درک دستور sudo و فایل sudoers یک الزام مطلق است. در این آموزش، شما تمام اصول اولیه برای کنترل امتیازات سیستم خود را یاد گرفتید!

به سایر دستورات لینوکس مسلط شوید

روش کشتن یک فرآیند در لینوکس
روش تست اتصال با دستور پینگ
روش مدیریت فرآیندها در لینوکس
روش استفاده از Dig Command برای جستجوی DNS
روش لیست کردن خدمات در لینوکس
روش تغییر رمز عبور کاربر در لینوکس