افزودن و حذف کاربران در Ubuntu 20.04
مقدمه
– مدیریت حسابهای کاربری یکی از پایهایترین وظایف مدیریت سیستمهای لینوکسی است. ایجاد حسابهای غیراز root باعث کاهش ریسکهای امنیتی و نگهداری بهتر سیستم میشود.
– در اوبونتو ابزار sudo برای اجرای فرمانها با امتیازات مدیریتی استفاده میشود؛ بهجای کار مداوم با حساب root بهتر است کارهای روزمره با یک کاربر غیرمدیریتی انجام و برای کارهای لازم از sudo بهره گرفته شود.
– این راهنما مرحلهبهمرحله مفاهیم، دستورات و بهترین شیوهها برای ایجاد کاربر، اعطای دسترسی sudo، تنظیمات مربوط به ورود از طریق SSH، حذف یا قفلکردن کاربران و پاکسازی فایلها را پوشش میدهد.
پیشنیازها
– دسترسی به سروری که اوبونتو 20.04 (یا نسخههای مشابه) روی آن اجرا میشود.
– دسترسی root یا کاربری که از قبل دارای مجوز sudo است.
– اتصال شبکه (SSH یا کنسول) به سرور.
اصطلاحات کلیدی
– root: حساب ادمین اصلی سیستم با تمام امتیازات.
– sudo: ابزاری که اجازه میدهد کاربران عادی فرمانها را با امتیاز root اجرا کنند.
– adduser / useradd: دستورهای خط فرمان برای ایجاد کاربر. adduser در اوبونتو یک wrapper تعاملی است که سادهتر است.
– deluser / userdel: دستورهای خط فرمان برای حذف کاربر. deluser یک رابط دوستانهتر است.
– /etc/sudoers و گروه sudo: مکانها/مکانیزمهای تعیینکنندهٔ مجوزهای sudo.
بخش 1 — ایجاد کاربر جدید (خط فرمان)
– مفهوم و انتخاب دستور: در اوبونتو از adduser استفاده کنید چون تعاملی و کاربرپسند است؛ useradd سطح پایینتر و غیرتعاملی است.
– دستور پایه:
– اگر بهصورت root وارد شدهاید:
– اجرا: adduser username
– اگر با کاربر دارای sudo وارد شدهاید:
– اجرا: sudo adduser username
– مراحل اجرای adduser (نتیجهٔ تعاملی):
- وارد کردن و تأیید گذرواژه کاربر جدید.
- پرسش برای اطلاعات اضافی (Full Name, Room Number, …) که اختیاری است — برای رد کردن ENTER را بزنید.
- تأیید نهایی اطلاعات با Y یا Enter.
– نکات فنی:
– adduser بهصورت پیشفرض پوشهٔ خانگی /home/username را میسازد و فایلهای اسکِل از /etc/skel را کپی میکند.
– گروهی با همان نام کاربر ساخته میشود و کاربر عضو آن گروه خواهد بود.
– معادل useradd (غیرتعاملی، مثال برای اسکریپتها):
sudo useradd -m -s /bin/bash username
– -m: ساخت دایرکتوری خانه
– -s: تعیین شِل پیشفرض
– سپس تعیین رمز با: sudo passwd username
– دستورهای قابل اجرا (هر کدام در خط جدا):
sudo adduser username sudo useradd -m -s /bin/bash username sudo passwd username
بخش 2 — دادن دسترسی sudo به کاربر
– دو راه اصلی:
- افزودن کاربر به گروه sudo (ساده و رایج)
– دستور: sudo usermod -aG sudo username
– توضیح: اعضای گروه sudo در اوبونتو بهطور پیشفرض مجوز اجرای sudo را دارند.
– تست مجوز: با دستور su – username یا ssh بهعنوان آن کاربر وارد شوید و فرمان sudo whoami اجرا کنید که باید output برابر root بدهد.
- تنظیم صریح مجوزها در /etc/sudoers یا فایلهای داخل /etc/sudoers.d (برای کنترل دقیقتر)
– ابزار امن برای ویرایش: visudo — از ویرایش مستقیم sudoers خودداری کنید چون خطا میتواند باعث از دست رفتن sudo شود.
– مثال افزودن خط در /etc/sudoers.d/username:
username ALL=(ALL:ALL) ALL
– دستورات قابل اجرا:
sudo usermod -aG sudo username sudo visudo echo 'username ALL=(ALL:ALL) ALL' | sudo tee /etc/sudoers.d/username && sudo chmod 0440 /etc/sudoers.d/username
– نکات امنیتی:
– اعضای گروه sudo میتوانند تقریباً هر کاری را با sudo انجام دهند؛ دسترسی را محدود کنید اگر نیاز به کنترل دقیق دارید.
– هنگام ویرایش sudoers از visudo استفاده کنید تا نحوی برقرار بماند.
بخش 3 — راهنمایی برای ورود SSH و تنظیم کلیدها
– بهتر است ورود رمزعبوری SSH غیرفعال و از کلیدهای SSH استفاده شود.
– افزودن کلید SSH به کاربر جدید:
- بهعنوان کاربر جدید یا root دایرکتوری .ssh در پوشهٔ خانه ایجاد کنید:
sudo -u username mkdir -p /home/username/.ssh
- قرار دادن کلید عمومی در authorized_keys:
echo "ssh-rsa AAAA... user@host" | sudo -u username tee /home/username/.ssh/authorized_keys
- تنظیم دسترسیها:
sudo chown -R username:username /home/username/.ssh sudo chmod 700 /home/username/.ssh sudo chmod 600 /home/username/.ssh/authorized_keys
– مثال دستورات (هر خط جدا):
sudo -u username mkdir -p /home/username/.ssh echo 'PASTE_PUBLIC_KEY_HERE' | sudo -u username tee /home/username/.ssh/authorized_keys sudo chown -R username:username /home/username/.ssh sudo chmod 700 /home/username/.ssh sudo chmod 600 /home/username/.ssh/authorized_keys
– غیرفعال کردن ورود رمز در SSHD (پس از اطمینان از کارکرد کلیدها):
– ویرایش /etc/ssh/sshd_config و ست کردن:
PasswordAuthentication no
– سپس راهاندازی مجدد سرویس SSH:
sudo systemctl restart sshd
– توجه: هر تغییر در SSH را ابتدا در یک جلسه فعال امتحان کنید تا اگر مشکلی پیش آمد لاگین قبلی را از دست ندهید.
بخش 4 — تنظیمات شِل و محدودیتها
– انتخاب شِل پیشفرض:
– هنگام ایجاد با useradd از -s /bin/bash استفاده کنید یا بعداً با chsh:
sudo chsh -s /bin/bash username
– ایجاد کاربران سیستمی یا بدون شِل برای سرویسها:
– برای حسابهایی که باید ورود نداشته باشند: use /usr/sbin/nologin یا /bin/false
sudo useradd -r -s /usr/sbin/nologin servicename
– محدود کردن تواناییهای sudo (مثال: اجازهٔ اجرای فقط چند فرمان خاص)
– ایجاد فایل در /etc/sudoers.d/ با قاعدهٔ محدود:
username ALL=(root) /usr/bin/systemctl restart nginx, /usr/bin/journalctl -u nginx
– سپس دسترسی را با chmod 0440 ایمن کنید.
بخش 5 — حذف کاربر (و پاکسازی فایلها)
– دستورهای پایه:
– حذف کاربر اما نگهداشتن فایلها:
sudo deluser username
یا:
sudo userdel username
– حذف کاربر بههمراه دایرکتوری خانه و mail spool:
sudo deluser --remove-home username
– یا با userdel:
sudo userdel -r username
– حذف مالکیت/گروهها و فایلهای باقیمانده در سیستم:
– پس از حذف کاربر ممکن است فایلهایی که متعلق به آن uid در سایر دایرکتوریها هستند باقی بمانند. برای یافتن:
sudo find / -uid UID -ls
– یا بر اساس نام کاربر (قبل از حذف یا UID فعلی) جستجو کنید:
sudo find / -user username -ls
– برای حذف دستی آنها:
sudo find / -user username -exec rm -rf {} \;
– حذف گروه اختصاصی کاربر:
– در صورت نیاز:
sudo delgroup username
– مثلاً دستورات قابل اجرا:
sudo deluser --remove-home username sudo userdel -r username sudo find / -user username -ls sudo delgroup username
بخش 6 — قفل کردن کاربر بهجای حذف (وقتی نیاز به حفظ فایلها هست)
– برای غیرقابلورود کردن حساب بدون حذف:
– lock کردن passwd:
sudo passwd -l username
– یا تغییر شِل به nologin:
sudo usermod -s /usr/sbin/nologin username
– باز کردن قفل:
sudo passwd -u username
– دستورهای جداگانه:
sudo passwd -l username sudo usermod -s /usr/sbin/nologin username sudo passwd -u username
بخش 7 — تغییر نام کاربر یا تغییر UID/GID
– تغییر نام حساب کاربری:
sudo usermod -l newname oldname
– اگر میخواهید دایرکتوری خانه را هم تغییر دهید:
sudo usermod -d /home/newname -m newname
– تغییر UID یا GID:
sudo usermod -u NEWUID username sudo groupmod -g NEWGID groupname
– پس از تغییر UID باید مالکیت فایلها با find و chown اصلاح شود:
sudo find / -uid OLDUID -exec chown NEWUID {} \;– دستورات:
sudo usermod -l newname oldname
sudo usermod -d /home/newname -m newname
sudo usermod -u 1001 username
sudo find / -uid 1000 -exec chown 1001 {} \;بخش 8 — بررسی و عیبیابی مجوزها و گروهها
– نمایش گروههای کاربر:
groups username
– مشاهده اطلاعات کاربر:
id username getent passwd username
– بررسی اینکه آیا کاربر میتواند sudo اجرا کند:
sudo -l -U username (بهعنوان root بررسی کنید)
– یا از کاربر:
sudo -l
– نمونه دستورات:
groups username id username getent passwd username sudo -l -U username
بخش ۹ — بهترین شیوهها و نکات امنیتی
– از کاربر root برای کارهای روزمره استفاده نکنید؛ بهجای آن کاربران غیرمدیریتی بسازید و برای کارهای نیازمند امتیاز از sudo استفاده کنید.
– حداقل امتیاز: فقط به کاربران یا سرویسهایی که واقعاً نیاز دارند مجوز sudo بدهید.
– استفاده از کلیدهای SSH بهجای رمزعبور، غیرفعال کردن PasswordAuthentication پس از اطمینان.
– نگهداری و پیکربندی ایمن فایلهای /etc/sudoers.d با مجوز 0440 و ویرایش با visudo.
– هنگام حذف کاربر، مراقب فایلهای باقیمانده باشید و UIDهای بدون مالک را پاک یا بازتخصیص دهید.
– ثبت وقایع: از logها (مثل /var/log/auth.log) برای پیگیری ورودها و استفاده از sudo بهره ببرید.
بخش ۱۰ — نمونهٔ جریان کاری کامل
– 1 ایجاد کاربر جدید “ali”:
sudo adduser ali
– 2 افزودن ali به گروه sudo:
sudo usermod -aG sudo ali
– 3 ایجاد پوشهٔ .ssh و قرار دادن کلید عمومی:
sudo -u ali mkdir -p /home/ali/.ssh echo 'PASTE_PUBLIC_KEY_HERE' | sudo -u ali tee /home/ali/.ssh/authorized_keys sudo chown -R ali:ali /home/ali/.ssh sudo chmod 700 /home/ali/.ssh sudo chmod 600 /home/ali/.ssh/authorized_keys
– 4 تست ورود با SSH از کلاینت دیگر:
ssh -i ~/.ssh/id_rsa ali@server_ip
– 5 غیرفعال کردن ورود رمز (پس از تست):
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart sshd
– 6 بررسی دسترسی sudo توسط ali:
sudo -l -U ali
– 7 قفل کردن حساب ali در صورت نیاز موقت:
sudo passwd -l ali
– 8 حذف کامل ali و دایرکتوری خانه:
sudo deluser --remove-home ali
بخش 11 — نکات مربوط به اسکریپتنویسی و خودکارسازی
– هنگام ایجاد کاربران در اسکریپتها از useradd به همراه تنظیم رمز عبور با chpasswd یا از cloud-init برای provisioning خودکار استفاده کنید.
– نمونه تنظیم رمز از طریق chpasswd:
echo 'username:PlainTextPassword' | sudo chpasswd
– هنگام خودکارسازی افزودن کلید SSH، از echo و tee یا از فایل template استفاده کنید.
– همیشه خطاها را مدیریت و بررسی کنید (مثلاً وجود قبلی یوزرنیم، ایجاد موفق پوشهٔ خانه و تغییر مالکیت).
بخش 12 — پرسشهای متداول تکنیکی (مختصر)
– آیا adduser و useradd متفاوتاند؟ بله — adduser یک اسکریپت تعاملی و useradd ابزار سطح پایینتر است.
– چگونه مطمئن شوم تغییرات sudo امن است؟ از visudo استفاده کنید و فایلهای /etc/sudoers.d را با مجوز 0440 قرار دهید.
– آیا حذف کاربر موجب حذف cronjobs یا فایلهای سیستمی میشود؟ نه همیشه؛ بررسی کنید و در صورت نیاز cron، at و سرویسهای وابسته را پاک یا بازتنظیم کنید.
مجموعهٔ خلاصهٔ دستورات مفید (هر سطر یک دستور اجراشدنی)
sudo adduser username
sudo useradd -m -s /bin/bash username
sudo passwd username
sudo usermod -aG sudo username
sudo visudo
echo 'username ALL=(ALL:ALL) ALL' | sudo tee /etc/sudoers.d/username && sudo chmod 0440 /etc/sudoers.d/username
sudo -u username mkdir -p /home/username/.ssh
echo 'PASTE_PUBLIC_KEY_HERE' | sudo -u username tee /home/username/.ssh/authorized_keys
sudo chown -R username:username /home/username/.ssh
sudo chmod 700 /home/username/.ssh
sudo chmod 600 /home/username/.ssh/authorized_keys
sudo systemctl restart sshd
sudo deluser username
sudo deluser --remove-home username
sudo userdel -r username
sudo passwd -l username
sudo passwd -u username
sudo usermod -s /usr/sbin/nologin username
sudo usermod -l newname oldname
sudo usermod -d /home/newname -m newname
sudo usermod -u NEWUID username
sudo find / -user username -ls
sudo find / -uid OLDUID -exec chown NEWUID {} \;
groups username
id username
getent passwd username
sudo -l -U usernameنتیجهگیری
– ایجاد، مدیریت و حذف کاربران در اوبونتو فرایندی نسبتاً ساده اما حساس است؛ استفاده از adduser و گروه sudo رایج و امن است، اما برای امنیت بالا باید از کلیدهای SSH، ویرایش ایمن sudoers و پاکسازی فایلهای باقیمانده هنگام حذف کاربر اطمینان حاصل کنید.





قوانین ارسال دیدگاه
لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.