- موضوع نویسنده
- #1
مقدمه: چرا مدیریت کاربران و دسترسیها در لینوکس اهمیت دارد؟
در دنیای میزبانی و مدیریت سرور، کنترل و مدیریت کاربران یکی از کلیدیترین اصول امنیتی به شمار میرود. سرورهای لینوکسی با وجود انعطاف و قدرت فوقالعاده، در صورتی که مدیریت دسترسیها بهدرستی انجام نشود، به سادگی میتوانند هدف حملات مخرب و نفوذهای غیرمجاز قرار گیرند. این مقاله با هدف آشنایی همه علاقهمندان و وبمستران با شیوههای اصولی مدیریت کاربران و دسترسیها تهیه شده است.
ساختار مدیریت کاربران در لینوکس
در لینوکس، هر فردی که به سیستم دسترسی دارد بهعنوان یک کاربر (user) تعریف میشود. هر کاربر دارای شناسه کاربری (UID) و گروه (group) منحصر به فرد است که تعیین میکند چه سطحی از دسترسی به فایلها، برنامهها و دستورات را دارد.
مفهوم | شرح |
User | فرد یا اکانت با دسترسی به سیستم |
Group | مجموعهای از کاربران با سطح دسترسی مشترک |
Root | کاربر ارشد با دسترسی نامحدود به همه بخشها |
ایجاد، حذف و مدیریت کاربران در لینوکس
ساخت و حذف کاربر با دستورات shell انجام میشود. نمونهای از دستورات متداول:
Bash:
sudo adduser newuser
sudo deluser olduser
Bash:
sudo passwd username
سطوح دسترسی کاربران: معرفی سطوح و شیوه تعریف
هر فایل و دایرکتوری در لینوکس دارای مجوز (Permission) برای سه دسته است:
- مالک فایل (Owner)
- گروه فایل (Group)
- سایر کاربران (Others)
chmod
قابل تنظیماند.نمونه تغییر دسترسی:
Bash:
chmod 750 myfile.txt
نمادهای عددی مجوزها در لینوکس
عدد هر مجوز با جمع عددی r=4، w=2 و x=1 تعیین میشود. به طور مثال:
مجوز عددی | دسترسی |
7 | خواندن+نوشتن+اجرا (rwx) |
6 | خواندن+نوشتن (rw-) |
5 | خواندن+اجرا (r-x) |
4 | فقط خواندن (r--) |
مدیریت و تعیین گروهها (Group) برای کاربران
گروهها کاربردشان مدیریت دستهجمعی سطح دسترسیهاست. کاربر میتواند عضو یک یا چند گروه باشد. تعریف گروه جدید:
Bash:
sudo addgroup webmaster
sudo usermod -a -G webmaster ali
ali
عضو گروه webmaster
خواهد شد.افزودن کاربر به گروه sudo و مدیریت سطح دسترسی
اعضای گروه
sudo
میتوانند دستورات حیاتی سیستم را اجرا کنند. افزودن کاربر به sudo:
Bash:
sudo usermod -aG sudo username
تعیین سطوح دسترسی با فایل /etc/sudoers
این فایل مهمترین بخش تعیین دسترسی sudo است. برای ویرایش ایمن:
Bash:
sudo visudo
توصیههای ایمنی برای مدیریت و دسترسی کاربران در سرور لینوکس
- ایجاد حساب کاربری جداگانه برای هر فرد و پرهیز از استفاده اشتراکی حساب root
- تعیین سطح دسترسی محدود و فقط بر اساس نیاز واقعی هر کاربر (اصل least privilege)
- فعالسازی احراز هویت دومرحلهای (2FA) در سرور برای امنیت بیشتر ورود
- استفاده از کلید SSH بهجای رمزعبور و غیرفعالسازی دسترسی root از طریق SSH
- بازبینی مرتب حسابهای فعال و حذف کاربران بدون نیاز
- ثبت و مانیتورینگ ورود و تغییر دسترسی با ابزارهایی مثل auditd، last و...
نمونه تنظیم محدودیت دسترسی به فایل با chmod و chown
برای تغییر مالکیت فایل:
Bash:
sudo chown ali:webmaster file.txt
Bash:
chmod 640 file.txt
جمعبندی؛ مدیریت حرفهای کاربران و دسترسیهای لینوکس
مدیریت کاربران و تعیین سطح دسترسی در لینوکس یکی از مهمترین پایههای امنیت سرور است. با تولید حسابهای مجزا، پیادهسازی اصل حداقل دسترسی، استفاده از گروههای مناسب، رمزهای قوی و نظارت منظم، امنیت زیرساخت سرور شما چندین برابر خواهد شد. اگر تجربه، سوال یا ابزار مفیدی برای مدیریت دسترسی سرور لینوکسی دارید، آن را در لینک: انجمن تخصصی وبمستران انجمن تخصصی احمدرضا کریمی به اشتراک بگذارید.