اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری، سرور مجازی/اختصاصی، هاست و دامنه

اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری

دریافت مشاوره رایگان

افزودن و حذف کاربران در 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 و پاک‌سازی فایل‌های باقی‌مانده هنگام حذف کاربر اطمینان حاصل کنید.

 

4.6/5 - (2748 امتیاز)

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


6 + 19

قوانین

قوانین ارسال دیدگاه

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