نحوه استفاده از سودو در Debian ، CentOS و FreeBSD
استفاده از یک sudoکاربر برای دسترسی به سرور و اجرای دستورات در سطح root یک روال بسیار رایج در بین لینوکس و مدیر سیستم های یونیکس است. استفاده از sudoکاربر اغلب با غیرفعال کردن دسترسی مستقیم ریشه به سرور شخص در تلاش برای جلوگیری از دسترسی غیرمجاز همراه است.
در این آموزش مراحل اصلی غیرفعال کردن دسترسی مستقیم ریشه ، ایجاد کاربر sudo و تنظیم گروه sudo در CentOS ، Debian و FreeBSD را در اختیار شما قرار خواهیم داد.
پیش نیازها
- یک سرور تازه نصب شده لینوکس با توزیع دلخواه شما.
- ویرایشگر متن نصب شده بر روی سرور اعم از nano، vi، vim، emacs.
مرحله 1: نصب sudo
دبیان
apt-get install sudo -y
CentOS
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
یا
pkg install sudo
مرحله 2: اضافه کردن کاربر sudo
sudoکاربران یک حساب کاربری عادی بر روی یک ماشین لینوکس یا یونیکس است.
دبیان
adduser mynewusername
CentOS
adduser mynewusername
FreeBSD
adduser mynewusername
مرحله 3: اضافه کردن کاربر جدید به گروه چرخ (اختیاری)
گروه چرخ یک گروه کاربری است که تعداد افرادی که قادر suبه ریشه زدن هستند را محدود می کند. اضافه کردن sudoکاربر خود به wheelگروه کاملاً اختیاری است ، اما توصیه می شود.
توجه: در دبیان ، این sudoگروه اغلب به جای یافت می شود wheel. با این وجود می توانید wheelگروه را با استفاده از groupaddدستور به صورت دستی اضافه کنید . به منظور استفاده از این آموزش ، از sudoگروه برای دبیان استفاده خواهیم کرد.
تفاوت بین wheelو sudo.
در CentOS و Debian ، یک کاربر متعلق به wheelگروه می تواند اجرا کند suو مستقیماً به آن صعود کند root. در همین حال ، یک sudoکاربر از sudo suاولین استفاده می کند . در اصل ، هیچ تفاوت واقعی وجود ندارد به جز نحو استفاده شده برای ریشه زدن ، و کاربران متعلق به هر دو گروه می توانند از این sudoدستور استفاده کنند .
دبیان
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
مرحله 4: اطمینان حاصل کنید که sudoersپرونده شما به درستی تنظیم شده است
این مهم است که اطمینان حاصل کنید که sudoersپرونده واقع در واقع به /etc/sudoersطور صحیح تنظیم شده است sudo usersتا بتواند از این sudoدستور به طور مؤثر استفاده کند . به منظور تحقق این امر ، ما مطالب موجود را مشاهده خواهیم کرد /etc/sudoersو در صورت لزوم ویرایش می کنیم.
دبیان
vim /etc/sudoers
یا
visudo
CentOS
vim /etc/sudoers
یا
visudo
FreeBSD
vim /etc/sudoers
یا
visudo
توجه: این visudoدستور /etc/sudoersبا استفاده از ویرایشگر متن ترجیحی سیستم (معمولاً vi یا vim) باز می شود .
بررسی و ویرایش را در زیر این خط شروع کنید:
# Allow members of group sudo to execute any command
این بخش /etc/sudoersاغلب مانند این است:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
در بعضی از سیستمها ، ممکن است %wheelبه جای پیدا کردن %sudo؛ در این حالت ، این خطی خواهد بود که زیر آن اصلاح را شروع می کنید.
اگر خطی که از %sudoDebian یا %wheelCentOS و FreeBSD شروع می شود اظهار نظر نشده است (پیش شماره #) ، این بدان معنی است که sudo از قبل تنظیم شده است و فعال شده است. سپس می توانید به مرحله بعدی بروید.
مرحله 5: به کاربرانی که متعلق به گروه wheelو نه sudoگروه باشد ، اجازه اجرای sudoدستور را می دهد
این امکان وجود دارد که به یک کاربر که در هیچ گروه کاربری نیست بتواند sudoدستور را با اضافه کردن موارد /etc/sudoersزیر به صورت زیر اجرا کند:
anotherusername ALL=(ALL) ALL
مرحله 6: راه اندازی مجدد سرور SSHD
برای اعمال تغییراتی که ایجاد کرده اید /etc/sudoers، باید سرور SSHD را به شرح زیر مجدداً راه اندازی کنید:
دبیان
/etc/init.d/sshd restart
CentOS 6
/etc/init.d/sshd restart
CentOS 7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
مرحله 7: تست
بعد از راه اندازی مجدد سرور SSH ، از سیستم خارج شوید و دوباره به عنوان سیستم وارد شوید sudo userو سپس سعی کنید برخی دستورات تست را به شرح زیر اجرا کنید:
sudo uptime
sudo whoami
هر یک از دستورات زیر اجازه sudo userتبدیل شدن را می دهد root.
sudo su -
sudo -i
sudo -S
یادداشت:
- این
whoamiدستورrootهنگامی که همراه باشد ، برمی گرددsudo. - از شما خواسته می شود هنگام اجرای
sudoدستور ، رمزعبور کاربر خود را وارد کنید ، مگر اینکه صریحاً به سیستم دستور دهید تاsudo usersپسوردهای آنها را فوراً انجام ندهد . لطفا توجه داشته باشید که این یک روش توصیه شده نیست
اختیاری: اجازه sudoبدون وارد کردن رمز عبور کاربر
همانطور که قبلاً توضیح داده شد ، این یک روش توصیه شده نیست و فقط برای اهداف تظاهرات در این آموزش گنجانده شده است.
به منظور اجازه خود را sudo userبرای اجرای sudoدستور بدون اینکه برای رمز عبور خود را برانگیخت، خط دسترسی در پسوند /etc/sudoersبا NOPASSWD: ALLشرح زیر است:
%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL
توجه: برای اعمال تغییرات باید سرور SSHD خود را مجدداً راه اندازی کنید.
مرحله 8: دسترسی مستقیم به ریشه را غیرفعال کنید
اکنون که تأیید کردید که می توانید sudo userبدون مشکل از خود استفاده کنید ، زمان آن رسیده است که مرحله هشتم و آخر ، دسترسی مستقیم به ریشه را غیرفعال کنید.
ابتدا /etc/ssh/sshd_configبا استفاده از ویرایشگر متن مورد علاقه خود باز کنید و خط حاوی رشته زیر را پیدا کنید. ممکن است با یک #شخصیت پیشوند شود .
PermitRootLogin
صرف نظر از پیشوند یا مقدار گزینه موجود در /etc/ssh/sshd_config، باید آن خط را به صورت زیر تغییر دهید:
PermitRootLogin no
در آخر ، سرور SSHD خود را مجدداً راه اندازی کنید.
توجه: فراموش نکنید که آزمایشات خود را با استفاده از SSH به سرور خود آزمایش کنید root. اگر قادر به انجام این کار نیستید ، این بدان معنی است که شما تمام مراحل لازم را با موفقیت انجام داده اید.
این نتیجه گیری آموزش ما است.