نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS
ممکن است که برای برخی از شما نیز پیش آمده باشد که نیاز به ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS داشته باشید. در این مطلب می خواهیم به آموزش نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS برای شما کاربران عزیز بپردازیم. امیدواریم این مقاله برای شما کاربردی باشد. با ما همراه باشید.
تفکیک سطوح دسترسی یکـی از مهم ترین الگوهای امنیتی اجرا شده در لینوکس و سیستم عامل های شبه یونیکس می باشد. دسترسی کاربران عادی به منظور کم شدن دامنه نفوذشان به سیستم عامل، محدود می شود . کاربر ویژه، که روتگفته می شود به عنوان یک super user از دسترسی های جامعی برخوردار است و در واقع یک اکانت اجرایی و مدیریتی حساب می شود . کاربران خواهندتوانـست دستورات را با شیوه های گوناگون با دسترسی کاربر روت اجرا کنند.
در این مقاله، شیوه درست و مطمئن به دست آوردن دسترسی کاربر روت را با ویرایش فایل /etc/sudoers آموزش خواهیم داد. این وهله ها روی یک VPS اوبونتو انجام می شود ، ولی معـمولاً توزیع های جدید لینوکس هم ، به شیوه ی همانـند عمل می کنند.
فرض میکنیم که شما هم اکنون راه اندازی اولیه سرور را به انتهـا رسانده اید. با کاربر عادی و غیر روت خود وارد VPS شوید.
چگونگی دست یابی به دسترسی روت
سه راه مهم برای به دست آوردن دسترسی کاربر روت وجود دارد:
داخل به سیستم به عنوان کاربر روت
آسان ترین و مستقیم ترین شیوه برای به دست آوردن دسترسی روت، این است که در ابتدا به عنوان کاربر روت به VPS خود وارد شوید.
اگر از دکمه “Console Access” در droplets page بهره گیری مینمایید ، زمانـی که از شما خواسته شد به آسانی اسم کاربری و پسورد روت را وارد نمایید .
آموزش ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS
اگر از طریق سیستم SSH وارد شوید، پیش از آدرس IP یا نام دامین ، نام کاربر روت را وارد نمایید :
ssh root@your_IP_address_or_domain
1 | ssh root@your_IP_address_or_domain |
سپس وقتی از شما خواسته شد پسورد روت را وارد نمایید .
بهره گیری از “su” برای مبدل شدن به کاربر روت
داخل به سیستم به عنوان کاربر روت اغلب توصیه نمی شـود ، چرا که توانایی انجام کارهای غیراجرایی و تهدیدکننده با بهره گیری از این کاربر وجود دارد.
راه بعدی برای به دست آوردن این دسترسی ، بهره گیری از دستور “su” است که مخفف substitute user می باشد.
su
1 | su |
بعد از انجام این دستور می بایست پسورد کاربر روت را وارد نمایید . زمانـی که کارهای اجرایی نیازمند به دسترسی روت ، به انتهـا رسید با انجام دستور پایین به shell عادی خود بازگردید :
exit
1 | exit |
بهره گیری از “sudo” برای انجام دستورات به عنوان کاربر روت
بهره گیری از دستور sudo برای به دست آوردن دسترسی کاربر روت، آخرین و مبهم ترین راه می باشد. این دستور به شما اجازه خواهـد داد تا دستورات را بدون نیاز به وارد شدن به یک پوسته دیگر با دسترسی کاربر روت اجرا نمایید :
sudo command_to_execute
1 | sudo command_to_execute |
بر خلاف su ، دستور sudo پسورد کاربری که دستور را فراخوانی کرده است، تقاضـای می کند ( نه پسورد کاربر روت )
به عـلت ها امنیتی، sudo بطور پیش فرض کار نمی کند و پیش بهره گیری از آن ، توابع می بایست به درستی تنظیم شوند. چنان چه مقاله راهنمای راه اندازی اولیه سرور را مطالعه کرده باشید، این وهله را انجام داده اید.
در ادامه، چگونگی تهیه تغییر در تنظیمات را با جزئیات زیـادتر توضیح خواهیم داد :
Visudo
دستور sudo از طریق فایلی که در /etc/sudoers واقع شده ، پیکربندی می شود .
نکته: هیچوقت این فایل را با یک ادیتور معمولی ویرایش ننمایید و همیشه از دستور visudo بهره گیری نمایید !
از آنجا که تنظیمات نادرست فایل sudoers خواهـد توانست دسترسی شما را به سیستم قطع نماید ، پس بهره گیری از دستور visudo برای ویرایش فایل ضـروری می باشد.
دستور visudo بطور پیشفرض این فایل را با بهره گیری از ادیتور ” vi ” باز می کند و پـس از تایید ، تغییرات در فایل ذخیره می شود . هرچند که لینوکس اوبونتو به گونه ای پیکربندی شده که visudo از ادیتور “nano” بهره گیری نماید . برای تغییر آن به ادیتور “vi” دستور پایین را اجرا نمایید :
sudo بروزرسانی -alternatives –config editor
1 | sudo بروزرسانی -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
1 | export EDITOR=/path/to/editor |
مأخذ فایل برای انجام تغییرات:
. ~/.bashrc
1 | . ~/.bashrc |
بعد از تنظیمات visudo ، برای دسترسی به فایل /etc/sudoers دستور پایین را اجرا نمایید :
sudo visudo
1 | sudo 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 را برای تیـم معیـن می کند . نامی که که “٪” شروع گـردد نشانگر نام تیـم است .
تنظیم قوانین دلخواه
- ایجاد نام های مستعار
فایل 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 بروزرسانی
1 | GROUPTWO ALL = /usr/bin/apt-get بروزرسانی |
اگر شبیه دستور فوق، یک کاربر یا تیـم برای انجام دستور معیـن نشود، sudo از کاربر پیش فرض خود یعنی روت بهره گیری می کند . به این ترتیب برای تیـم های دیگر هم خواهید توانست قانون تهیه نمایید . مد نظر داشته باشید که چنان چه قوانین تازه با قوانین قبلی تداخل داشته باشد آن را خنثی خواهد کرد.
- مدیریـت زیـادتر انجام دستورات :
راه هایی وجود دارد که با بهره گیری از آن خواهید توانست مدیریـت زیادتری بر روی روش واکنش sudo به فراخوانی دستور داشته باشید
دستور بروزرسانی db نسبتا بی تهدید است و چنان چه بخواهید به کاربران اجازه دهید برای انجام آن با دسترسی روت، نیازی به وارد کردن پسورد ندارد ه باشند، قانون پایین را اجرا نمایید :
GROUPONE ALL = NOPASSWD: /usr/bin/بروزرسانی db
1 | GROUPONE ALL = NOPASSWD: /usr/bin/بروزرسانی db |
NOPASSWD تگی است که معیـن می کند هیچ پسوردی برای انجام دستور ضـروری نیست . چنان چه که بخواهید برای دستوری ، وارد کردن پسورد را اجباری نمایید از تگ PASSWD بهره گیری نمایید . به خط پایین توجه نمایید :
GROUPTWO ALL = NOPASSWD: /usr/bin/بروزرسانی db, PASSWD: /bin/kill
1 | GROUPTWO ALL = NOPASSWD: /usr/bin/بروزرسانی db, PASSWD: /bin/kill |
یکـی دیگر از تگ های سودمند “NOEXEC” است که خواهـد توانست برای ممانعـت از بعضـی از رفتارهای تهدید ساز در برنامه های ویـژه مثل ” less” بهره گیری می گـردد :
username ALL = NOEXEC: /usr/bin/less
1 | username ALL = NOEXEC: /usr/bin/less |
به یاد داشته باشید که دسترسی کاربر روت به کاربران عادی داده نشده و شما پیش از دادن دسترسی می بایست با هر دستوری که با این دسترسی اجرا می شود آشنایی داشته باشید . شما می بایست زیبا تری ن شیوه برای بهره گیری از این ابزارها و روش محدود کردن عمکرده ای غیر لازم و ضـروری را یاد بگیرید.
از توجه و همراهی شما با مقاله آموزشی نحوه ویرایش فایل Sudoers در لینوکس Ubuntu و CentOS سپاسگزاریم. برای مشاهده اطلاعات بیشتر در این زمینه با سایر مقالات این سایت همراه باشید.