## 🧑🔧 ساختار کلی دستور `usermod`
```bash
sudo usermod [گزینهها] username
```
شما باید به عنوان **کاربر ریشه (root)** یا با دسترسی **sudo** این دستور را اجرا کنید.
---
## 📦 تغییر گروه پیشفرض کاربر (Primary Group)
```bash
sudo usermod -g newgroup username
```
🔹 این دستور گروه اصلی (Primary) کاربر را به `newgroup` تغییر میدهد.
---
## 👥 اضافه کردن کاربر به گروههای ثانویه (Supplementary Groups)
```bash
sudo usermod -aG group1,group2 username
```
🔹 `-aG` باعث میشود کاربر به گروههای دیگر **اضافه شود** بدون حذف گروههای قبلی.
**توجه:** فراموش نکنید که همیشه از `-a` همراه با `-G` استفاده کنید، در غیر این صورت عضویتهای قبلی کاربر پاک میشوند!
---
## 🏡 تغییر مسیر دایرکتوری خانگی (Home Directory)
```bash
sudo usermod -d /new/home/dir -m username
```
🔹 گزینه `-d` مسیر جدید را تعیین میکند، و `-m` باعث انتقال فایلهای فعلی به مسیر جدید میشود.
---
## 🐚 تغییر شِل (Shell) پیشفرض کاربر
```bash
sudo usermod -s /bin/zsh username
```
🔹 با این دستور میتونید شِل کاربر رو مثلاً از `bash` به `zsh` تغییر بدید.
---
## 🔐 قفل یا باز کردن حساب کاربری
### 🔒 قفل کردن:
```bash
sudo usermod -L username
```
### 🔓 باز کردن:
```bash
sudo usermod -U username
```
🔹 این کار رمز عبور کاربر رو غیرفعال میکنه بدون حذف اطلاعاتش.
---
## 🆔 تغییر UID (User ID)
```bash
sudo usermod -u 1500 username
```
🔹 UID جدید نباید تکراری باشه. این کار برای هماهنگسازی بین سیستمها کاربرد داره.
---
## 📛 تغییر نام کاربری (Username)
```bash
sudo usermod -l newname oldname
```
🔹 فقط نام کاربری تغییر میکنه، نه مسیر دایرکتوری خانگی. برای تغییر اون هم از `-d` استفاده کنید.
---
## 🧹 غیرفعالسازی دسترسی شِل (حساب بدون دسترسی ورود)
```bash
sudo usermod -s /usr/sbin/nologin username
```
🔹 مناسب برای کاربرانی که فقط برای اجرای سرویس یا daemon ساخته شدن و نیازی به ورود ندارن.
---
## 🧠 بررسی اطلاعات کاربر پس از تغییرات
بعد از اعمال تغییرات، برای بررسی وضعیت کاربر:
```bash
id username
```
یا مشاهده اطلاعات از فایل `passwd`:
```bash
grep username /etc/passwd
```
---
## ⚠️ نکات امنیتی و مهم
- قبل از تغییر UID یا مسیر خانگی، از اطلاعات کاربر بکاپ بگیرید.
- هنگام تغییر شِل یا گروهها، مطمئن باشید تنظیمات مربوط به دسترسیها و سطوح مجاز بهدرستی انجام شده.
- برای کاربران سرویسها، از `nologin` استفاده کنید تا دسترسی ورود مستقیم به آنها ندهید.
---
### 📌 جمعبندی
دستور `usermod` یکی از ابزارهای حیاتی در مدیریت کاربران لینوکس است که به شما اجازه میدهد کنترل کاملی روی مشخصات کاربران داشته باشید — از مسیر خانگی گرفته تا دسترسیها و گروهها. استفادهی صحیح از آن میتواند ساختار سیستم شما را منظمتر، امنتر و حرفهایتر کند.