مدیریت کاربران در Arch Linux
آشنایی با مدیریت کاربران، گروهها و سطوح دسترسی در Arch Linux: ایجاد، حذف، تغییر رمز و مدیریت گروهها.
مدیریت کاربران یکی از وظایف پایهٔ هر مدیر سیستم است. در Arch Linux، ابزارهای استاندارد لینوکسی برای مدیریت کاربران استفاده میشوند. در این آموزش، ایجاد، حذف، ویرایش کاربران و مدیریت گروهها را بهطور کامل مرور میکنیم.
مفاهیم پایه
کاربر (User)
هر کاربر در لینوکس دارای:
- UID (User ID) — شناسهٔ عددی یکتا
- username — نام ورود
- home directory — پوشهٔ شخصی (معمولاً
/home/username) - shell — خط فرمان پیشفرض (مثلاً
/bin/bash) - گروههای اصلی و فرعی — تعیین سطح دسترسی
گروه (Group)
گروهها مجموعههایی از کاربران هستند که دسترسیهای مشترک دارند. مثلاً:
wheel— کاربران با دسترسی sudoaudio— دسترسی به سختافزار صوتیvideo— دسترسی به سختافزار گرافیکیdocker— دسترسی به Docker بدون sudo
UIDهای ویژه
0— root (بالاترین دسترسی)1-999— کاربران سیستمی (سرویسها)1000-60000— کاربران عادی
فایلهای پیکربندی
سه فایل اصلی مدیریت کاربران:
| فایل | کاربرد |
|---|---|
/etc/passwd | اطلاعات کاربران (نام، UID، shell، home) |
/etc/shadow | رمزهای عبور هششده |
/etc/group | اطلاعات گروهها |
هرگز این فایلها را مستقیماً ویرایش نکنید
این فایلها حیاتی هستند. همیشه از ابزارهایی چون useradd, usermod, passwd استفاده کنید. ویرایش دستی میتواند سیستم را غیرقابل استفاده کند.
ایجاد کاربر جدید
دستور useradd
# ساخت کاربر ساده
sudo useradd -m username
# ساخت کاربر با shell مشخص
sudo useradd -m -s /bin/bash username
# ساخت کاربر با گروههای فرعی
sudo useradd -m -G wheel,audio,video -s /bin/bash usernameتوضیح گزینهها:
-m— ساخت دایرکتوری home-s— تنظیم shell پیشفرض-G— افزودن به گروههای فرعی-g— تعیین گروه اصلی-c— توضیح (full name)
تنظیم رمز عبور
# تنظیم رمز عبور برای کاربر جدید
sudo passwd usernameمعادل با adduser (تعاملی)
Arch ابزار adduser ندارد، اما میتوانید با این الگو کاربر بسازید:
sudo useradd -m -G wheel -s /bin/bash username
sudo passwd usernameویرایش کاربر
# تغییر shell
sudo usermod -s /bin/zsh username
# تغییر دایرکتوری home
sudo usermod -d /new/home -m username
# افزودن به گروه جدید
sudo usermod -aG docker username
# تغییر نام کاربری
sudo usermod -l newname oldname
# قفل کردن حساب (غیرفعالسازی ورود)
sudo usermod -L username
# باز کردن قفل
sudo usermod -U usernameگزینهٔ -a در usermod
همیشه از -aG (append) استفاده کنید، نه -G بهتنهایی. -G بهتنهایی، کاربر را از تمام گروههای قبلی حذف میکند و فقط در گروه جدید قرار میدهد!
حذف کاربر
# حذف کاربر (بدون حذف home)
sudo userdel username
# حذف کاربر بههمراه home و فایلها
sudo userdel -r username
# حذف با حفظ فایلهای سیستمی دیگر
sudo userdel -f usernameمدیریت گروهها
فهرست گروهها
# همهٔ گروهها
cat /etc/group
# گروههای کاربر
groups username
# اطلاعاتی دربارهٔ یک گروه
getent group wheelایجاد گروه
sudo groupadd developersحذف گروه
sudo groupdel developersافزودن/حذف کاربر از گروه
# افزودن به گروه
sudo gpasswd -a username wheel
# حذف از گروه
sudo gpasswd -d username wheelگروههای مهم در Arch
| گروه | دسترسی |
|---|---|
wheel | دسترسی sudo (با پیکربندی sudoers) |
audio | دسترسی به سختافزار صوتی |
video | دسترسی به GPU و دوربین |
input | دسترسی به دستگاههای ورودی |
storage | دسترسی به دستگاههای ذخیرهسازی |
network | مدیریت شبکه (با NetworkManager) |
power | خاموش/ریاستارت سیستم |
lp | دسترسی به چاپگرها |
docker | اجرای Docker بدون sudo |
kvm | استفاده از KVM برای مجازیسازی |
libvirt | مدیریت libvirt |
vboxusers | استفاده از VirtualBox |
گروه wheel
در Arch، گروه wheel سنتی است که برای کاربران مدیریتی استفاده میشود. برای فعالسازی sudo برای این گروه، فایل /etc/sudoers را با visudo ویرایش کرده و خط %wheel ALL=(ALL:ALL) ALL را از کامنت خارج کنید. برای جزئیات به آموزش sudo مراجعه کنید.
تغییر کاربر
دستور su
# تبدیل به root (نیاز به رمز root)
su -
# تبدیل به کاربر دیگر
su - username
# اجرای یک دستور بهعنوان کاربر دیگر
su -c "command" usernameدستور sudo
# اجرای یک دستور بهعنوان root
sudo command
# اجرای دستور بهعنوان کاربر دیگر
sudo -u username command
# باز کردن shell بهعنوان root
sudo -iاطلاعات کاربر
# اطلاعات کاربر فعلی
id
# اطلاعات کاربر دیگر
id username
# نام کاربری فعلی
whoami
# کاربران واردشده به سیستم
who
w
# تاریخ آخرین ورود
lastlog | grep -v "Never"پیکربندی پیشفرض کاربر جدید
فایل /etc/default/useradd تنظیمات پیشفرض را نگه میدارد:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yesفایل /etc/skel/ (Skeleton) شامل فایلهایی است که بهصورت خودکار در home کاربر جدید کپی میشوند (مثلاً .bashrc, .profile).
تنظیم انقضای حساب
# تنظیم تاریخ انقضا
sudo usermod -e 2026-12-31 username
# تنظیم تعداد روزهای عدم استفاده تا قفل
sudo usermod -f 30 username
# تنظیم سیاست رمز عبور
sudo chage -M 90 -m 7 -W 7 username
# -M: حداکثر عمر رمز (روز)
# -m: حداقل عمر رمز (روز)
# -W: هشدار قبل از انقضا (روز)بررسی رمز عبور
# مشاهدهٔ سیاست رمز عبور کاربر
sudo chage -l usernameکاربران سیستمی
برای سرویسها (مثلاً nginx, postgresql)، کاربران سیستمی بدون home و بدون shell میسازیم:
sudo useradd -r -s /usr/sbin/nologin myservice-r— کاربر سیستمی (UID ۱-۹۹۹)-s /usr/sbin/nologin— جلوگیری از ورود تعاملی
بهترین روشها
بهترین روشها
- هرگز بهعنوان root کار نکنید؛ از sudo استفاده کنید
- برای هر کاربر، حساب شخصی جداگانه بسازید
- کاربران را به گروههای لازم اضافه کنید، اما نه بیشتر
- رمزهای قوی تنظیم کنید و از SSH key برای ورود استفاده کنید
- کاربران سیستمی را برای سرویسها استفاده کنید
خلاصه
در این آموزش:
- کاربران و گروهها را در لینوکس شناختید
- با
useradd,usermod,userdelکار کردید - گروههای مهم Arch را آموختید
- با
suوsudoتغییر کاربر دادید - سیاست رمز عبور و انقضا را تنظیم کردید
در آموزش بعدی، با پیکربندی sudo بهطور مفصل آشنا میشوید.
پرسشهای رایج
چگونه کاربری را به sudoers اضافه کنم؟
سادهترین راه: کاربر را به گروه wheel اضافه کنید و فایل sudoers را پیکربندی کنید:
sudo usermod -aG wheel username
sudo visudo
# خط %wheel ALL=(ALL:ALL) ALL را از کامنت خارج کنیدچگونه shells موجود را ببینم؟
cat /etc/shellsچگونه پیشفرض shell را تغییر دهم؟
# با usermod
sudo usermod -s /bin/zsh username
# یا با chsh
chsh -s /bin/zshاین صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.