لینوکس‌لرنینگ

آموزش دستور sudo در لینوکس

برخی از کاربران حرفه‌ای‌تر سرور لینوکس نیاز دارند تا به تمام ویژگی‌های آن دسترسی داشته باشند. از طرفی نمی‌توان چندین مدیر برای یک سیستم‌ عامل تعرفی کرد و امنیت لینوکس را به خطر انداخت.

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

Sudo مخفف عبارت Super User Do است که برای استفاده از فایل‌ها و عملیات‌های محدود شده استفاده می‌شود. لینوکس دسترسی به بخش‌های خاصی از سیستم را به‌طور پیش‌فرض محدود می‌کند تا فایل‌های حساس در معرض خطر نیفتند.

هنگام استفاده از دستور sudo برخی از امتیازات و دسترسی‌های شما به‌طور موقت در حد کاربر روت بالا می‌رود تا بتوانید کارهای حساسی را انجام دهید. در ادامه با هم به یادگیری نحوه استفاده از دستور sudo می‌پردازیم.

پیش‌نیازهای استفاده از دستور sudo

  • سیستمی که لینوکس را اجرا کند
  • دسترسی به خط دستور / پنجره ترمینال (به آدرس Activities > Search > Terminal)
  • حساب کاربری با امتیازات sudo یا root

چگونه از دستور sudo استفاده کنیم؟

Sudo طراحی شد تا راهی برای اعطای موقت حقوقِ مخصوصِ کاربر مدیر به دیگر کاربران باشد. برای استفاده از آن، لازم است دستور sudo را قبل از دستور محدود شده مدنظر بنویسید. سیستم از شما رمز عبور می‌خواهد. وقتی رمز عبور را وارد کردید، دستور فعال می‌شود.

سینتکس و شیوه نوشتن دستور sudo

سینتکس زیر را برای استفاده از sudo به‌کار ببرید:

زمانی که استفاده از دستور sudo را شروع می‌کنید، در لاگ‌های سیستمی یک مُهر زمانی می‌خورد. کاربر در مدت زمانی کوتاه (به‌طور پیشفرض 15 دقیقه) می‌تواند کارهایی را انجام دهد که نیاز به امتیازات کاربر سطح بالا دارند. اگر کاربری بدون دسترسی به sudo از آن استفاده کند، یک اتفاق امنیتی ثبت می‌شود.

عملیات‌های مربوط به دستور sudo

دستور sudo را می‌توان با عملیات‌های مختلفی استفاده کرد:

  • ●       -h – راهنما؛ سینتکس و عملیات‌های دستوری را نمایش می‌دهد
  • ●       -V – نسخه؛ نسخه حال حاضر برنامه sudo را نمایش می‌دهد
  • ●       -v – معتبرسازی؛ محدودیت زمانی sudo را بدون اجرای هیچ دستوری تمدید می‌کند
  • ●       -l – فهرست؛ امتیازات کاربر را نمایش می‌دهد یا دستوری خاص را بررسی می‌کند
  • ●       -k – تمام‌کردن؛ به امتیازات حال‌حاضر sudo را پایان می‌دهد

عملیات‌های اضافه را می‌توانید با اجرای دستور –h ببینید:

توجه داشته باشید که لاگین‌ماندن در نقش مدیریت سیستم، امنیت را به خطر می‌اندازد. ادمین‌ها در گذشته از su (Substitute User) برای تغییر موقت نقش خود به مدیر استفاده می‌کردند. با این حال، دستور su به حساب کاربری و رمز عبور دومی نیاز دارد که همیشه امکان‌پذیر نیست.

اعطای امتیاز sudo به کاربران در لینوکس

کاربر در توزیع‌های مدرن‌تر لینوکس، باید در گروه کاربران sudo، sudoers و wheel باشد تا بتواند از دستور sudo استفاده کند. سیستم تک کاربره به‌طور پیش‌فرض امتیازات sudo را به کاربرش می‌دهد. سیستم یا سرور چند کاربره ممکن است برخی از حساب‌های کاربری را از امتیازات sudo محروم سازد.

توصیه می‌کنیم تنها امتیازاتی را به کاربر بدهید که برای انجام وظایف روزانه خود به آن نیاز دارند. در بخش‌های بعدی، چگونگی اضافه‌کردن کاربر را به گروه sudoers شرح می‌دهیم.

اعطای مجوز sudo در Redhat و CentOS

گروه wheel، کاربران sudo را در ردهت و CentOS کنترل می‌کند. با استفاده از دستور زیر، می‌توانید کاربر را به گروه wheel اضافه کنید:

به جای [username]، نام کاربری واقعی مدنظر را بنویسید. احتملا لازم است برای انجام این کار با اکانت مدیر وارد شوید یا از دستور su استفاده کنید.

اعطای مجوز sudo دبیان و اوبونتو

گروه sudo، کاربران sudo را در دبیان و اوبونتو کنترل می‌کند. با استفاده از دستور زیر، می‌توانید کاربر را به گروه sudo اضافه کنید:

به جای [username]، نام کاربری واقعی مدنظر را بنویسید. احتمالا لازم است برای انجام این کار با اکانت مدیر وارد شوید یا از دستور su استفاده کنید.

استفاده از visudo و گروه sudoers برای اعطای مجوز sudo

کاربران در برخی از نسخه‌های جدیدتر لینوکس، برای گرفتن امتیازات به فایل sudoers اضافه می‌شوند.

دستور visudo وظیفه انجام این کار را برعهده دارد.

  1. از دستور visudo برای ویرایش فایل پیکربندی استفاده کنید:
    sudo visudo
  2. مسیر /etc/sudoers در ادامه باز می‌شود. خط دستوری زیر را برای اضافه‌کردن کاربر و اعطای تمام امتیازات sudo بنویسید:
دستور اضافه کردن کاربر و دادن همه مجوز ها
  • فایل را ذخیره کنید و خارج شوید.

خط زیر، امتیازات اعطاشده به‌صورت تفکیک‌شده است:

توجه داشته باشید که اضافه‌کردن کاربر به گروه sudo یا wheel برای اعطای امتیازات sudo ساده‌تر است. برای ویرایش فایل پیکربندی فقط از visudo استفاده کنید. برنامه visudo از قطعی، باگ و پیکربندی‌ اشتباه جلوگیری می‌کند تا سیستمتان دچار مشکل نشود.

مثال‌هایی از sudo در لینوکس

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

استفاده پایه از sudo

  1. پنجره ترمینال را باز کرده و دستور زیر را امتحان کنید:
  • در این مرحله باید پیام خطا نمایش داده شود. این خطا می‌گوید که شما مجوزهای لازم را برای اجرای این دستور ندارید.
خطای نداشتن مجوز های لازم
  • همین دستور را با sudo امتحان کنید:
  • رمز عبور خواسته‌ شده را بزنید. سیستم، دستور شما را اجرا و مخزن‌ها را به‌روزرسانی می‌کند.
دستور apt-get update

اجرای دستور به جای کاربر متفاوت

  1. برای اجرای دستورات به عنوان کاربری متفاوت، دستور زیر را در ترمینال وارد کنید:
    Whoami
  2. سیستم، نام کاربری شما را نشان می‌دهد. بعد، دستور زیر را وارد کنید:
  • رمز عبور [different-username] را بزنید تا دستور whoami، اجرا شده و کاربر متفاوت را نمایش دهد:
دستور whoami

تعویض به کاربر روت

فرمان زیر، خط فرمان شما را به پوسته BASH مخصوص کاربر روت تغییر می‌دهد.

خط دستور شما باید به شکل زیر تغییر پیدا کرده باشد:

مقدار hostname نام شبکه این سیستم و username هم کاربری است که هم‌اکنون داخل سیستم لاگین کرده.

تعویض به کاربر روت

اجرای دستورهای قبلی با sudo

خط دستور لینوکس، تاریخچه دستورهای اجراشده قبلی را نگهداری می‌کند. با فشردن دکمه فلش بالا می‌توانید به آن‌ها دسترسی داشته باشید. از دستور زیر برای تکرار دستور قبلی با امتیازات ارتقایافته استفاده کنید:

برای دستورات قدیمی‌تر نیز باید عدد آن را در خط فرمان جای دهید:

در این مثال، ششمین ورودی شما در تاریخچه sudo تکرار می‌شود.

اجرای چند دستور در یک خط با دستور sudo

چندین دستور را کنار هم به صف کرده و با نقطه ویرگول جدایشان کنید:

اجرای چند دستور در یک خط با دستور sudo

اضافه‌کردن یک رشته متن به فایل موجود

برای آن‌که بتوانید کارهایی مثل اضافه‌کردن نام مخزن نرم‌افزار به فایل منبع را بدون بازکردن ویرایشگر فایل انجام دهید، می‌توانید از قابلیت اضافه‌کردن متن رشته‌ای به فایل موجود استفاده کنید. سینتکس زیر را با دستور echo، sudo و tee به‌کار ببرید.

کد زیر مثالی از قابلیت اضافه‌کردن متن رشته‌ای به فایل است:

اضافه‌کردن متن رشته‌ای به فایل

در این مثال، مخازن نرم‌افزار Nginx به سیستم شما اضافه شده است.

جمع بندی

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

سوالات متداول

sudo چیست؟

sudo (Superuser Do) یکی از فواید سیستم‌های لینوکس و یونیکس به شمار می‌رود. Sudo به برخی از کاربران امکان می‌دهد تا دستورهایی خاص در بالاترین سطح کاربری (کاربر روت) اجرا کنند. این قابلیت همچنین تمام دستورها و ورودی‌ها را لاگ می‌کند.

استفاده دستور sudo چیست؟

با دستور sudo می‌توانید برنامه‌ها را با امتیازات امنیتی کاربری دیگر (به‌طور پیشفرض Superuser) اجرا کنید. sudo از شما رمز عبور شخصی‌تان را می‌خواهد و با بررسی فایل sudoers، درخواست شما مبنی بر اجرای دستور را تایید می‌کند. مدیر سیستم، فایل sudoers را پیکربندی می‌کند.

چگونه از sudo در لینوکس استفاده کنید؟

در خط دستوری که کدهای خود را می‌نویسید، قبل از تایپ دستور مدنظر، عبارت sudo را وارد کنید. سپس، sudo از شما رمز عبور می‌خواهد. رمز عبور شما تا مدت زمان محدودی (به‌طور پیشفرض 15 دقیقه) در حافظه sudo باقی می‌ماند.

چگونه به روت متصل شویم؟

برای تعویض به کاربر روت روی سرور لینوکس، مراحل زیر را طی کنید:

– دسترسی روت / ادمین را برای سرور خودتان فعال کنید.

– از طریق SSH به سرورتان متصل شوید و دستور sudo –su را اجرا کنید.

– رمز عبور سرورتان را وارد کنید، حالا دسترسی روت دارید.

پیمایش به بالا