منو سایت

  • خانه
  • وبلاگ
  • نحوه محدود کردن دسترسی کاربر در اوبونتو

نحوه محدود کردن دسترسی کاربر در اوبونتو

 تاریخ انتشار :
/
  وبلاگ
نحوه محدود کردن دسترسی کاربر در اوبونتو

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

نحوه محدود کردن دسترسی با استفاده از /etc/passwd

یکی از روش های رایج برای محدود کردن کاربران، تنظیم پوسته ورود کاربر به یک مقدار مشخص است. در ادامه نحوه انجام این کار را برای یک کاربر MessageBus نشان داده ایم. توجه داشته باشید که در این مثال از grep برای جستجوی فایل /etc/passwd استفاده کردیم:

less /etc/passwd | grep messagebus

خروجی این دستور مشابه زیر است:

Output
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin

آخرین مقدار پوسته یا دستوری است که در ورود موفقیت آمیز برگردانده می شود. در این مثال، این مقدار روی /usr/sbin/nologin تنظیم شده است.

اگر بخواهید با استفاده از دستور sudo su به کاربر messagebus سوئیچ کنید، عملیات با شکست مواجه خواهد شد:

sudo su messagebus

خروجی استفاده از این دستور به صورت زیر است:

Output
This account is currently not available.

این پیام برای شما نمایش داده می شود زیرا پوسته کاربر messagebus روی /usr/sbin/nologin تنظیم شده است.

اگر می خواهید پوسته پیش فرض ورود کاربر را تغییر دهید، می توانید از ابزار usermod استفاده کنید. بنابراین، با استفاده از این ابزار می توانید پوست کاربر را به nologin تغییر دهید و از ورود کاربر جلوگیری کنید:

sudo usermod -s /usr/sbin/nologin username

لیست کاربران در اوبونتو

لیست کاربران در اوبونتو

آموزش محدود کردن دسترسی کاربر در اوبونتو

نحوه محدود کردن دسترسی با استفاده از /etc/shadow

روش رایج دیگری که برای محدود کردن ورود کاربران استفاده می شود، فایل /etc/shadow است. این فایل حاوی مقادیر رمز عبور هش شده برای هر کاربر در سیستم است.

برای مشاهده مقادیر این فایل می توان از دستور less استفاده کرد:

sudo less /etc/shadow

خروجی این دستور به صورت زیر است:

Output
. . .
uuidd:*:19105:0:99999:7:::
tcpdump:*:19105:0:99999:7:::
sshd:*:19105:0:99999:7:::
pollinate:*:19105:0:99999:7:::
landscape:*:19105:0:99999:7:::
lxd:!:19180::::::
sammy:$y$j9T$4gyOQ5ieEWdx1ZdggX3Nj1$AbEA9FsG03aTsQhl.ZVMXatwCAvnxFbE/GHUKpjf9u6:19276:0:99999:7:::

اگر با دقت به خروجی نگاه کنید، خواهید دید که فیلد دوم در خط آخر حاوی متنی است که با $y$j9T$4gyO شروع می شود. این رمز عبور هش شده است.

حساب های کاربری سیستم نیز به جای مقدار هش شده رمز عبور دارای یک ستاره هستند

گذشت. در واقع هیچ رمز عبوری روی این حساب ها تنظیم نشده است. به همین دلیل امکان احراز هویت بدون تغییر رمز عبور وجود ندارد.

می توانید با قرار دادن علامت تعجب (!) قبل از مقدار رمز عبور هش شده، مقدار را ستاره بزنید

sudo passwd -l sammy
sudo less /etc/shadow | grep sammy

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

Output
sammy:!$y$j9T$4gyOQ5ieEWdx1ZdggX3Nj1$AbEA9FsG03aTsQhl.ZVMXatwCAvnxFbE/GHUKpjf9u6:19276:0:99999:7::::::

دستور passwd را می توان با استفاده از پرچم -l قفل کرد و با استفاده از -u باز کرد:

sudo passwd -u sammy

خروجی این کار به صورت زیر خواهد بود:

sudo usermod -L sammy
sudo usermod -U sammy

همانطور که در خروجی دستور مشاهده می کنید، رمز عبور هش شده حفظ می شود. اما گذاشتن علامت تعجب (!) درست قبل از آن باعث بی اعتباری آن می شود. همانطور که گفتیم، اعتبار اکانت با استفاده از پرچم -u نیز امکان پذیر است:

همین کار را می توان با استفاده از دستور usermod انجام داد. پرچم هایی که برای قفل و باز کردن حساب کاربری استفاده می شود به ترتیب -l و -u هستند:

sudo touch /etc/nologin

نحوه محدود کردن دسترسی با استفاده از /etc/nologin

sudo sh -c 'echo "Planned maintenance. Log in capabilities will be restored at 1545 UTC" > /etc/nologin'

گاهی اوقات ممکن است لازم باشد دسترسی به همه کاربران به جز کاربر اصلی را محدود کنید. می توان آن را معمولا در موقعیت های مختلف استفاده کرد. به عنوان مثال، اگر با یک یا چند حساب کاربری خود مشکل امنیتی دارید. می توانید این کار را با ایجاد یک فایل در /etc/nologin انجام دهید:

ssh [email protected]
Output
[email protected]'s password:
Planned maintenance. Log in capabilities will be restored at 1545 UTC

Connection closed by host

این دستور دسترسی کاربرانی را که دسترسی superuser ندارند محدود می کند. در واقع آنچه پشت این دستور اتفاق می افتد این است که محتویات فایل به کاربر بازگردانده می شود. بنابراین، می توانید یک پیام در این فایل قرار دهید تا به کاربر نشان داده شود:

sudo rm /etc/nologin

اکنون وقتی می خواهید با استفاده از رمز عبور وارد شوید، این پیام را دریافت می کنید:

نیازی به گفتن نیست که در این مورد، کاربر ریشه همچنان می تواند وارد شود. برای لغو محدودیت های موجود، به سادگی فایل /etc/nologin را حذف کنید. این کار را می توان با استفاده از دستور زیر انجام داد:

برای آشنایی با ویژگی های سیستم عامل اوبونتو و مقایسه آن با سایر توزیع های لینوکس مقاله زیر را مطالعه کنید.

اوبونتو چیست؟

نتیجه

گاهی اوقات لازم است دسترسی و ورود کاربر را محدود کنید. حتی اگر مشکل امنیتی در سیستم وجود داشته باشد، ممکن است لازم باشد دسترسی همه کاربران را تا رفع مشکل موقتاً محدود کنید. در این مقاله از وبلاگ پارس پک نحوه محدود کردن کاربران با استفاده از روش های مختلف توضیح داده شده است. شایان ذکر است که این مقاله بر اساس توزیع اوبونتو نوشته شده است. با این حال، در توزیع های نرمال مختلف، تفاوت چندانی با موضوعات توضیح داده شده در این مقاله ندارد.

سوالات متداول

1. چگونه با استفاده از دستور usermod ورود کاربر را محدود کنیم؟

فرمت کلی استفاده از این دستور sudo usermod -s /usr/sbin/nologin نام کاربری است. البته به جای نام کاربری باید نام کاربری مورد نظر خود را قرار دهید.

2. دستور nologin در دستور usermod چه کار می کند؟

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

3. آیا امکان محدود کردن دسترسی به همه کاربران به جز کاربر اصلی وجود دارد؟

بله، این کار از طریق فایل /etc/nologin قابل انجام است.