فروردین ۳ ۱۳۹۴

visudo، ویرایش sudoers

سلام. قبل از شروع این مطلب، سال جدید رو به شما تبریک می‌گم و امیدوارم سال ۱۳۹۴ همراه با سلامتی و موفقیت برای شما و خانوادتون باشه.

یه عکس که بی‌ربط نیست به موضوع مطلبمون و سال نو!

یه عکس که بی‌ربط نیست به موضوع مطلبمون و سال نو!

تو این پست قصد دارم نحوه‌ی ویرایش فایل sudoers با visudo رو آموزش بدم. توی مطلب «sudo چیست؟» دیدید که sudo برای اجرای دستوراتی استفاده میشه که ما اجازه اجرای اون‌ها رو نداریم؛ مثل دستور apt-get در دبیان و اوبونتو که برای اجرا نیاز به دسترسی روت داره و ما می‌تونیم با دستور sudo apt-get و دادن پسورد خودمون اون رو اجرا کنیم.

یکم جلوتر بریم و توی پست «اجرای دستور سودو بدون پسورد» دیدید که ما نیاز داشتیم بعضی از دستورات رو بدون نیاز به دادن پسورد اجرا کنیم. مثلا sudo apt-get رو که وارد کردیم دیگه نیاز به وارد کردن پسورد نباشه و بدون دریافت پسورد اجرا بشه. توی اون پست یه روش مبتدیانه و خطرناک گفتم اما قول دادم که روش اصولی رو آموزش بدم که حالا به قولم وفا کردم!

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

حالا که می‌دونیم با ویرایش sudoers چه کارهایی میشه انجام داد بیایم یه توضیحی درباره اون بدیم. فایل sudoers معمولا توی شاخه /etc هست و یک فایل متنی با ساختار مشخص هست که پیکربندی sudo محسوب میشه و دستور sudo با توجه به محتوای این فایل دسترسی‌ها رو تست و اعمال می‌کنه. برای ویرایش این فایل می‌تونید مستقیم فایل رو پیدا کنید و با هر ویرایشگری که خواستید ویرایش کنید یا اینکه از دستور visduo استفاده کنید که به معنی باز کردن فایل sudoers با ویرایشگر vi هست و این فایل رو با ویرایشگر پیش‌فرض شما برای ویرایش باز میکنه.

بریم سراغ ویرایش فایل sudoers.

ساختار این فایل از دو نوع دستور ایجاد شده. مورد اول برای مشخص کردن تنظیمات پیش‌فرض هست؛ مثل اینکه با وارد کردن پسورد چه زمانی طول بکشه تا دوباره این نشست منقضی بشه و دوباره نیاز به وارد کردن پسورد باشه یا ویرایشگر پیشفرض visudo چی باشه و … . اما مورد دوم همین دسترسی‌ها هست که دربارش صحبت کردیم.

واسه اینکه هم مثالی برای مورد اول بشه و هم اینکه در تست‌های بعدی راحت باشیم این خط رو به فایل sudoers اضافه کنید.

Defaults:ALL timestamp_timeout=0

این خط می‌گه که زمان انقضای پسورد ۰ باشه؛ یعنی برای هر بار استفاده از دستور sudo نیاز به دادن پسورد باشه (اگه نیاز بود). به صورت پیشفرض این زمان معمولا ۱۵ دقیقه هست؛ یعنی اینکه با اجرای دستوری مثل sudo apt-get و دادن پسورد، تا ۱۵ دقیقه دیگه نیاز به وارد کردن پسورد نیست (در همین نشست) و اگه دستور sudo apt-get رو تو این بازه زمانی اجرا کنیم بدون نیاز به دادن پسورد اجرا میشه.

  • این تنظیم برای ادامه آموزش نیاز هست تا کار شما راحت‌تر باشه و اگر این مورد رو فعال نکردید باید بعد از هر بار که پسورد رو وارد کردید دستور sudo -K رو وارد کنید تا زمان منقضی بشه و برای اجرای دوباره sudo نیاز به دادن پسورد باشه. این کار رو انجام می‌دیم که تفاوت تنظیماتی که در ادامه انجام می‌دیم رو با حالت عادی احساس کنید.

  • اگر این تنظیم رو انجام دادید بعد از تست این مطلب اون رو حذف کنید.

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

و مورد دوم. فرض کنید من فایلی به نام test.sh با محتوای echo ‘Linuxihaa’ می‌سازم و دسترسی اون رو ۷۰۰ قرار می‌دم.

$ echo "echo 'Linuxihaa'" > test.sh
$ chmod 700 test.sh

حالا اگه فایل رو اجرا کنید متن خروجی رو مشاهده می‌کنید.

$ ./test.sh
Linuxihaa

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

$ sudo chown root test.sh

حالا دوباره فایل رو اجرا کنید تا مشاهده کنید که قادر به اجرای اون نیستید.

$ ./test.sh
-bash: ./test.sh: Permission denied

می‌دونیم که با اجرای دستور sudo ./test.sh و دادن پسورد این فایل اجرا میشه اما برای اینکه پسورد نخواد خط زیر رو به فایل sudoers اضافه کنید. توجه کنید که بجای YOUR_USERNAME، نام کاربری خودتون و بجای FILE_PATH آدرس فایل test.sh رو به صورت کامل بنویسید.

YOUR_USERNAME ALL=(ALL) NOPASSWD: FILE_PATH

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

خب این مثال تموم شد اما بیایم ببنیم ساختار کلی اعطای مجوز در فایل sudoers چطور هست؟

ساختار هر خط تقریبا به شکل زیر هست.

[USERNAME / %GROUPNAME] [MACHINE]=(USER) <NOPASSWD:> [PATH] [ARGUMENTS]
  • در بخش اول می‌تونید یک نام کاربری یا گروه کاربری (برای گروه کاربری باید اول نام گروه کاراکتر % قرار بدید) بنویسید.
  • در بخش دوم
    • ابتدا نام ماشینی که مجوز در اون اعطا میشه رو وارد می‌کنید (می‌تونید نام ماشین خودتون رو بنویسید) و یا ALL می‌نویسید تا برای همه ماشین‌ها باشه.
    • سپس نام یوزی که میشه با اون اجرا بشه رو وارد می‌کنید یا ALL می‌نویسید تا محدودیتی نباشه. این مورد برای دستور sudo -u USERNAME استفاده میشه.
  • در بخش سوم یا می‌نویسید NOPASSWD: تا نیاز به وارد کردن پسورد نباشه یا چیزی نمی‌نویسید تا پسورد نیاز باشه.
  • در بخش چهارم مسیر فایل دستور یا فایل‌های خودتون رو وارد می‌کنید. میتونه یه فایل خاص باشه یا فایل‌های داخل یه شاخه خاص. همچنین می‌تونید بعد از نام فایل، آرگومان‌های مشخصی رو هم بنویسید تا اون دستور فقط با اون آرگومان‌ها قابل دسترس باشه.

  • اگه چند آرگومان با نام مشابه هست می‌تویند از * استفاده کنید. مثلا up* آرگومان‌های update و upgrade رو شامل میشه.

  • می‌تونید چندتا مسیر رو با دادن , از هم جدا کنید و مجوز به همشون اعمال بشه.

نکته دیگری هست خوشحال میشم شما بگید یا بپرسید تا جواب داده بشه.

موفق باشید.

  • تصویر شاخص از ۴٫bp.blogspot.com

اسفند ۲۸ ۱۳۹۳

آموزش نصب نرم افزار ردهت بر روی اوبونتو

آموزش نصب نرم افزار ردهت بر روی اوبونتو-آموزش نصب نرم افزار اوبونتو بر روی رد هت،تبدیل نرم افزار اوبونتو به ردهت،آموزش تبدیل rpm به deb ، آموزش تبدیل فایل آرپی ام به فایل .دب،نصب نرم افزار ردهت بر روی اوبونتو،چگونه نرم افزار رد هت  را بر روی اوبونتو نصب کنیم در این آموزش می خواهیم […]

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


اسفند ۲۷ ۱۳۹۳

معرفی دانلود منیجر xdm برای لینوکس

قطعا با نرم افزار IDM آشنا هستید! نرم افزاری که جهت دانلود فایل استفاده می شود و از محبوبیت بالایی در بین کاربران ویندوز برخورد می باشد. در این تصمیم داریم که تا کاربران لینوکس را با دانلود منیجر متفاوتی آشنا کنیم که کم از IDM ندارد. پس با ما همراه باشید. Xtreme Download Manager […]

نوشته معرفی دانلود منیجر xdm برای لینوکس اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۷ ۱۳۹۳

معرفی موزیک پلیر DeaDBeeF برای لینوکس

در این مطلب میخواهیم پلیر DeaDBeeF را معرفی کنم؛ یک موزیک پلیر سبک و کاربردی برای کسانی که می‌خواهند بدون دردسر در محیط لینوکس آهنگ گوش کنند! موزیک‌پلیرهای مختلفی برای لینوکس موجود هست که هر کدام امکانات خاص خودشان را دارند؛ مانند Amarok که همراه میزکار کی‌دی‌ای است و Rhythmbox که همراه میزکار گنوم و یونیتی است […]

نوشته معرفی موزیک پلیر DeaDBeeF برای لینوکس اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۷ ۱۳۹۳

اجرای دستورات شل بدون نیاز به پسورد root

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

نوشته اجرای دستورات شل بدون نیاز به پسورد root اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۴ ۱۳۹۳

آموزش دانلود و نصب فایل های RPM در لینوکس

از کاربران سیستم عامل لینوکس باشید – حتما می دانید که می توانید نرم افزارها را از طریق ترمینال اقدام به دانلود و نصب آنها کرد. همان طور که می دانید دستور yum بسته های نرم افزاری را از مخازن نرم افزاری دانلود و نصب می نماید در بعضی شرایط ما نیاز به یک بسته نرم […]

نوشته آموزش دانلود و نصب فایل های RPM در لینوکس اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۳ ۱۳۹۳

روش فعال کردن کاربر root در اوبونتو

بعد از انجام نصب اوبونتو اگر به فکر اعتمال تغییرات اساسی باشید، متوجه خواهید شد که دسترسی برای انجام عملیات را ندارید. دلیل این موضوع فعال نبودن کاربر root می باشد. کاربر روت در لینوکس همانند Administrator در ونیدوز می باشد و از بالاترین سطح دسترسی برخوردار است. مرحله اول: تنظیم پسوورد برای root $ […]

نوشته روش فعال کردن کاربر root در اوبونتو اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۳ ۱۳۹۳

اصطلاحات رایج در لینوکس

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

نوشته اصطلاحات رایج در لینوکس اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۳ ۱۳۹۳

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

وایبر نام برنامه ای است که امروزه خیلی ها از آن استفاده می کنند. فرقی ندارد که شخص برای تفریح از آن استفاده کند یا قرارهای کاری ، در همه حال اسنفاده از این نرم افزار که برای تلفن های هوشمند ایجاد شده است رو به افزایش است. در این بین شاید دوست داشته باشید […]

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


اسفند ۲۳ ۱۳۹۳

آموزش نصب PHP بر روی لینوکس

PHP نام زبان برنامه نویسی سمت سرور می باشد که امروزه یکی از محبوب ترین زبان های برنامه نویسی تحت وب نیز محسوب می شود. به طوری که میلیون وب سایت با این زبان راه اندازی شده اند. برای اینکه کدهای PHP بر روی سرور کار کنند و سیستم آنها را به صورت فایل های […]

نوشته آموزش نصب PHP بر روی لینوکس اولین بار در آموزش لینوکس پدیدار شد.


اسفند ۲۳ ۱۳۹۳

آموزش نصب MySQL در لینوکس

اگر تا کنون وب سایت راه اندازی کرده باشید، قطعا نام Mysql را نیز شنیده اید و به احتمال زیاد از آن نیز استفاده کرده اید. Mysql نام پایگاه داده ای است که بر روی اکثر هاست های لینوکس به صورت پیشفرض نصب می باشد. حال اگر خودتان تمایل به راه اندازی این سرویس بر روی سیستم لینوکسی […]

نوشته آموزش نصب MySQL در لینوکس اولین بار در آموزش لینوکس پدیدار شد.