USERMOD(8) دستورهای مدیریت سیستم (System Management Commands) USERMOD(8)

usermod - ویرایش یک حساب کاربری

usermod [گزینه‌ها] LOGIN

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

گزینه‌هایی که برای دستور usermod اعمال می‌شوند عبارتند از:

-a, --append

افزودن کاربر به گروه(های) تکمیلی. تنها همراه با گزینه -G استفاده شود.

-b, --badname

اجازه دادن به نام‌هایی که با استانداردها مطابقت ندارند.

-c, --comment COMMENT

به‌روزرسانی فیلد توضیحات (comment) کاربر در /etc/passwd، که معمولاً با استفاده از ابزار chfn(1) ویرایش می‌شود.

-d, --home HOME_DIR

شاخهٔ ورود جدید کاربر.

اگر گزینهٔ -m داده شود، محتوای شاخهٔ خانگی فعلی به شاخهٔ خانگی جدید منتقل خواهد شد، که اگر وجود نداشته باشد ایجاد می‌شود. اگر شاخهٔ خانگی فعلی وجود نداشته باشد، شاخهٔ خانگی جدید ایجاد نخواهد شد.

-e, --expiredate EXPIRE_DATE

تاریخی که در آن حساب کاربری غیرفعال خواهد شد. تاریخ در قالب YYYY-MM-DD مشخص می‌شود. اعداد صحیح به عنوان روزهای پس از 1970-01-01 تفسیر می‌شوند.

ورودی -1 یا یک رشتهٔ خالی فیلد انقضای حساب را در فایل گذرواژهٔ shadow خالی خواهد کرد. حساب بدون محدودیت زمانی در دسترس باقی خواهد ماند.

این گزینه به فایل /etc/shadow نیاز دارد. اگر مدخلی در /etc/shadow وجود نداشته باشد، یک مدخل ایجاد خواهد شد.

-f, --inactive INACTIVE

تعیین تعداد روزهای پس از پایان مهلت گذرواژه که کاربر در طی آن همچنان می‌تواند با تغییر فوری گذرواژه وارد سیستم شود. این دورهٔ مهلت پیش از غیرفعال شدن حساب در فایل گذرواژهٔ shadow ذخیره می‌شود. ورودی 0 گذرواژهٔ منقضی‌شده را بدون هیچ تأخیری غیرفعال می‌کند. ورودی -1 فیلد مربوطه را در فایل گذرواژهٔ shadow خالی خواهد کرد. برای اطلاعات بیشتر shadow(5) را ببینید.

این گزینه به فایل /etc/shadow نیاز دارد. اگر مدخلی در /etc/shadow وجود نداشته باشد، یک مدخل ایجاد خواهد شد.

-g, --gid GROUP

نام یا شناسه عددی (ID) گروه اصلی جدید کاربر. گروه باید وجود داشته باشد.

هر فایلی در شاخهٔ خانگی کاربر که متعلق به گروه اصلی قبلی کاربر باشد، متعلق به این گروه جدید خواهد شد.

مالکیت گروهی فایل‌های خارج از شاخهٔ خانگی کاربر باید به صورت دستی اصلاح شود.

تغییر مالکیت گروهی فایل‌های درون شاخهٔ خانگی کاربر همچنین در صورتی که uid مالک شاخهٔ خانگی با شناسه کاربر فعلی یا جدید متفاوت باشد، انجام نمی‌شود. این یک اقدام ایمنی برای شاخه‌های خانگی ویژه مانند / است.

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]

فهرستی از گروه‌های تکمیلی که کاربر نیز عضوی از آن‌ها است. هر گروه با یک کاما از گروه بعدی جدا می‌شود، بدون هیچ فاصلهٔ خالی بین آن‌ها. گروه‌ها باید وجود داشته باشند.

اگر کاربر در حال حاضر عضو گروهی باشد که در فهرست ذکر نشده است، کاربر از آن گروه حذف خواهد شد. این رفتار را می‌توان از طریق گزینهٔ -a تغییر داد، که کاربر را به فهرست گروه‌های تکمیلی فعلی می‌افزاید.

-l, --login NEW_LOGIN

نام کاربر از LOGIN به NEW_LOGIN تغییر خواهد یافت. هیچ چیز دیگری تغییر نمی‌کند. به ویژه، شاخهٔ خانگی یا صندوق پستی (mail spool) کاربر احتمالاً باید به صورت دستی تغییر نام یابد تا نام ورود جدید را بازتاب دهد.

-L, --lock

قفل کردن گذرواژهٔ یک کاربر. این گزینه یک '!' در ابتدای گذرواژهٔ رمزگذاری‌شده قرار می‌دهد و عملاً گذرواژه را غیرفعال می‌کند. شما نمی‌توانید این گزینه را همراه با -p یا -U استفاده کنید.

توجه: اگر مایلید حساب را قفل کنید (نه فقط دسترسی با گذرواژه)، باید EXPIRE_DATE را نیز روی 1 تنظیم کنید.

-m, --move-home

انتقال محتوای شاخهٔ خانگی کاربر به مکان جدید. اگر شاخهٔ خانگی فعلی وجود نداشته باشد، شاخهٔ خانگی جدید ایجاد نخواهد شد.

این گزینه فقط همراه با گزینهٔ -d (یا --home) معتبر است.

usermod سعی خواهد کرد مالکیت فایل‌ها را مطابقت دهد و حالت‌ها (modes)، ACL و ویژگی‌های توسعه‌یافته را کپی کند، اما ممکن است پس از آن تغییرات دستی مورد نیاز باشد.

-o, --non-unique

امکان تغییر شناسه کاربر به یک مقدار غیریکتا را فراهم می‌کند.

این گزینه فقط همراه با گزینهٔ -u معتبر است. از آنجا که هویت کاربر به عنوان کلیدی برای نگاشت بین کاربران از یک سو و مجوزها، مالکیت فایل‌ها و جنبه‌های دیگری که رفتار سیستم را تعیین می‌کنند از سوی دیگر عمل می‌کند، بیش از یک نام ورود به حسابِ دارای این UID دسترسی خواهند داشت.

-p, --password PASSWORD

تعریف یک گذرواژهٔ جدید برای کاربر. انتظار می‌رود PASSWORD به صورت رمزگذاری‌شده باشد، همان‌طور که توسط crypt (3) بازگردانده می‌شود.

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

گذرواژه در فایل محلی /etc/passwd یا /etc/shadow نوشته خواهد شد. این ممکن است با پایگاه دادهٔ گذرواژهٔ پیکربندی‌شده در تنظیمات PAM شما متفاوت باشد.

باید مطمئن شوید که گذرواژه از سیاست گذرواژهٔ سیستم پیروی می‌کند.

-r, --remove

حذف کاربر از گروه(های) تکمیلی نام‌برده‌شده. فقط همراه با گزینهٔ -G استفاده شود.

-R, --root CHROOT_DIR

اعمال تغییرات در شاخهٔ CHROOT_DIR و استفاده از فایل‌های پیکربندی موجود در شاخهٔ CHROOT_DIR. فقط مسیرهای مطلق پشتیبانی می‌شوند.

-P, --prefix PREFIX_DIR

اعمال تغییرات در درخت شاخهٔ آغازشده با PREFIX_DIR و همچنین استفاده از فایل‌های پیکربندی موجود در آنجا. این گزینه chroot نمی‌کند و برای آماده‌سازی یک مقصد کامپایل متقابل (cross-compilation) در نظر گرفته شده است. برخی محدودیت‌ها: کاربران/گروه‌های NIS و LDAP بررسی نمی‌شوند. احراز هویت PAM از فایل‌های میزبان استفاده می‌کند. پشتیبانی از SELINUX وجود ندارد.

-s, --shell SHELL

تغییر شل ورود کاربر. یک رشتهٔ خالی برای SHELL فیلد را در /etc/passwd خالی می‌کند و کاربر را با شل پیش‌فرض سیستم وارد می‌کند.

-u, --uid UID

مقدار جدید شناسهٔ کاربر.

این مقدار باید یکتا باشد، مگر اینکه از گزینهٔ -o استفاده شود. مقدار باید غیرمنفی باشد.

صندوق پستی کاربر و هر فایلی که متعلق به کاربر بوده و در شاخهٔ خانگی کاربر قرار دارد، شناسه کاربری فایل آن به طور خودکار تغییر خواهد کرد.

مالکیت فایل‌های خارج از شاخهٔ خانگی کاربر باید به صورت دستی اصلاح شود.

تغییر مالکیت کاربری فایل‌های درون شاخهٔ خانگی کاربر همچنین در صورتی که uid مالک شاخهٔ خانگی با شناسه کاربر فعلی یا جدید متفاوت باشد، انجام نمی‌شود. این یک اقدام ایمنی برای شاخه‌های خانگی ویژه مانند / است.

هیچ بررسی‌ای در رابطه با UID_MIN، UID_MAX، SYS_UID_MIN، یا SYS_UID_MAX از /etc/login.defs انجام نخواهد شد.

-U, --unlock

باز کردن قفل گذرواژهٔ کاربر. این گزینه '!' را از ابتدای گذرواژهٔ رمزگذاری‌شده حذف می‌کند. شما نمی‌توانید این گزینه را همراه با -p یا -L استفاده کنید.

توجه: اگر مایلید قفل حساب را باز کنید (نه فقط دسترسی با گذرواژه)، باید EXPIRE_DATE را نیز تنظیم کنید (برای مثال روی 99999، یا روی مقدار EXPIRE از /etc/default/useradd).

-v, --add-subuids FIRST-LAST

افزودن محدوده‌ای از uidهای زیرمجموعه (subordinate uids) به حساب کاربر.

این گزینه می‌تواند چندین بار مشخص شود تا چندین محدوده به حساب یک کاربر افزوده شود.

هیچ بررسی‌ای در رابطه با SUB_UID_MIN، SUB_UID_MAX، یا SUB_UID_COUNT از /etc/login.defs انجام نخواهد شد.

-V, --del-subuids FIRST-LAST

حذف محدوده‌ای از uidهای زیرمجموعه از حساب کاربر.

این گزینه می‌تواند چندین بار مشخص شود تا چندین محدوده از حساب یک کاربر حذف شود. هنگامی که هر دو گزینهٔ --del-subuids و --add-subuids مشخص شوند، حذف تمام محدوده‌های uid زیرمجموعه پیش از افزودن هر محدودهٔ uid زیرمجموعه انجام می‌شود.

هیچ بررسی‌ای در رابطه با SUB_UID_MIN، SUB_UID_MAX، یا SUB_UID_COUNT از /etc/login.defs انجام نخواهد شد.

-w, --add-subgids FIRST-LAST

افزودن محدوده‌ای از gidهای زیرمجموعه (subordinate gids) به حساب کاربر.

این گزینه می‌تواند چندین بار مشخص شود تا چندین محدوده به حساب یک کاربر افزوده شود.

هیچ بررسی‌ای در رابطه با SUB_GID_MIN، SUB_GID_MAX، یا SUB_GID_COUNT از /etc/login.defs انجام نخواهد شد.

-W, --del-subgids FIRST-LAST

حذف محدوده‌ای از gidهای زیرمجموعه از حساب کاربر.

این گزینه می‌تواند چندین بار مشخص شود تا چندین محدوده از حساب یک کاربر حذف شود. هنگامی که هر دو گزینهٔ --del-subgids و --add-subgids مشخص شوند، حذف تمام محدوده‌های gid زیرمجموعه پیش از افزودن هر محدودهٔ gid زیرمجموعه انجام می‌شود.

هیچ بررسی‌ای در رابطه با SUB_GID_MIN، SUB_GID_MAX، یا SUB_GID_COUNT از /etc/login.defs انجام نخواهد شد.

-Z, --selinux-user SEUSER

تعیین کاربر SELinux برای نگاشت با LOGIN. یک رشتهٔ خالی ("") مدخل مربوطه را (در صورت وجود) حذف خواهد کرد. توجه داشته باشید که سیستم shadow مقدار selinux-user را ذخیره نمی‌کند، بلکه برای این منظور از semanage(8) استفاده می‌کند.

اگر شناسه عددی کاربر، نام کاربر، یا شاخهٔ خانگی کاربر در حال تغییر است، باید مطمئن شوید که کاربر نام‌برده در هنگام اجرای این دستور هیچ فرآیندی را اجرا نمی‌کند. usermod این موضوع را در لینوکس بررسی می‌کند. در سایر سیستم‌عامل‌ها فقط از utmp برای بررسی اینکه آیا کاربر وارد سیستم شده است یا خیر استفاده می‌کند.

شما باید مالک هر فایل crontab یا وظیفهٔ at را به صورت دستی تغییر دهید.

شما باید هرگونه تغییر مربوط به NIS را روی سرور NIS انجام دهید.

متغیرهای پیکربندی زیر در /etc/login.defs رفتار این ابزار را تغییر می‌دهند:

LASTLOG_UID_MAX (number)

بالاترین شماره شناسه کاربر که مدخل‌های lastlog برای آن باید به‌روزرسانی شوند. از آنجا که شناسه‌های کاربری بالاتر معمولاً توسط سرویس‌های شناسایی و احراز هویت کاربر راه دور رهگیری می‌شوند، نیازی به ایجاد یک فایل پراکنده (sparse) بزرگ lastlog برای آن‌ها نیست.

نبود گزینهٔ LASTLOG_UID_MAX در پیکربندی به این معنی است که هیچ محدودیتی در شناسه کاربر برای نوشتن مدخل‌های lastlog وجود ندارد.

MAIL_DIR (string)

شاخهٔ صندوق پستی (mail spool). این مورد برای دستکاری صندوق پستی در زمانی که حساب کاربری مربوط به آن ویرایش یا حذف می‌شود مورد نیاز است. اگر مشخص نشود، از مقدار پیش‌فرض زمان کامپایل استفاده می‌شود. پارامتر CREATE_MAIL_SPOOL در /etc/default/useradd تعیین می‌کند که آیا صندوق پستی باید ایجاد شود یا خیر.

MAIL_FILE (string)

مکان فایل‌های صندوق پستی کاربران را نسبت به شاخهٔ خانگی آن‌ها تعیین می‌کند.

متغیرهای MAIL_DIR و MAIL_FILE توسط useradd، usermod و userdel برای ایجاد، انتقال یا حذف صندوق پستی کاربر استفاده می‌شوند.

MAX_MEMBERS_PER_GROUP (number)

حداکثر اعضا در هر مدخل گروه. هنگامی که به حداکثر رسید، یک مدخل گروه جدید (خط جدید) در /etc/group آغاز می‌شود (با همان نام، همان رمز عبور و همان GID).

مقدار پیش‌فرض 0 است، به این معنی که هیچ محدودیتی در تعداد اعضای یک گروه وجود ندارد.

این ویژگی (گروه تفکیک‌شده) اجازه می‌دهد طول خطوط در فایل گروه محدود شود. این برای اطمینان از اینکه خطوط گروه‌های NIS طولانی‌تر از ۱۰۲۴ نویسه نباشند مفید است.

اگر نیاز به اعمال چنین محدودیتی دارید، می‌توانید از 25 استفاده کنید.

توجه: گروه‌های تفکیک‌شده ممکن است توسط همه ابزارها پشتیبانی نشوند (حتی در مجموعه ابزار Shadow). نباید از این متغیر استفاده کنید مگر اینکه واقعاً به آن نیاز داشته باشید.

SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)

اگر /etc/subuid وجود داشته باشد، دستورهای useradd و newusers (مگر اینکه کاربر از قبل شناسه‌های گروه زیرمجموعه داشته باشد) به تعداد SUB_GID_COUNT شناسه گروه استفاده‌نشده از محدودهٔ SUB_GID_MIN تا SUB_GID_MAX را به هر کاربر جدید اختصاص می‌دهند.

مقادیر پیش‌فرض برای SUB_GID_MIN، SUB_GID_MAX، SUB_GID_COUNT به ترتیب ۱۰۰۰۰۰، ۶۰۰۱۰۰۰۰۰ و ۶۵۵۳۶ هستند.

SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)

اگر /etc/subuid وجود داشته باشد، دستورهای useradd و newusers (مگر اینکه کاربر از قبل شناسه‌های کاربر زیرمجموعه داشته باشد) به تعداد SUB_UID_COUNT شناسه کاربر استفاده‌نشده از محدودهٔ SUB_UID_MIN تا SUB_UID_MAX را به هر کاربر جدید اختصاص می‌دهند.

مقادیر پیش‌فرض برای SUB_UID_MIN، SUB_UID_MAX، SUB_UID_COUNT به ترتیب ۱۰۰۰۰۰، ۶۰۰۱۰۰۰۰۰ و ۶۵۵۳۶ هستند.

/etc/group

اطلاعات حساب‌های گروه

/etc/gshadow

اطلاعات امن حساب‌های گروه.

/etc/login.defs

پیکربندی مجموعه گذرواژه Shadow

/etc/passwd

اطلاعات حساب‌های کاربر

/etc/shadow

اطلاعات امن حساب‌های کاربر

/etc/subgid

شناسه‌های گروه زیرمجموعه به ازای هر کاربر

/etc/subuid

شناسه‌های کاربر زیرمجموعه به ازای هر کاربر

chfn(1), chsh(1), passwd(1), crypt(3), gpasswd(8), groupadd(8), groupdel(8), groupmod(8), login.defs(5), subgid(5), subuid(5), useradd(8), userdel(8).

12/14/2025 shadow-utils 4.13