وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

دستورات لینوکس برای مبتدیان – SUDO

SUDO در لینوکس چیست و چطور از آن استفاده کنیم

2 ۵,۸۱۳
زمان لازم برای مطالعه: 4 دقیقه

SUDO دستوری برای حکم فرمایی بر همه در لینوک است ! این یک جوک نیست ، SUDO مخفف Super User DO است

به عنوان یک مدیر سرور و یا کاربر PowerUser “اس یو دو” یا “سودو” یکی از مهمترین دستورات است که می‎تواند مورد استفاده قرار گیرد

آیا شده تا بخواهید دستوری را در محیط خط فرمان در ترمینال اجرا کنید و خطای Access Denied دریافت کرده باشید ! این دستور برای شما در چنین مواقعی است ، اما به قول انگلیسی ها with great power comes great responsibility! ، با قدرت زیاد مسئولیت زیاد هم همراه است ( در ایران خیلی صدق نمی‎کند  😉 ) ، استفاده از این دستور خیلی بهتر از ورود مستقیم با یوزر root و یا استفاده از SU ( Switch User )  است در ادامه فراخواهیم گرفت که SUDO چه کارها که نمیتواند برای شما انجام دهد.

SUDO:به چه دردی میخورد ؟

خب سودو دقیقا چه کار می‎کند ، اگر هر دستوری را با پیشوند sudo اجرا کنید آن دستور با سطح دسترسی بالا Elevated) privileges) اجرا می‎شود. (Linux Apache MySQL PHP) برای اجرای برخی دستورات مشخص مدیریتی در لینوکس لازم است . ممکن است زمانی بخواهید LAMP ( Linux Apache MySQL PHP) روی سرور خود ران کنید و لازم است تا فایلهای کانفیگ را بصورت دستی ویرایش کنید ، همچنین ممکن است بخواهید وب سرور و یا سرویسهای دیگر را ریست کنید ، شما برای ریست و یا خاموش کردن سرور لینوکس به Elevated privileges نیاز دارید.

احتمالا با محیط ویندوز آشنایی دارید ، این خیلی شبیه همان پنجره User Account Control است که زمانی که در ویندوز می‎خواهید کار مهمی انجام دهید نمایش داده می‎شود ، روی مک هم یک پنجره امنیتی باز می شود که لازم است تا روی OK کلیک کنید .

در لینوکس قصه دراماتیک تر است ، کارها بدون دسترسی درست خیلی غیر عادی خواهند شد ، فایل کانفیگ مهمی که آنرا ویرایش کرده اید ممکن است بدرستی ذخیره نشود ، برنامه ای که نصب کردید به سادگی از اجرا سر باز خواهد زد . آن سورس کد فوق العاده ای که دانلود کرده اید و باید کامپایل شود ، نخواهد شد ! و در همه اینها خیلی خوش شانس هستید اگر پیام Access Denied و یا پیامهای دوستانه شبیه این را دریافت کنید ، تمام ترسهای شما در محیط لینوکس به واقعیت تبدیل خواهد شد ، اما خوب فقط کافی است برای کاری که میخواهید انجام دهید اجازه بگیرید ! برای همین است که لازم است به حاطر بسپارید برای اجرا یهمه دستورات نیازمند دسترسی سطح بالا از SUDO استفاده کنید ، مثلا :

sudo reboot

در تصویر زیر مشاهده میکنید که وقتی این دستور را بدون SUDO اجرا کنید چه خواهد شد

پیشنهاد می‎کنیم بخوانید:
آموزش نصب رابط کاربری GNOME روی CentOS 7

reboot

ابتدا دستور ریبوت بدون درخواست دسترسی اجرا شد و دستور بدون موفقیت با خطای must be superuse متوقف شد ، اما وقتی که آن را بصورت sudo reboot اجرا می کنیم ، ابتدا از شما پسورد اکانت را خواهد پرسید ( اکانتی که با آن وارد سرور شده اید و در نهایت هم یک پیام را برای همه کاربران لاگین کرده در سرور ارسال میکند که سرور در زمان مشخص شده ریبوت خواهد شد ، دستور SUDO مثل گفتن کلمه جادویی است ، سم سام باز شو….. یا اجی مجی لا ترجی 🙂

چرا SUDO بهتر از جایگزین های آن است

SUDO بهترین و امن‎ترین دسترسی سطح بالا است ، بزارید یه نگاهی به روش های دیگر انجام کارها بپردازیم ،

دستور SU از شما برای پسورد روت سوال کرده و به شما محیط root در شل که با # شروع می‎شود را خواهد داد

علامت # در محیط Bash یعنی خطر ،  شما با یوزر root وارد شده اید

اولین دستروی که اجرا میکنید ممکن است به خوبی اجرا شود  ،اما وقتی که با روت وارد می شوید و فراموش میکنید فقط یک اشتباه تایپی  و بعد بووووم ! کل هارد دیسک را پاک کردید بجای اینکه یک فایل mp3 یا PHP که با اکانت خود دانلود کرده اید را داشته‎اید پاک شود .

فرزند شما دوست دارد با دکمه های لپ تاپ بازی کند ، بوووووووم ! وب سرور و کسب کار سازمان شما دود می شود !

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

 فایل Suderos

این فایل همه چیز SUDO است . این فایل است که تعیین می‎کند چه کسی میتواند به سطح دسترسی بالاتر دست پیدا کند .

پیشنهاد می‎کنیم بخوانید:
کالی لینوکس چیست؟ چرا Kali در تست نفوذ اهمیت دارد

این فایل معمولا در مسیر

/etc/sudoers

قراردارد ، بهترین و امنترین روش برای ویرایش این فایل دستور visudo است ، این دستور ویرایشگر vi را با دسترسی سطح بالا اجرا می کند تا بتوانید فایل را ورایش و ذخیره کنید ، همچنین همزمان یک قفل روی فایل sudoers ست می‎کند تا شخص دیگری نتواند آن را ویرایش کند ، به محض تمام شدن کار شما در فایل آنرا برای خطایهای پایه ای بررسی خواهد کرد ، این کار بسیار امن تر از ویرایش فایل با ادیتورهای معمولی مانند vi, vim , nano است

فایل sudoers حاوی پارامترهای زیادی است ، میتوانید تعیین کنید کدام یوزر در کدام گروه میتواند چه دستوری را اجرا کند ، با متن زیر میتوانیم به سادگی به خودمان امکان دسترسی به sudo را بدهیم

username   ALL=(ALL)       ALL //gives user "username" sudo access
%wheel     ALL=(ALL)       ALL //Gives all users that belong to the wheel group sudo access

در انتهای فایل سودوئر ها این خطها را اضافه کنید ، با این دستور کاربر مشخص شده میتواند همه دسترسی های کاربر root را داشته باشد. همچنین میتوانید تعیین کنید که sudo برای کاربر یا گروه خاص صرفا دستورات و سرویسهای خاصی را دسترسی داشته باشد . در خط بالا بجای پارامتر ALL باید این مقادیر را مشخص کنید ، این موضع در مقاله دیگری آموزش داده خواهد شد.

آپشنهای SUDO

مثل هر دستور خوب دیگری سودو هم با برخی آپشنهای کمک کننده همراه است

sudo -b دستور را در بک گراند اجرا میکند  ، این برای دستوراتی که خروجی زیادی روی صفحه پرینت میکنند کاربردی است

sudo -s محیط شل را با دسترسی سطح بالاتر اجرا و به شما پرامت # را میدهد ( بالاتر توضیح دادم ) فرامشو نکنید از این محیط خارج شوید

sudo su شما را کاربر root میکند و متغیر های محیط کاربری شما را لود می‎کند.

حتما متوجه اهمیت SUDO شده اید.

sudo یک محیط امن با دسترسی بالاتر در اختیار ما می‎گذارد ، ین دستور احتمالا پرکاربرد ترین پیش دستور و دستور در میان کاربارن ubuntu است ، به دلیل اینکه روش پیش فرض اجرای دستورات در این توزیع است حالا که قدرت را بدرست آوردید با آن آشنا شدید ، در زماناجرای دستورات مراقب باشید ، دستوری به اسم SU-UNDO نداریم !

4.2/5 - (39 امتیاز)
۲ دیدگاه‎‎ها
  1. محمد مهدی کریمی می‎گوید

    یه سوال من الان میزنم این دستور sudo بعد ازم پسورد می خاد هرچی سعی می کنم پسورد رو وارد کنم تایپ کنم جلوش نمی شه الان چی کار کنم خدایی همون اکانت روت بهتر نبود این جوری داره لینوکس میره سمت سیستم عامل ویندوز که واسه انجام هر کاری ازت تاییدیه می خاد اگه ام کانش هست و راه حلی برا این مشکل هست لطفا تماس بگیرید خیلی تشکر ۰۹۱۰۴۹۶۲۰۸۵

    1. مهران می‎گوید

      سیستم عامل لینوکس بسیار دقیق و حساس است و اگر ندانید چه دستوری را میزنید میتواند به حذف با بروز مشکل برای کل سیستم عامل و داده ها منتهی شود
      برای همین بصورت پیشفرض در زدن دستورات مهم و خارج از چهارچوب دسترسی کاربر عادی استافده از SUDO لازم است ، البته با زدن یک بار پسورد تا مدتی دیگر از شما پسورد پرسیده نخواهد شد
      همجنین میتوانید با دستور sudo -i کاربری خود را به root تغییر داده و هر دستوری را بدون محدودیت بزنید

دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید