-
- 25 مهر 1404
- سیستم عامل لینوکس
در هر سیستم لینوکسی، مدیریت کاربران و کنترل دسترسیها یکی از پایههای امنیت و سازماندهی است. اگر کاربران به درستی مدیریت نشوند، ممکن است افراد غیرمجاز به منابع حساس دسترسی پیدا کنند یا تغییرات ناخواسته انجام دهند.
مفاهیم پایه
کاربران و شناسهها (UID / GID)
-
در لینوکس، هر کاربر دارای یک UID (User ID) است — یک عدد یکتا که او را از دیگر کاربران متمایز میکند.
-
هر گروه دارای GID (Group ID) است.
-
کاربران میتوانند متعلق به یک گروه اولیه (primary group) باشند و همچنین در گروههای ثانویه (secondary groups) عضو شوند.
-
فایلهای سیستم مثل
/etc/passwdشامل اطلاعاتی درباره کاربران هستند. -
فایل
/etc/groupفهرست گروهها و اعضای آنها را نگه میدارد.
نقش root و sudo
-
کاربر root قدرت کامل روی سیستم دارد؛ میتواند هر کاری انجام دهد.
-
در اوبونتو به دلایل امنیتی، حساب root معمولاً غیرفعال است و به جای آن از
sudoاستفاده میشود. -
کاربران مجاز به استفاده از
sudoمیتوانند دستورات مدیریتی را با پیشوندsudoاجرا کنند، با پسورد خودشان. -
تنظیمات
sudoدر فایل/etc/sudoersیا زیرشاخههای آن تعیین میشود (معمولاً با ابزارvisudoآن را ویرایش میکنند).
مدیریت کاربران با خط فرمان
در این بخش، مجموعهای از دستورات متداول برای ایجاد، تغییر، حذف کاربر و گروه را معرفی میکنیم.
افزودن کاربر (Create User)
در اوبونتو، دستور رایج برای افزودن کاربر عبارت است از:
sudo adduser username
این دستور یک فرآیند تعاملی اجرا میکند، از شما رمز عبور آن کاربر را میپرسد و اطلاعات اختیاری مثل نام کامل، شماره تلفن، آدرس را دریافت میکند.
اگر نخواهید آن اطلاعات را وارد کنید، کافی است Enter بزنید.
همچنین، اگر بخواهید کاربر سیستم (بدون پوشه خانگی و موارد مشابه) بسازید:
sudo adduser --system myserviceuser
اما توجه کنید که استفاده از --system وابسته به توزیع و شرایط است.
اختصاص گروه و افزودن به گروهها (Groups)
-
ایجاد گروه جدید:
sudo addgroup groupname -
افزودن کاربر به گروه (ثانویه) — بدون حذف عضویتهای قبلی:
sudo usermod -aG groupname usernameگزینه
-aبرای افزودن است و-Gبرای تعیین گروهها. -
دیدن گروههایی که یک کاربر عضو است:
groups usernameیا با دستور
id usernameنیز اطلاعات بیشتری (UID، GID و گروهها) نمایش داده میشود. -
حذف کاربر از یک گروه:
-
-
برخی توزیعها از دستور
deluser username groupnameپشتیبانی میکنند (در Debian/Ubuntu)
یا میتوانید باusermodگروههای جدید را مجدداً تعیین کنید (ولی مراقب باشید که عضویتهای قبلی را از بین نبرید).
تغییر ویژگیهای کاربر (Modify User)
چند نمونه از تغییرات رایج:
-
تغییر رمز عبور:
sudo passwd username -
تغییر نام کامل یا توضیحات:
sudo usermod -c "Full Name" username -
تغییر دایرکتوری خانه:
sudo usermod -d /new/home/path username -
تغییر Shell ورود:
sudo usermod -s /bin/bash usernameیا اگر میخواهید کاربر نتواند وارد شود:
sudo usermod -s /sbin/nologin username -
تغییر UID کاربر (مراقب باشید، چون فایلها و گروهها ممکن است به هم بریزند):
sudo usermod -u NEWUID username -
قفل کردن حساب:
sudo usermod -L usernameیا باز کردن:
sudo usermod -U username
حذف کاربر (Delete User)
برای حذف یک کاربر:
sudo deluser username
اگر میخواهید همراه با دایرکتوری خانگی و فایلهایش نیز حذف شود:
sudo deluser --remove-home username
یا میتوانید از:
sudo userdel -r username
که در بسیاری از توزیعها معادل deluser --remove-home است.
مشاهده کاربران و وضعیت آنها
-
لیست کلی کاربران:
cut -d: -f1 /etc/passwdاین دستور نام کاربریها را استخراج میکند.
-
مشاهده گروهها:
cut -d: -f1 /etc/group -
دیدن اینکه چه کاربران اکنون وارد سیستم هستند:
wیا:
who
مدیریت دسترسیها: فایلها و مجوزها (Permissions)
مدیریت کاربران بیمعنی است اگر نتوان برای فایلها و دایرکتوریها دسترسیها را کنترل کرد. در این بخش ابزارهای پرکاربرد:
-
chmod— تغییر مجوزهای خواندن، نوشتن و اجرا:
مثال:chmod 755 filename chmod u+rwx,g+rx,o-r filename -
chown— تغییر مالک فایل:sudo chown user:group filenameبرای بازگشت به طور بازگشتی:
sudo chown -R user:group /path/to/directory -
chgrp— تغییر گروه مالک:sudo chgrp groupname filename -
استفاده از مجوز عددی (مثلاً 7 = خواندن + نوشتن + اجرا، 5 = خواندن + اجرا و غیره) برای تعیین سطح دسترسی.
نکات امنیتی و بهترین شیوهها
۱. عدم استفاده مداوم از root
حتی اگر بتوانید با sudo su به root تبدیل شوید، بهتر است فقط زمانی که نیاز دارید دستورات مدیریتی را اجرا کنید.
استفاده از sudo به جای ورود مستقیم به root باعث شفافیت بیشتر و ثبت سوابق فرمانها میشود.
۲. حداقل مجوز لازم (Principle of Least Privilege)
کاربر فقط همان دسترسیهایی را داشته باشد که برای انجام وظایفش لازم است، نه بیشتر.
۳. استفاده از گروهها به جای کاربران تکی
وقتی نیاز دارید مجموعهای از کاربران به یک منبع مشترک دسترسی داشته باشند، بهتر است آنها را به یک گروه اضافه کرده و مجوزها را به گروه بدهید.
۴. قفل کردن یا غیرفعال کردن حسابهای غیرضروری
اگر حسابی دیگر نیاز نیست، آن را قفل یا حذف کنید.
۵. رمزهای قوی و سیاستهای انقضا رمز
کاربران را مجبور کنید از رمزهای پیچیده استفاده کنند و در فواصل زمانی مشخص آن را تغییر دهند.
۶. نظارت و بررسی لاگها
ثبت لاگ دستورات sudo، بررسی ورودها و رفتار کاربران میتواند به شناسایی سوء استفاده کمک کند.
۷. بروزرسانی منظم سیستم
آسیبپذیریهای امنیتی در بستهها ممکن است از طریق حسابهای کاربری سوء استفاده شوند؛ بنابراین نگهداری سیستم بهروز ضروری است.
۸. محدود کردن دسترسی SSH
فقط کاربرانی که نیاز دارند به SSH دسترسی داشته باشند، بتوانند وارد سیستم شوند. مثلاً میتوانید در فایل /etc/ssh/sshd_config گزینه AllowUsers را تنظیم کنید.
۹. مکانیزمهای احراز هویت چندعاملی (MFA)
اگر امکان دارد، برای دسترسی به سیستم از احراز هویت دو مرحلهای استفاده کنید.
نظر خود را اینجا بنویسید