</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

مدیریت کاربران در Debian

آموزش افزودن، حذف و مدیریت کاربران و گروه‌ها در Debian با useradd، adduser، usermod و دستورات مرتبط.

مقدماتی۶ دقیقه مطالعهآخرین بروزرسانی: ۹ تیر ۱۴۰۵ویرایش در گیت‌هاب

مدیریت کاربران و گروه‌ها یکی از وظایف اصلی مدیر سیستم در Debian است. در این آموزش با دستورات افزودن، حذف و ویرایش کاربران، و مدیریت گروه‌ها آشنا می‌شوید.

کاربران در Debian#

Debian از مدل چندکاربرهٔ UNIX استفاده می‌کند؛ یعنی چندین کاربر می‌توانند هم‌زمان از سیستم استفاده کنند و هر کدام سطح دسترسی مشخصی دارند.

نوع کاربرUIDتوضیح
root0کاربر مدیر با دسترسی کامل
کاربران سیستم1-999سرویس‌ها (sshd، www-data، postgres و ...)
کاربران عادی1000+کاربران واقعی
# مشاهدهٔ کاربر فعلی
whoami
 
# مشاهدهٔ UID و گروه‌های کاربر فعلی
id
 
# لیست تمام کاربران
cat /etc/passwd | head
# خروجی:
# root:x:0:0:root:/root:/bin/bash
# daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
# ...
# ali:x:1000:1000:Ali Rezaei:/home/ali:/bin/bash

ساختار /etc/passwd#

هر خط در /etc/passwd هفت فیلد با : جدا شده است:

ali:x:1000:1000:Ali Rezaei:/home/ali:/bin/bash
فیلدتوضیح
1نام کاربری
2رمز عبور (x به معنای ذخیره در /etc/shadow)
3UID
4GID (گروه اصلی)
5نام کامل (GECOS)
6دایرکتوری خانه
7shell پیش‌فرض

افزودن کاربر جدید#

روش پیشنهادی: adduser#

adduser یک اسکریپت تعاملی پایتون است که کاربر می‌سازد، رمز تنظیم می‌کند، دایرکتوری خانه می‌سازد و فایل‌های پیش‌فرض را کپی می‌کند:

# افزودن کاربر جدید (تعاملی)
sudo adduser maryam
# خروجی:
# Adding user 'maryam' ...
# Adding new group 'maryam' (1001) ...
# Adding new user 'maryam' (1001) with group 'maryam' ...
# Creating home directory '/home/maryam' ...
# Copying files from '/etc/skel' ...
# New password: ********
# Retype new password: ********
# passwd: password updated successfully
# Changing the user information for maryam
# Enter the new value, or press ENTER for the default
#         Full Name []: Maryam Rezaei
#         Room Number []:
#         Work Phone []:
#         Home Phone []:
#         Other []:
# Is the information correct? [Y/n] y

adduser بهتر از useradd است

adduser تعاملی است و همهٔ کارهای لازم (ساخت گروه، دایرکتوری خانه، کپی فایل‌های skel، تنظیم رمز) را خودکار انجام می‌دهد. useradd دستور سطح پایین‌تری است و در صورت استفادهٔ بدون گزینه‌ها، کاربر بدون رمز و دایرکتوری خانه می‌سازد.

روش پایه: useradd#

اگر می‌خواهید کنترل کامل داشته باشید یا در اسکریپت استفاده کنید:

# ساخت کاربر با دستی
sudo useradd -m -s /bin/bash -c "Maryam Rezaei" maryam
 
# تنظیم رمز
sudo passwd maryam
 
# گزینه‌ها:
# -m  ساخت دایرکتوری خانه
# -s  shell پیش‌فرض
# -c  نام کامل (GECOS)
# -G  گروه‌های اضافی
# -e  تاریخ انقضا

حذف کاربر#

# حذف کاربر بدون حذف دایرکتوری خانه
sudo deluser maryam
 
# حذف کاربر با دایرکتوری خانه و فایل‌ها
sudo deluser --remove-home maryam
 
# حذف کاربر و پشتیبان‌گیری از دایرکتوری خانه
sudo deluser --backup --remove-home maryam

پیش از حذف کاربر

اگر کاربر سرویسی در حال اجرا دارد یا فایل‌هایی در خارج از دایرکتوری خانه‌اش دارد، آن‌ها دسترسی خود را از دست می‌دهند (owner UID قدیمی می‌شوند). پیش از حذف، بررسی کنید:

ps -u maryam
find / -user maryam 2>/dev/null

تغییر رمز عبور#

# تغییر رمز خودتان
passwd
 
# تغییر رمز کاربر دیگر (نیازمند sudo)
sudo passwd maryam
 
# قفل‌کردن رمز کاربر
sudo passwd -l maryam
 
# باز کردن قفل
sudo passwd -u maryam
 
# اجبار به تغییر رمز در نخستین ورود
sudo passwd -e maryam

ویرایش کاربر با usermod#

# تغییر نام کاربری
sudo usermod -l newname oldname
 
# تغییر دایرکتوری خانه
sudo usermod -d /home/newhome -m maryam
 
# تغییر shell
sudo usermod -s /bin/zsh maryam
 
# تغییر نام کامل
sudo usermod -c "Maryam Rezaei 2" maryam
 
# افزودن به گروه اضافی
sudo usermod -aG docker maryam
 
# افزودن به چند گروه
sudo usermod -aG docker,libvirt,wheel maryam

علامت -a در -aG مهم است

اگر از -G بدون a- استفاده کنید (یعنی فقط -G)، کاربر از تمام گروه‌های قبلی حذف می‌شود و فقط در گروه‌های جدید می‌ماند! همیشه -aG (append to groups) را استفاده کنید.

مدیریت گروه‌ها#

گروه‌ها برای مدیریت دسترسی به فایل‌ها و سرویس‌ها استفاده می‌شوند.

# لیست تمام گروه‌ها
cat /etc/group | head
 
# گروه‌های کاربر فعلی
groups
 
# گروه‌های کاربر خاص
groups maryam
 
# افزودن گروه جدید
sudo addgroup developers
# یا
sudo groupadd developers
 
# افزودن کاربر به گروه
sudo adduser maryam developers
# یا
sudo usermod -aG developers maryam
 
# حذف کاربر از گروه
sudo deluser maryam developers
# یا
sudo gpasswd -d maryam developers
 
# حذف گروه
sudo delgroup developers

گروه‌های مهم در Debian#

گروهتوضیح
sudoدسترسی به sudo
wheelمعادل sudo در برخی توزیع‌ها
www-dataکاربر وب‌سرور Apache/Nginx
dockerاجرای Docker بدون sudo
libvirtمدیریت ماشین‌های مجازی با libvirt
kvmدسترسی به /dev/kvm
audioدسترسی به کارت صدا
videoدسترسی به کارت گرافیک و DRM
cdromدسترسی به درایو نوری
plugdevمدیریت دستگاه‌های hotplug (USB)
staffدسترسی به /usr/local
usersگروه پیش‌فرض کاربران عادی

افزودن به گروه sudo

برای دادن دسترسی sudo به یک کاربر، او را به گروه sudo اضافه کنید:

sudo usermod -aG sudo maryam

پس از این کار، کاربر باید خارج و دوباره وارد شود تا عضویت در گروه جدید فعال شود. برای جزئیات به آموزش sudo مراجعه کنید.

اطلاعات لاگین کاربر#

# چه کاربرانی وارد شده‌اند
who
 
# تاریخ آخرین ورود هر کاربر
lastlog | head
 
# تاریخ ورود‌های اخیر
last | head
 
# ورود‌های ناموفق
sudo lastb | head
 
# اطلاعات کامل نشست فعلی
w

پیکربندی پیش‌فرض کاربران جدید#

فایل /etc/login.defs تنظیمات پیش‌فرض کاربران را نگه می‌دارد:

# مشاهدهٔ تنظیمات مهم
grep -E "^(UID_MIN|UID_MAX|GID_MIN|GID_MAX|PASS_MIN_LEN|PASS_MAX_DAYS|UMASK)" /etc/login.defs
 
# خروجی:
# UID_MIN 1000
# UID_MAX 59999
# GID_MIN 1000
# GID_MAX 59999
# PASS_MIN_LEN 5
# PASS_MAX_DAYS 99999
# UMASK 022

فایل /etc/skel/ (Skeleton) شامل فایل‌هایی است که به دایرکتوری خانهٔ هر کاربر جدید کپی می‌شود:

ls -la /etc/skel/
# .bashrc  .profile  .bash_logout

اگر می‌خواهید فایل پیش‌فرضی برای همهٔ کاربران جدید اضافه کنید، آن را در /etc/skel/ قرار دهید.

خطاهای رایج#

۱. کاربر پس از افزودن به گروه، در گروه نیست#

مشکل: پس از usermod -aG docker maryam، کاربر هنوز نمی‌تواند Docker را اجرا کند.

راه‌حل: کاربر باید خارج و دوباره وارد شود. یا:

# راه‌حل موقت بدون خروج
su - $USER
 
# بررسی
groups

۲. خطای "user already exists"#

مشکل: تلاش به ساخت کاربر با نام تکراری شکست می‌خورد.

راه‌حل:

# بررسی کاربر موجود
id maryam
 
# اگر کاربر قبلی به‌طور ناقص حذف شده:
sudo deluser maryam
sudo rm -rf /home/maryam
sudo groupdel maryam 2>/dev/null

۳. تغییر shell کاربر اعمال نمی‌شود#

مشکل: usermod -s /bin/zsh maryam انجام شد اما هنوز bash اجرا می‌شود.

راه‌حل: کاربر باید خارج و دوباره وارد شود. یا shell فعلی را با exec zsh جایگزین کنید.

۴. رمز کاربر قفل شده#

su - maryam
Password: ********
su: Authentication failure

راه‌حل:

# بررسی وضعیت رمز
sudo passwd -S maryam
# خروجی:
# maryam L 06/30/2026 0 99999 7 -1
# (L = Locked, P = Password set)
 
# باز کردن قفل
sudo passwd -u maryam
# یا تنظیم رمز جدید
sudo passwd maryam

خلاصه و مرحلهٔ بعد#

مدیریت کاربران در Debian با adduser، deluser، usermod و groups ساده و قدرتمند است. همیشه از adduser به‌جای useradd استفاده کنید (مگر در اسکریپت‌ها) و در افزودن به گروه‌ها از -aG (نه -G) استفاده کنید.

به‌عنوان گام بعدی:

  • آموزش sudo را برای دادن دسترسی‌های مدیریتی محدود ببینید
  • آموزش SSH را برای ورود از راه دور بخوانید
  • آموزش systemd را برای مدیریت سرویس‌ها مرور کنید
اشتراک‌گذاری:

این صفحه در تاریخ ۹ تیر ۱۴۰۵ به‌روزرسانی شده است.