از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
دستورات لینوکس برای مبتدیان – SUDO
SUDO در لینوکس چیست و چطور از آن استفاده کنیم
سرفصلهای مطلب
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 اجرا کنید چه خواهد شد
ابتدا دستور ریبوت بدون درخواست دسترسی اجرا شد و دستور بدون موفقیت با خطای must be superuse متوقف شد ، اما وقتی که آن را بصورت sudo reboot اجرا می کنیم ، ابتدا از شما پسورد اکانت را خواهد پرسید ( اکانتی که با آن وارد سرور شده اید و در نهایت هم یک پیام را برای همه کاربران لاگین کرده در سرور ارسال میکند که سرور در زمان مشخص شده ریبوت خواهد شد ، دستور SUDO مثل گفتن کلمه جادویی است ، سم سام باز شو….. یا اجی مجی لا ترجی 🙂
چرا SUDO بهتر از جایگزین های آن است
SUDO بهترین و امنترین دسترسی سطح بالا است ، بزارید یه نگاهی به روش های دیگر انجام کارها بپردازیم ،
دستور SU از شما برای پسورد روت سوال کرده و به شما محیط root در شل که با # شروع میشود را خواهد داد
اولین دستروی که اجرا میکنید ممکن است به خوبی اجرا شود ،اما وقتی که با روت وارد می شوید و فراموش میکنید فقط یک اشتباه تایپی و بعد بووووم ! کل هارد دیسک را پاک کردید بجای اینکه یک فایل mp3 یا PHP که با اکانت خود دانلود کرده اید را داشتهاید پاک شود .
فرزند شما دوست دارد با دکمه های لپ تاپ بازی کند ، بوووووووم ! وب سرور و کسب کار سازمان شما دود می شود !
با سودو قبل از هر دستوری مجبور به زدن sudo قبل از هر دستوری هستید ، نیاز نیست که به خاطر بسپارید تا به یوزر معمولی سویچ کنید در نتیجه حادثه های دلخراش کمتری اتفاق میافتد.
فایل Suderos
این فایل همه چیز SUDO است . این فایل است که تعیین میکند چه کسی میتواند به سطح دسترسی بالاتر دست پیدا کند .
این فایل معمولا در مسیر
/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 نداریم !
یه سوال من الان میزنم این دستور sudo بعد ازم پسورد می خاد هرچی سعی می کنم پسورد رو وارد کنم تایپ کنم جلوش نمی شه الان چی کار کنم خدایی همون اکانت روت بهتر نبود این جوری داره لینوکس میره سمت سیستم عامل ویندوز که واسه انجام هر کاری ازت تاییدیه می خاد اگه ام کانش هست و راه حلی برا این مشکل هست لطفا تماس بگیرید خیلی تشکر ۰۹۱۰۴۹۶۲۰۸۵
سیستم عامل لینوکس بسیار دقیق و حساس است و اگر ندانید چه دستوری را میزنید میتواند به حذف با بروز مشکل برای کل سیستم عامل و داده ها منتهی شود
برای همین بصورت پیشفرض در زدن دستورات مهم و خارج از چهارچوب دسترسی کاربر عادی استافده از SUDO لازم است ، البته با زدن یک بار پسورد تا مدتی دیگر از شما پسورد پرسیده نخواهد شد
همجنین میتوانید با دستور sudo -i کاربری خود را به root تغییر داده و هر دستوری را بدون محدودیت بزنید
عزیزم شما رمزت رو تایپ کن به این نگاه نکن که اون جلوش رمز شمارو نمایش نمیده در واقع برای امنیت بیشتر داره این کار رو میکنه.
شما تایپ کن و اینتر رو بزن میبینی که وارد میشه