مدیریت کاربران در Debian
آموزش افزودن، حذف و مدیریت کاربران و گروهها در Debian با useradd، adduser، usermod و دستورات مرتبط.
مدیریت کاربران و گروهها یکی از وظایف اصلی مدیر سیستم در Debian است. در این آموزش با دستورات افزودن، حذف و ویرایش کاربران، و مدیریت گروهها آشنا میشوید.
کاربران در Debian
Debian از مدل چندکاربرهٔ UNIX استفاده میکند؛ یعنی چندین کاربر میتوانند همزمان از سیستم استفاده کنند و هر کدام سطح دسترسی مشخصی دارند.
| نوع کاربر | UID | توضیح |
|---|---|---|
| root | 0 | کاربر مدیر با دسترسی کامل |
| کاربران سیستم | 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) |
| 3 | UID |
| 4 | GID (گروه اصلی) |
| 5 | نام کامل (GECOS) |
| 6 | دایرکتوری خانه |
| 7 | shell پیشفرض |
افزودن کاربر جدید
روش پیشنهادی: 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] yadduser بهتر از 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 را برای مدیریت سرویسها مرور کنید
این صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.