نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

ممکن است که برای برخی از شما نیز پیش آمده باشد که نیاز به ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS داشته باشید. در این مطلب می خواهیم به آموزش نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS برای شما کاربران عزیز بپردازیم. امیدواریم این مقاله برای شما کاربردی باشد. با ما همراه باشید.

ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

تفکیک سطوح دسترسی یکـی از مهم ترین الگوهای امنیتی اجرا شده در لینوکس و سیستم عامل های شبه یونیکس می باشد. دسترسی کاربران عادی به منظور کم شدن دامنه نفوذشان به سیستم عامل، محدود می شود . کاربر ویژه، که روتگفته می شود به عنوان یک super user از دسترسی های جامعی برخوردار است و در واقع یک اکانت اجرایی و مدیریتی حساب می شود . کاربران خواهندتوانـست دستورات را با شیوه های گوناگون با دسترسی کاربر روت اجرا کنند.

در این مقاله، شیوه درست و مطمئن به دست آوردن دسترسی کاربر روت را با ویرایش فایل  /etc/sudoers آموزش خواهیم داد. این وهله ها روی یک VPS اوبونتو انجام می شود ، ولی معـمولاً توزیع های جدید لینوکس هم ، به شیوه ی همانـند عمل می کنند.

فرض میکنیم که شما هم اکنون راه اندازی اولیه سرور را به انتهـا رسانده اید. با کاربر عادی و غیر روت خود وارد VPS شوید.

چگونگی دست یابی به دسترسی روت

سه راه مهم برای به دست آوردن دسترسی کاربر روت وجود دارد:

داخل به سیستم به عنوان کاربر روت

آسان ترین و مستقیم ترین شیوه برای به دست آوردن دسترسی روت، این است که در ابتدا به عنوان کاربر روت به VPS خود وارد شوید.

اگر از دکمه “Console Access”  در droplets page بهره گیری مینمایید ، زمانـی که از شما خواسته شد به آسانی اسم کاربری و پسورد روت را وارد نمایید .

ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

آموزش ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

اگر از طریق سیستم SSH وارد شوید، پیش از آدرس IP یا نام دامین ، نام کاربر روت را وارد نمایید :

ssh root@your_IP_address_or_domain

1ssh root@your_IP_address_or_domain

سپس وقتی از شما خواسته شد پسورد روت را وارد نمایید .

بهره گیری از “su” برای مبدل شدن به کاربر روت 

داخل به سیستم به عنوان کاربر روت اغلب توصیه نمی شـود ، چرا که توانایی انجام کارهای غیراجرایی و تهدیدکننده با بهره گیری از این کاربر وجود دارد.

راه بعدی برای به دست آوردن این دسترسی ، بهره گیری از دستور “su” است که مخفف substitute user می باشد.

su

1su

بعد از انجام این دستور می بایست پسورد کاربر روت را وارد نمایید . زمانـی که کارهای اجرایی نیازمند به دسترسی روت ، به انتهـا رسید با انجام دستور پایین به shell عادی خود بازگردید :

exit

1exit

بهره گیری از “sudo” برای انجام دستورات به عنوان کاربر روت

بهره گیری از دستور sudo برای به دست آوردن دسترسی کاربر روت، آخرین و مبهم ترین راه می باشد. این دستور به شما اجازه خواهـد داد تا دستورات را بدون نیاز به وارد شدن به یک پوسته دیگر  با دسترسی کاربر روت اجرا نمایید :

sudo command_to_execute

1sudo command_to_execute

بر خلاف su ، دستور sudo پسورد کاربری که دستور را فراخوانی کرده است، تقاضـای می کند ( نه پسورد کاربر روت )

ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

 

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

در ادامه، چگونگی تهیه تغییر در تنظیمات را با جزئیات زیـادتر توضیح خواهیم داد :

Visudo

دستور sudo از طریق فایلی که در /etc/sudoers  واقع شده ، پیکربندی می شود .

نکته: هیچوقت این فایل را با یک ادیتور معمولی ویرایش ننمایید و همیشه از دستور visudo بهره گیری نمایید !

از آنجا که تنظیمات نادرست فایل sudoers خواهـد توانست دسترسی شما را به سیستم قطع نماید ، پس بهره گیری از دستور visudo برای ویرایش فایل ضـروری می باشد.

دستور visudo بطور پیشفرض این فایل را با بهره گیری از ادیتور ” vi ” باز می کند و پـس از تایید ،  تغییرات در فایل ذخیره می شود . هرچند که لینوکس اوبونتو به گونه ای پیکربندی شده که visudo از ادیتور “nano” بهره گیری نماید . برای تغییر آن به ادیتور “vi” دستور پایین را اجرا نمایید :

sudo بروزرسانی -alternatives –config editor

1sudo بروزرسانی -alternatives –config editor

There are 3 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ———————————————————— * 0 /bin/nano 40 auto mode 1 /bin/nano 40 manual mode 2 /usr/bin/vim.basic 30 manual mode 3 /usr/bin/vim.tiny 10 manual mode

1

2

3

4

5

6

7

8

There are 3 choices for the alternative editor (providing /usr/bin/editor).

Selection    Path                Priority   Status

————————————————————

* 0            /bin/nano            40        auto mode

1            /bin/nano            40        manual mode

2            /usr/bin/vim.basic   30        manual mode

3            /usr/bin/vim.tiny    10        manual mode

شماره مورد نظـر خود را گزینش نمایید .

در لینوکس CentOS، شما خواهید توانست این مقدار را با افـزودن خط پایین به ~/.bashrc  تغییر دهید:

export EDITOR=/path/to/editor

1export EDITOR=/path/to/editor

مأخذ فایل برای انجام تغییرات:

. ~/.bashrc

1. ~/.bashrc

بعد از تنظیمات visudo ، برای دسترسی به فایل /etc/sudoers دستور پایین را اجرا نمایید :

sudo visudo

1sudo visudo

 آموزش نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS

ویرایش فایل Sudoers 

شما خواهید توانست فایل را با بهره گیری از ادیتور گزینش شده خود باز نمایید . خطوط پایین از فایل  sudoers در  اوبونتو رونوشـت شده ، این فایل در CentOS  حاوی خطوط زیادتری بوده که در این آموزش دربـاره آنان گفتگو نخواهیم نمـود :

Defaults env_reset Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin” root ALL=(ALL:ALL) ALL demo ALL=(ALL:ALL) ALL %admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL

1

2

3

4

5

6

7

8

9

Defaults        env_reset

Defaults        secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”

root        ALL=(ALL:ALL) ALL

demo        ALL=(ALL:ALL) ALL

%admin      ALL=(ALL) ALL

%sudo       ALL=(ALL:ALL) ALL

توضیحات خطوط 

demo  ALL=(ALL:ALL) ALL

این فیلد، نام کاربری با دسترسی sudo را نشان میدهد .

demo    ALL=(ALL:ALL) ALL

نخستین “ALL” نشان خواهـد داد که این قانون در همـه هاست ها اعمال شده می باشد.

demo     ALL=(ALL:ALL) ALL

این “ALL” نشان خواهـد داد که کاربر demo  می تواند دستورات را مثل تمام کاربران اجرا نماید .

demo     ALL=(ALL:ALL) ALL

این “ALL” نشان خواهـد داد که کاربر demo  می تواند دستورات را مثل همه تیـم ها اجرا نماید .

demo     ALL=(ALL:ALL)ALL

آخرین “ALL” نشان خواهـد داد که این قوانین به تمام دستورات اعمال می شـود .

این بدان معناست که “”root و “demo” تا وقـت عرضه پسورد خود،  خواهندتوانـست هر دستوری را با بهره گیری از sudo اجرا کنند.

دو خط پـایان قوانین، دستور sudo را برای تیـم معیـن می کند . نامی که که “٪”  شروع گـردد نشانگر نام تیـم است .

تنظیم قوانین دلخواه

  1. ایجاد نام های مستعار

فایل sudoer خواهـد توانست با تیـم بندی  با اقسام گوناگون نام های مستعار به آسانـی سازماندهی شود. به عنوان مثال، ما می توانیم سه تیـم گوناگون از کاربرانی که با همدیـگر تداخل عضویت دارند را تهیه کنیم :

User_Alias GROUPONE = abby, brent, carl User_Alias GROUPTWO = brent, doris, eric, User_Alias GROUPTHREE = doris, felicia, grant

1

2

3

User_Alias      GROUPONE = abby, brent, carl

User_Alias      GROUPTWO = brent, doris, eric,

User_Alias      GROUPTHREE = doris, felicia, grant

اسم تیـم می بایست با حروف بزرگ آغاز شود.

خواهید توانست با تهیه قانون پایین به اعضای GROUPTWO اجازه دهید دیتابیس apt-get را بروزرسـانی کنند:

GROUPTWO ALL = /usr/bin/apt-get بروزرسانی

1GROUPTWO    ALL = /usr/bin/apt-get بروزرسانی

اگر شبیه دستور فوق، یک کاربر یا تیـم برای انجام دستور معیـن نشود، sudo از کاربر پیش فرض خود یعنی روت بهره گیری می کند . به این ترتیب برای تیـم های دیگر هم خواهید توانست قانون تهیه نمایید . مد نظر داشته باشید که چنان چه قوانین تازه با قوانین قبلی تداخل داشته باشد آن را خنثی خواهد کرد.

  1. مدیریـت زیـادتر انجام دستورات :

راه هایی وجود دارد که با بهره گیری از آن خواهید توانست مدیریـت زیادتری بر روی روش واکنش sudo به فراخوانی دستور داشته باشید

دستور بروزرسانی db  نسبتا بی تهدید است و چنان چه بخواهید به کاربران اجازه دهید برای انجام آن با دسترسی روت، نیازی به وارد کردن پسورد ندارد ه باشند، قانون پایین را اجرا نمایید :

GROUPONE ALL = NOPASSWD: /usr/bin/بروزرسانی db

1GROUPONE    ALL = NOPASSWD: /usr/bin/بروزرسانی db

NOPASSWD  تگی است که معیـن می کند هیچ پسوردی برای انجام دستور ضـروری نیست . چنان چه که بخواهید برای دستوری ، وارد کردن پسورد را اجباری نمایید از تگ PASSWD بهره گیری نمایید   . به خط پایین توجه نمایید :

GROUPTWO ALL = NOPASSWD: /usr/bin/بروزرسانی db, PASSWD: /bin/kill

1GROUPTWO    ALL = NOPASSWD: /usr/bin/بروزرسانی db, PASSWD: /bin/kill

یکـی دیگر از تگ های سودمند “NOEXEC” است که خواهـد توانست برای ممانعـت از بعضـی از رفتارهای تهدید ساز در برنامه های ویـژه مثل ” less”   بهره گیری می گـردد :

username ALL = NOEXEC: /usr/bin/less

1username    ALL = NOEXEC: /usr/bin/less

به یاد داشته باشید که دسترسی کاربر روت به کاربران عادی داده نشده و شما پیش از دادن دسترسی می بایست با هر دستوری که با این دسترسی اجرا می شود آشنایی داشته باشید . شما می بایست زیبا تری ن شیوه برای بهره گیری از این ابزارها و روش محدود کردن عمکرده ای غیر لازم و ضـروری را یاد بگیرید.

از توجه و همراهی شما با مقاله آموزشی نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS سپاسگزاریم. برای مشاهده اطلاعات بیشتر در این زمینه با سایر مقالات این سایت همراه باشید.