HOMECTL(1) homectl HOMECTL(1)

homectl - کنترل سرویس دایرکتوریهای خانگی کاربر (systemd-homed)

homectl [OPTIONS...] {COMMAND} [NAME...]

از homectl می‌توان برای ایجاد، حذف، تغییر یا بازرسی دایرکتوری خانگی کاربر استفاده کرد. این ابزار اساساً دستوری برای تعامل با systemd-homed.service(8) است که دایرکتوری‌های خانگی کاربران را مدیریت می‌کند.

دایرکتوری‌های خانگی مدیریت‌شده توسط systemd-homed.service خودکفا (self-contained) هستند و بنابراین رکورد کامل فراداده‌های کاربر را در خود فضای ذخیره‌سازی داده‌های دایرکتوری خانگی نگهداری می‌کنند، که این امر مهاجرت و انتقال آن‌ها را میان ماشین‌های مختلف آسان می‌سازد. به‌طور خاص، یک دایرکتوری خانگی یک رکورد کاربری متناظر را توصیف می‌کند، و هر رکورد کاربری مدیریت‌شده توسط systemd-homed.service نیز به معنای وجود و کپسوله‌سازی یک دایرکتوری خانگی است. بدین ترتیب حساب کاربری و دایرکتوری خانگی به مفهومی یکسان تبدیل می‌شوند.

مکانیسم‌های ذخیره‌سازی پشتیبان زیر پشتیبانی می‌شوند:

•یک فایل لوپ‌بک (loopback) رمزشده LUKS2 اختصاصی برای کاربر که در /home/*.home ذخیره می‌شود. هنگام ورود، سیستم‌فایل موجود در این فایل‌ها پس از ضمیمه شدن حجم رمزشده LUKS2 سوار (mount) می‌شود. گذرواژه کاربر با عبارت‌عبور رمزنگاری حجم LUKS2 یکسان است. بدین ترتیب دسترسی به داده‌ها بدون احراز هویت قبلی کاربر، حتی برای مدیر سیستم نیز امکان‌پذیر نیست. این مکانیسم ذخیره‌سازی قوی‌ترین امنیت داده را فراهم می‌کند و بنابراین توصیه می‌شود.
•مشابه مورد قبل، اما سیستم‌فایل رمزشده LUKS2 روی یک دستگاه بلوکی عادی، مانند یک حافظه فلش USB قرار دارد. در این حالت، دایرکتوری‌های خانگی و تمامی داده‌های درون آن‌ها به سادگی با وصل کردن فلش USB به سیستم‌های مختلف در زمان‌های گوناگون، میان ماشین‌ها قابل‌انتقال خواهند بود.
•یک دایرکتوری رمزشده با استفاده از "fscrypt" روی سیستم‌فایل‌هایی که از آن پشتیبانی می‌کنند (در حال حاضر اساساً "ext4")، واقع در /home/*.homedir. این مکانیسم نیز رمزنگاری فراهم می‌کند، اما به میزان قابل‌توجهی ضعیف‌تر از LUKS2 است، زیرا بیشتر فراداده‌های سیستم‌فایل محافظت‌نشده باقی می‌مانند. علاوه بر این، در حال حاضر پس از ایجاد دایرکتوری خانگی از تغییر گذرواژه کاربر پشتیبانی نمی‌کند.
•یک زیرحجم (subvolume) متعلق به "btrfs" برای هر کاربر، واقع در /home/*.homedir. این روش هیچ‌گونه رمزنگاری ارائه نمی‌دهد، اما پشتیبانی خوبی از سهمیه‌بندی دیسک (quota) دارد.
•یک دایرکتوری معمولی برای هر کاربر، واقع در /home/*.homedir. این روش رمزنگاری ارائه نمی‌دهد، اما یک راهکار جایگزین (fallback) مناسب و دردسترس روی همه ماشین‌ها است، حتی جاهایی که پشتیبانی از LUKS2، "fscrypt" یا "btrfs" موجود نیست.
•یک اشتراک فایل ویندوز (CIFS) اختصاصی برای هر کاربر.

توجه داشته باشید که systemd-homed.service و homectl حساب‌های کاربری «سنتی» یونیکس که با useradd(8) یا ابزارهای مشابه ساخته شده‌اند را مدیریت نمی‌کنند. به‌ویژه، این قابلیت برای مدیریت کاربران سیستمی (یعنی کاربرانی با شناسه کاربری UID کمتر از ۱۰۰۰) مناسب نبوده و منحصراً برای کاربران عادی («انسانی») است.

توجه داشته باشید کاربران و دایرکتوری‌های خانگی که از طریق systemd-homed.service مدیریت می‌شوند، در /etc/passwd و فایل‌های مشابه ظاهر نمی‌شوند؛ آن‌ها در زمان اجرا توسط NSS مربوط به glibc ترکیب و ساخته می‌شوند. از این رو قابل‌شناسایی بوده و می‌توان آن‌ها را از طریق ابزار getent(1) فهرست کرد.

این ابزار مستقیماً با systemd-homed.service ارتباط برقرار می‌کند و می‌تواند دستورات خاصی را روی دایرکتوری‌های خانگی که مدیریت می‌کند اجرا نماید. از آنجا که هر دایرکتوری خانگی که به این شیوه مدیریت می‌شود یک رکورد کاربر و گروه JSON نیز تعریف می‌کند، این دایرکتوری‌های خانگی را می‌توان از طریق userdbctl(1) نیز بررسی و فهرست کرد.

دایرکتوری‌های خانگی مدیریت‌شده توسط systemd-homed.service معمولاً در یکی از دو حالت یا در یک وضعیت گذار میان آن‌ها قرار دارند: در حالت "active" (فعال) آن‌ها قفل‌گشایی و سوار (mount) شده و در نتیجه برای سیستم و برنامه‌های آن قابل‌دسترسی هستند؛ در حالت "inactive" (غیرفعال) سوار نشده و در دسترس نیستند. فعال‌سازی به‌طور خودکار هنگام ورود کاربر رخ می‌دهد و معمولاً تنها پس از ارائه گذرواژه (یا توکن احراز هویت دیگر) تکمیل می‌شود. غیرفعال‌سازی پس از خروج کامل کاربر انجام می‌پذیرد. یک دایرکتوری خانگی تا زمانی که کاربر دست‌کم یک بار وارد سیستم شده باشد (یعنی حداقل یک نشست ورود داشته باشد) فعال باقی می‌ماند. هنگامی که کاربر برای بار دوم به‌صورت همزمان وارد شود، دایرکتوری خانگی فعال باقی می‌ماند. این دایرکتوری تنها پس از پایان آخرین نشست کاربر غیرفعال می‌شود.

گزینه‌های عمومی زیر پشتیبانی می‌شوند (گزینه‌های بیشتری که ویژگی‌های مختلف رکوردهای کاربری مدیریت‌شده توسط systemd-homed.service را کنترل می‌کنند، در بخش‌های پایین‌تر مستند شده‌اند):

--identity=FILE

رکورد JSON کاربر را از فایل مشخص‌شده می‌خواند. اگر به‌صورت "-" داده شود، رکورد کاربر را از ورودی استاندارد می‌خواند. شیء JSON ارائه‌شده باید از ساختار مستندشده در JSON User Records[1] پیروی کند. این گزینه می‌تواند همراه با دستورات create و update (در ادامه مشاهده کنید) استفاده شود، جایی که امکان پیکربندی مستقیم رکورد کاربر را در قالب JSON به‌همان شکل اصلی فراهم می‌کند، به‌جای تنظیم تک‌تک ویژگی‌های رکورد کاربر (به زیر مراجعه کنید).

افزوده‌شده در نسخه 245.

--json=FORMAT, -j

در صورت استفاده از دستور inspect (در ادامه ببینید)، نمایش خروجی رکورد کاربر در قالب JSON را کنترل می‌کند. یکی از مقادیر "pretty" (خوانا)، "short" (کوتاه) یا "off" (خاموش) را می‌پذیرد. اگر "pretty" باشد، فاصله‌ها و خطوط جدید مناسب برای خوانایی بهتر داده‌های JSON در خروجی درج می‌شوند. اگر "short" باشد، تمام فاصله‌های اضافی حذف می‌شوند. اگر "off" (پیش‌فرض) باشد، اطلاعات کاربر در قالب JSON نمایش داده نمی‌شود بلکه با قالب‌بندی خوانا برای انسان ارائه می‌گردد. گزینه -j هنگام اجرای تعاملی مقدار "pretty" و در غیر این صورت "short" را انتخاب می‌کند.

افزوده‌شده در نسخه 245.

--export-format=FORMAT, -E, -EE

هنگام استفاده همراه با دستور inspect در حالت JSON (در بالا ببینید)، می‌توان از آن برای حذف برخی جنبه‌های رکورد JSON کاربر در خروجی استفاده کرد. به‌طور مشخص، اگر قالب "stripped" استفاده شود، فیلدهای binding و runtime از رکورد حذف می‌شوند. اگر قالب "minimal" به کار رود، امضای رمزنگاری‌شده نیز حذف می‌شود. اگر قالب "full" استفاده شود، رکورد کامل JSON نمایش داده می‌شود (این حالت پیش‌فرض است). این گزینه برای رونوشت‌برداری از یک رکورد کاربری موجود به سیستمی دیگر جهت ایجاد کاربری مشابه با همان تنظیمات مفید است. به‌طور خاص: homectl inspect -EE | ssh root@othersystem homectl create -i- می‌تواند به عنوان یک خط فرمان ساده برای همانندسازی (replication) یک کاربر روی میزبانی دیگر استفاده شود. -E معادل -j --export-format=stripped، -EE معادل -j --export-format=minimal است. توجه داشته باشید که هنگام همانندسازی حساب‌های کاربری، رکوردهای کاربری به‌دست‌آمده در حالت "stripped" امضاهای رمزنگاری‌شده اصلی را حفظ می‌کنند و بنابراین تنها زمانی قابل‌تغییر هستند که کلید خصوصی لازم برای به‌روزرسانی آن‌ها در ماشین مقصد موجود باشد. هنگام همانندسازی کاربران در حالت "minimal"، امضا در حین فرآیند حذف می‌شود و در نتیجه رکورد به طور ضمنی با کلید ماشین مقصد امضا خواهد شد و می‌تواند بدون نیاز به انتقال کلید خصوصی، در آنجا به‌روزرسانی شود.

افزوده‌شده در نسخه 245.

--offline

برای به‌روزرسانی نسخه رکورد کاربری و دایرکتوری blob تعبیه‌شده در داخل ناحیه خانگی تلاشی نمی‌کند. این امر امکان انجام عملیات روی نواحی خانگی که غایب (غیرفعال/ناموجود) هستند یا بدون نیاز به احراز هویت به عنوان کاربری که در حال تغییر است را فراهم می‌سازد.

افزوده‌شده در نسخه 256.

--key-name=

هنگام استفاده همراه با دستور add-signing-key، نامی را که کلید عمومی در حال افزوده‌شدن تحت آن ذخیره می‌شود، مشخص یا بازنویسی می‌کند. نام مشخص‌شده می‌تواند آزادانه انتخاب شود، اما باید دارای پسوند ".public" باشد. اگر این گزینه استفاده نشود، نام از نام فایل مشخص‌شده مشتق می‌گردد. اگر کلید از ورودی استاندارد خوانده شود، این گزینه برای ارائه نامی مناسب برای کلید در حال اضافه شدن الزامی است.

افزوده‌شده در نسخه 258.

--seize=

یک آرگومان بولی می‌پذیرد. هنگام استفاده همراه با create یا register، حذف امضاهای رمزنگاری‌شده از رکوردهای کاربری JSON ارائه‌شده را کنترل می‌کند، که این امر اثر امضای آن‌ها با کلید امضای محلی (local.public) به جای امضای قبلی را دارد. اگر این سوییچ روی true تنظیم شود، رکوردهای کاربری اضافه شده به صورت محلی مدیریت می‌شوند (و بنابراین می‌توان آن‌ها را به‌صورت محلی تغییر داد)، در حالی که اگر روی false تنظیم شود، رکوردهای کاربری همچنان توسط مبدا اصلی خود مدیریت و کنترل می‌شوند (و بنابراین به صورت محلی قابل‌تغییر نیستند). این سوییچ برای create به‌طور پیش‌فرض true و برای register به‌طور پیش‌فرض false است.

افزوده‌شده در نسخه 258.

--prompt-new-user

اگر همراه با firstboot استفاده شود و تا این لحظه هیچ حساب کاربری عادی روی سیستم وجود نداشته باشد، این ابزار اطلاعات کاربر را به صورت تعاملی درخواست کرده و حسابی ایجاد می‌کند.

افزوده‌شده در نسخه 256.

--prompt-shell=

یک آرگومان بولی می‌پذیرد. در صورت استفاده از firstboot --prompt-new-user، درخواست تعاملی برای انتخاب پوسته ورود (login shell) را کنترل می‌کند. مقدار پیش‌فرض آن true است.

افزوده‌شده در نسخه 259.

--prompt-groups=

یک آرگومان بولی می‌پذیرد. در صورت استفاده از firstboot --prompt-new-user، درخواست تعاملی برای گروه‌های کمکی جهت افزودن کاربر جدید به آن‌ها را کنترل می‌کند. مقدار پیش‌فرض آن true است.

افزوده‌شده در نسخه 259.

--chrome=

یک آرگومان بولی می‌پذیرد. به‌طور پیش‌فرض، صفحه ایجاد تعاملی کاربر از طریق firstboot --prompt-new-user نوارهای تزئینی ("chrome") با رنگ معکوس را در بالا و پایین صفحه ترمینال نمایش می‌دهد، که با تنظیم این گزینه روی false می‌توان آن‌ها را غیرفعال کرد.

افزوده‌شده در نسخه 259.

--mute-console=

یک آرگومان بولی می‌پذیرد. اگر روی true تنظیم شود، خروجی گزارش وقایع (log) هسته و خروجی وضعیت مدیر سرویس به کنسول سیستم در زمان اجرای firstboot --prompt-new-user به‌طور موقت غیرفعال می‌شود تا در خروجی آن وقفه‌ای ایجاد نگردد. مقدار پیش‌فرض آن false است.

افزوده‌شده در نسخه 259.

--match=this|other|any|auto, -A, -N, -T

گزینه --match= یکی از مقادیر "this"، "other"، "any" یا "auto" را می‌پذیرد. برخی از تنظیمات رکورد کاربر می‌توانند طوری تعریف شوند که فقط با ماشین‌های خاص، یا همه ماشین‌ها به جز یکی، یا همه ماشین‌ها مطابقت داشته باشند. با این سوییچ می‌توان کنترل کرد که تنظیمات بعد از آن در خط فرمان روی کدام ماشین‌ها اعمال شود. اگر "this" مشخص شود، تنظیم فقط روی سیستم محلی اعمال می‌شود (تطابق مثبت)؛ اگر "other" باشد، روی همه سیستم‌ها به جز سیستم محلی اعمال خواهد شد (تطابق منفی)؛ اگر "any" باشد، روی همه سیستم‌ها اعمال می‌شود (مگر اینکه یک تنظیم تطابق مثبت یا منفی برای هر ماشین مشخص شده باشد). اگر "auto" باشد، به منطق پیش‌فرض بازمی‌گردد: اینکه آیا یک تنظیم به‌طور پیش‌فرض برای سیستم محلی اعمال شود یا همه سیستم‌ها، به گزینه مورد نظر بستگی دارد.

توجه داشته باشید که تنها برخی از تنظیمات رکورد کاربر را می‌توان به این صورت شرطی کرد. این گزینه روی سایر تنظیمات تأثیری ندارد و نادیده گرفته می‌شود. این گزینه ممکن است چندین بار در یک خط فرمان برای اعمال تنظیمات مشروط با تطابق‌های مختلف به همان رکورد کاربر ظاهر شود. برای جزئیات در مورد اینکه کدام تنظیمات ممکن است با چنین تطابق برای هر ماشین استفاده شوند و کدام یک نمی‌توانند، به JSON User Records[1] مراجعه کنید.

-A میان‌بری برای --match=any، -T کوتاه‌شده --match=this و -N کوتاه‌شده --match=other است.

در اینجا نمونه‌ای از یک فراخوانی آورده شده است که فیلد storage را روی سیستم محلی به "luks" اما در سایر سیستم‌ها به "cifs" تنظیم می‌کند:

# homectl update lennart -T --storage=luks -N --storage=cifs

افزوده‌شده در نسخه 258.

-H, --host=

عملیات را از راه دور اجرا می‌کند. یک نام میزبان، یا نام کاربری و نام میزبان جداشده با "@" را برای اتصال مشخص کنید. نام میزبان می‌تواند به صورت اختیاری دارای پسوند درگاه گوش دادن ssh جداشده با ":" و سپس نام یک کانتینر جداشده با "/" باشد، که مستقیماً به کانتینر مشخص‌شده روی میزبان مورد نظر متصل می‌شود. این کار از SSH برای گفتگو با نمونه مدیر ماشین راه دور استفاده می‌کند. نام‌های کانتینر را می‌توان با machinectl -H HOST فهرست کرد. آدرس‌های IPv6 را داخل کروشه قرار دهید.

-M, --machine=

عملیات را روی یک کانتینر محلی اجرا می‌کند. نام کانتینری را برای اتصال مشخص کنید، که می‌تواند به صورت اختیاری دارای پیشوند نام کاربری برای اتصال و نویسه جداکننده "@" باشد. اگر رشته ویژه ".host" به جای نام کانتینر استفاده شود، اتصالی به سیستم محلی برقرار می‌شود (که برای اتصال به گذرگاه کاربری یک کاربر خاص مفید است: "--user --machine=lennart@.host"). اگر نحو "@" استفاده نشود، اتصال با کاربر root برقرار می‌شود. اگر نحو "@" استفاده شود، سمت چپ یا سمت راست ممکن است حذف شوند (اما نه هر دو)، که در این صورت نام کاربری محلی و ".host" در نظر گرفته می‌شوند.

--no-pager

خروجی را به یک صفحه‌بند (pager) هدایت نمی‌کند.

--no-legend

راهنمای علائم (legend)، یعنی سرایند ستون‌ها و پانوشت حاوی نکات را چاپ نمی‌کند.

--no-ask-password

برای عملیات دارای دسترسی ویژه از کاربر درخواست احراز هویت نمی‌کند.

-h, --help

متن راهنمای کوتاهی را چاپ کرده و خارج می‌شود.

--version

رشته نسخه کوتاهی را چاپ کرده و خارج می‌شود.

گزینه‌های زیر ویژگی‌های مختلف رکوردهای کاربر/دایرکتوری‌های خانگی را که systemd-homed.service مدیریت می‌کند، کنترل می‌نمایند. این سوییچ‌ها ممکن است همراه با دستورات create و update برای پیکربندی جنبه‌های مختلف دایرکتوری خانگی و حساب کاربری استفاده شوند:

--real-name=NAME, -c NAME

نام واقعی کاربر. این فیلد متناظر با فیلد GECOS در رکوردهای کلاسیک NSS یونیکس است.

افزوده‌شده در نسخه 245.

--realm=REALM

قلمرو (realm) برای کاربر. قلمرو کاربر را به سازمان یا سیستم نصب‌شده خاصی مرتبط می‌سازد و امکان تمایز کاربران هم‌نام تعریف‌شده در بسترهای مختلف را فراهم می‌کند. قلمرو می‌تواند هر رشته‌ای باشد که به عنوان یک نام دامنه DNS معتبر نیز واجد شرایط باشد، و توصیه می‌شود که از نام دامنه سازمان یا زیرساخت برای این منظور استفاده شود، اما این موضوع الزامی یا اجباری نیست. در هر سیستم فقط یک کاربر منفرد با همان نام می‌تواند وجود داشته باشد، و اگر کاربری با همان نام و قلمرو دیده شود، فرض می‌شود که به همان کاربر اشاره دارد، در حالی که کاربری با همان نام اما قلمرو متفاوت یک کاربر مجزا تلقی می‌شود. توجه داشته باشید که این بدان معناست که وجود دو کاربر با نام یکسان اما قلمروهای مجزا روی یک سیستم مجاز نیست. اختصاص یک قلمرو به کاربر اختیاری است.

افزوده‌شده در نسخه 245.

--alias=NAME[,NAME...]

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

افزوده‌شده در نسخه 258.

--email-address=EMAIL

یک آدرس پست الکترونیکی را برای پیوند دادن به کاربر می‌پذیرد. هنگام ورود، متغیر محیطی $EMAIL از این مقدار مقداردهی اولیه می‌شود.

افزوده‌شده در نسخه 245.

--location=TEXT

مشخصات مکان را برای این کاربر دریافت می‌کند. این یک متن آزاد است که ممکن است برای برنامه‌های موقعیت‌یابی جغرافیایی قابل‌استفاده باشد یا نباشد. مثال: --location="Berlin, Germany" یا --location="Basement, Room 3a"

افزوده‌شده در نسخه 245.

--birth-date=[DATE]

تاریخ تولد کاربر را در قالب تقویم استاندارد ISO 8601 ("YYYY-MM-DD") می‌پذیرد. اولین سال قابل‌نمایش 1900 است. اگر یک رشته خالی منتقل شود، تاریخ تولد بازنشانی شده و لغو می‌گردد.

افزوده‌شده در نسخه 261.

--icon-name=ICON

نام آیکونی را برای ارتباط با کاربر طبق طرح تعریف‌شده توسط Icon Naming Specification[2] می‌پذیرد.

افزوده‌شده در نسخه 245.

--home-dir=PATH, -dPATH

مسیری را برای استفاده به عنوان دایرکتوری خانگی کاربر می‌پذیرد. توجه داشته باشید که این دایرکتوری همان پوشه‌ای است که دایرکتوری خانگی کاربر در زمان ورود به آن سوار (mount) می‌شود. این مسیر جایی نیست که داده‌های کاربر واقعاً در آن ذخیره می‌شوند، برای آن موضوع به --image-path= مراجعه کنید. در صورت عدم تعیین، مقدار پیش‌فرض آن /home/$USER است.

افزوده‌شده در نسخه 245.

--uid=UID

یک شناسه کاربری عددی یونیکس (UID) ترجیحی را برای انتساب به این کاربر می‌پذیرد. اگر قرار باشد کاربری با UID مشخص‌شده ایجاد شود و این شناسه قبلاً توسط کاربر دیگری در سیستم محلی گرفته شده باشد، ایجاد دایرکتوری خانگی رد می‌شود. با این حال توجه داشته باشید اگر پس از ایجاد دایرکتوری خانگی، از آن در سیستم دیگری استفاده شود و UID پیکربندی‌شده توسط کاربر دیگری در آنجا گرفته شده باشد، آنگاه systemd-homed ممکن است UID متفاوتی را در آن سیستم به کاربر اختصاص دهد. شناسه کاربری مشخص‌شده باید خارج از محدوده کاربران سیستمی باشد. توصیه می‌شود از محدوده UID بین 60001...60513 برای این منظور استفاده شود. در صورت عدم تعیین، UID به صورت خودکار انتخاب می‌شود. اگر هنگام ورود مشخص شود که مالکیت دایرکتوری خانگی متعلق به UID متفاوتی است، مالکیت دایرکتوری خانگی و همه موارد زیر آن پیش از تکمیل ورود به طور خودکار تغییر خواهد کرد.

توجه داشته باشید که تغییر این گزینه برای دایرکتوری‌های خانگی موجود معمولاً روی دایرکتوری‌های خانگی که قبلاً به صورت محلی ثبت شده‌اند (دارای binding محلی هستند) اثری ندارد، زیرا UID استفاده‌شده برای یک حساب در سیستم محلی زمانی تعیین می‌شود که دایرکتوری خانگی برای اولین بار روی آن فعال گردد، و سپس تا زمان حذف دایرکتوری خانگی معتبر باقی می‌ماند.

توجه داشته باشید که کاربران مدیریت‌شده توسط systemd-homed همواره دارای یک گروه متناظر با همان نام و همچنین یک GID منطبق بر UID کاربر هستند. بنابراین، پیکربندی GID به‌صورت جداگانه مجاز نیست.

افزوده‌شده در نسخه 245.

--member-of=GROUP, -G GROUP

فهرستی از گروه‌های کمکی یونیکس جداشده با کاما را که این کاربر باید به آن‌ها تعلق داشته باشد، می‌پذیرد. مثال: --member-of=wheel برای اعطای امتیازات مدیریتی به کاربر. توجه داشته باشید که systemd-homed هیچ گروهی را به جز گروهی که از نظر نام و UID/GID عددی با کاربر همخوانی دارد، مدیریت نمی‌کند. بنابراین هر گروهی که در اینجا فهرست شده باشد باید به طور مستقل، به عنوان مثال با groupadd(8) ثبت شده باشد. هر گروه ناموجودی نادیده گرفته می‌شود. این گزینه ممکن است بیش از یک بار استفاده شود، که در این صورت تمام فهرست‌های گروهی مشخص‌شده با یکدیگر ترکیب می‌شوند. اگر کاربر در حال حاضر عضو گروهی باشد که در این فهرست نیامده است، کاربر از آن گروه حذف خواهد شد.

افزوده‌شده در نسخه 245.

--capability-bounding-set=CAPABILITIES, --capability-ambient-set=CAPABILITIES

این گزینه‌ها فهرستی از قابلیت‌های فرآیند (process capabilities) جداشده با فاصله (مانند CAP_WAKE_ALARM، CAP_BLOCK_SUSPEND و غیره) را می‌پذیرند که باید در مجموعه‌های توانمندی مرزی (bounding) و فراگیر (ambient) برای تمام نشست‌های کاربر تنظیم شوند. برای جزئیات بیشتر درباره مفهوم قابلیت‌ها به capabilities(7) مراجعه کنید. این گزینه‌ها ممکن است بیش از یک بار استفاده شوند، که در این صورت فهرست‌های مشخص‌شده ترکیب می‌شوند. اگر پارامتر با نویسه "~" شروع شود، اثر آن معکوس می‌گردد: یعنی قابلیت مشخص‌شده از مجموعه مربوطه حذف (سلب) می‌شود.

افزوده‌شده در نسخه 254.

--access-mode=MODE

یک حالت دسترسی به فایل یونیکس را در مبنای هشت (اکتال) می‌پذیرد. حالت دسترسی خود دایرکتوری خانگی را پیکربندی می‌کند. توجه داشته باشید که این گزینه فقط زمانی استفاده می‌شود که دایرکتوری برای اولین بار ایجاد شود، و کاربر می‌تواند پس از آن هر زمان که بخواهد آن را تغییر دهد. مثال: --access-mode=0700

افزوده‌شده در نسخه 245.

--umask=MASK

ماسک حالت دسترسی (در قالب اکتال) را جهت اعمال به فایل‌ها و دایرکتوری‌های تازه‌ساخته‌شده کاربر دریافت می‌کند ("umask"). در صورت تنظیم، umask اولیه تنظیم‌شده برای تمام نشست‌های ورود کاربر را کنترل کرده و احتمالاً مقادیر پیش‌فرض سیستم را بازنویسی می‌نماید.

افزوده‌شده در نسخه 245.

--skel=PATH

یک مسیر سیستم‌فایل به یک دایرکتوری را دریافت می‌کند. دایرکتوری اسکلت (skeleton) را برای مقداردهی اولیه دایرکتوری خانگی مشخص می‌کند. تمام فایل‌ها و دایرکتوری‌های موجود در مسیر مشخص‌شده در هر دایرکتوری خانگی تازه‌ساخته‌شده رونوشت‌برداری می‌شوند. در صورت عدم تعیین، مقدار پیش‌فرض آن /etc/skel/ است.

افزوده‌شده در نسخه 245.

--shell=SHELL

یک مسیر سیستم‌فایل را می‌پذیرد. باینری پوسته را برای اجرا در هنگام ورود به ترمینال مشخص می‌کند. در صورت عدم تعیین، مقدار پیش‌فرض آن /bin/bash است.

افزوده‌شده در نسخه 245.

--setenv=VARIABLE[=VALUE]

یک مقداردهی متغیر محیطی را برای تنظیم در تمامی فرآیندهای کاربر می‌پذیرد. می‌تواند چندین بار برای تنظیم چندین متغیر محیطی استفاده شود. هنگامی که "=" و VALUE حذف شوند، مقدار متغیری با همین نام در محیط برنامه استفاده خواهد شد.

توجه داشته باشید که تعدادی از تنظیمات دیگر نیز منجر به تنظیم متغیرهای محیطی برای کاربر می‌شوند، از جمله --email=، --timezone= و --language=.

افزوده‌شده در نسخه 245.

--timezone=TIMEZONE

نام مکان منطقه زمانی را که منطقه زمانی کاربر مشخص‌شده را تعیین می‌کند، دریافت می‌نماید. هنگامی که کاربر وارد سیستم می‌شود، متغیر محیطی $TZ از این تنظیم مقداردهی اولیه می‌گردد. مثال: --timezone=Europe/Amsterdam منجر به متغیر محیطی "TZ=:Europe/Amsterdam" می‌شود. (":" به‌صورت عمدی به عنوان بخشی از مشخصات منطقه زمانی استفاده شده است، به tzset(3) مراجعه کنید.)

افزوده‌شده در نسخه 245.

--language=LANG

فهرستی از زبان‌های مورد نظر کاربر را که با کاما یا دونقطه از هم جدا شده‌اند و بر اساس اولویت نزولی مرتب شده‌اند، دریافت می‌کند. متغیرهای محیطی $LANG و $LANGUAGE هنگام ورود از این مقدار مقداردهی اولیه می‌شوند و از این رو مقادیر مناسب برای این متغیرهای محیطی در اینجا پذیرفته می‌شوند، به عنوان مثال --language=de_DE.UTF-8. این گزینه ممکن است بیش از یک بار استفاده شود که در این صورت فهرست‌های زبان با یکدیگر الحاق می‌شوند.

افزوده‌شده در نسخه 245.

--default-area=AREA

رشته‌ای را دریافت می‌کند که یک «ناحیه» (area) دایرکتوری خانگی را برای استفاده به عنوان پیش‌فرض مشخص می‌سازد. نواحی، دایرکتوری‌های خانگی ثانویه در داخل دایرکتوری خانگی اصلی یک کاربر هستند. هنگام ورود به سیستم، کاربر می‌تواند ناحیه‌ای را که مایل است به آن وارد شود مشخص کند، که این امر اطمینان حاصل می‌کند متغیر محیطی $HOME روی ~/Areas/ با پسوند نام ناحیه تنظیم شود.

برای جزئیات بیشتر در مورد مفهوم ناحیه به pam_systemd_home(8) مراجعه کنید. توجه داشته باشید که این گزینه فقط پیش‌فرض را تعیین می‌کند که می‌تواند در زمان ورود بازنویسی شود.

هنگامی که این گزینه با یک رشته خالی به عنوان مقدار مشخص شود، هر ناحیه پیش‌فرضی که قبلاً اعلان شده باشد از رکورد کاربر حذف خواهد شد.

افزوده‌شده در نسخه 258.

--ssh-authorized-keys=KEYS

یا یک خط کلید مجاز SSH را برای انتساب به رکورد کاربر می‌پذیرد یا کاراکتر "@" به همراه مسیری به یک فایل را برای خواندن یک یا چند خط از این دست دریافت می‌کند. کلیدهای SSH که از این طریق پیکربندی می‌شوند در اختیار SSH قرار می‌گیرند تا اجازه دسترسی به این دایرکتوری خانگی و رکورد کاربر را صادر کند. این گزینه می‌تواند بیش از یک بار برای پیکربندی چندین کلید SSH استفاده شود.

اضافه‌شده در نسخه 245.

--pkcs11-token-uri=URI

یک نشانی RFC 7512 PKCS#11 URI دریافت می‌کند که به یک توکن امنیتی (مانند YubiKey یا کارت هوشمند PIV) اشاره دارد که قادر به باز کردن قفل حساب کاربری خواهد بود. نشانی توکن امنیتی باید به یک توکن امنیتی با دقیقاً یک جفت گواهی X.509 و کلید خصوصی اشاره کند. سپس یک کلید مخفی تصادفی تولید شده، با کلید عمومی گواهی X.509 رمزگذاری می‌شود و به عنوان بخشی از رکورد کاربر ذخیره می‌گردد. در زمان ورود، این کلید با ماژول PKCS#11 رمزگشایی شده و سپس برای باز کردن قفل حساب و منابع مرتبط استفاده می‌شود. برای مشاهده نمونه‌ای از نحوه راه‌اندازی احراز هویت با یک توکن امنیتی، به بخش‌های زیر مراجعه کنید.

به جای یک PKCS#11 URI معتبر، رشته‌های ویژه "list" و "auto" می‌توانند مشخص شوند. اگر "list" ارسال شود، جدول کوتاهی از توکن‌های سخت‌افزاری PKCS#11 مناسب و متصل فعلی به همراه نشانی‌های URI آنها نمایش داده می‌شود. اگر "auto" ارسال شود، یک توکن سخت‌افزاری PKCS#11 مناسب به صورت خودکار انتخاب می‌شود (اگر دقیقاً یک توکن مناسب کشف نشود، این عملیات با شکست مواجه خواهد شد). مورد دوم یک میانبر مفید برای رایج‌ترین حالت است که در آن تنها یک توکن سخت‌افزاری PKCS#11 متصل است.

توجه داشته باشید که بسیاری از توکن‌های امنیتی سخت‌افزاری هم PKCS#11/PIV و هم FIDO2 با افزونه "hmac-secret" را پیاده‌سازی می‌کنند (به عنوان مثال: سری YubiKey 5)، همان‌طور که با گزینه --fido2-device= در زیر پشتیبانی می‌شود. هر دو سازوکار به یک اندازه قدرتمند هستند، هرچند FIDO2 فناوری مدرن‌تری است. توکن‌های PKCS#11/PIV این مزیت را دارند که قبل از احراز هویت قابل شناسایی هستند و بنابراین می‌توانند برای استنتاج هویت کاربر جهت ورود استفاده شوند، چیزی که FIDO2 اجازه آن را نمی‌دهد. دستگاه‌های PKCS#11/PIV عموماً قبل از استفاده نیازمند مقداردهی اولیه هستند (یعنی ذخیره یک جفت کلید عمومی/خصوصی روی آنها، مثال زیر را ببینید)؛ توکن‌های امنیتی FIDO2 معمولاً به آن نیازی ندارند و بدون پیکربندی اضافی کار می‌کنند.

اضافه‌شده در نسخه 245.

--fido2-credential-algorithm=STRING

الگوریتم COSE مورد استفاده در تولید اطلاعات کاربری را مشخص می‌کند. مقدار پیش‌فرض "es256" است. مقادیر پشتیبانی‌شده عبارتند از "es256"، "rs256" و "eddsa".

"es256" بیانگر ECDSA روی NIST P-256 با SHA-256 است. "rs256" بیانگر RSA ۲–۰۴۸ بیتی با پدینگ PKCS#1.5 و SHA-256 است. "eddsa" بیانگر EDDSA روی Curve25519 با SHA-512 است.

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

اضافه‌شده در نسخه 251.

--fido2-device=PATH

مسیری به یک دستگاه "hidraw" لینوکس (مانند /dev/hidraw1) دریافت می‌کند که به یک توکن امنیتی FIDO2 با پیاده‌سازی افزونه "hmac-secret" اشاره دارد و قادر به باز کردن قفل حساب کاربر خواهد بود. یک مقدار سالت تصادفی روی میزبان تولید شده و به دستگاه FIDO2 ارسال می‌شود؛ دستگاه با استفاده از یک کلید مخفی داخلی، هش HMAC سالت را محاسبه می‌کند. نتیجه سپس به عنوان کلید برای باز کردن قفل حساب کاربری استفاده می‌شود. سالت تصادفی در رکورد کاربر گنجانده می‌شود تا هر زمان که احراز هویت لازم بود، دوباره به توکن FIDO2 ارسال گردد.

به جای یک مسیر معتبر به دستگاه "hidraw" مربوط به FIDO2، می‌توان رشته‌های ویژه "list" و "auto" را مشخص کرد. اگر "list" ارسال شود، جدول کوتاهی از دستگاه‌های FIDO2 مناسب کشف‌شده نمایش داده می‌شود. اگر "auto" ارسال شود، در صورتی که دقیقاً یک توکن کشف شده باشد، توکن FIDO2 مناسب به صورت خودکار انتخاب می‌شود. مورد دوم یک میانبر مفید برای رایج‌ترین حالت است که در آن تنها یک توکن سخت‌افزاری FIDO2 متصل است.

توجه داشته باشید دستگاه‌های FIDO2 مناسب برای این گزینه باید افزونه "hmac-secret" را پیاده‌سازی کرده باشند. اکثر دستگاه‌های فعلی (مانند سری YubiKey 5) این کار را انجام می‌دهند. اگر این افزونه پیاده‌سازی نشده باشد، دستگاه نمی‌تواند برای باز کردن قفل دایرکتوری‌های خانگی استفاده شود.

دستگاه FIDO2 را می‌توان متعاقباً با تنظیم مسیر دستگاه روی یک رشته خالی حذف کرد (به عنوان مثال homectl update $USER --fido2-device="").

توجه داشته باشید که بسیاری از توکن‌های امنیتی سخت‌افزاری هم FIDO2 و هم PKCS#11/PIV را پیاده‌سازی می‌کنند (و بنابراین می‌توانند با هر یک از گزینه‌های --fido2-device= یا --pkcs11-token-uri= استفاده شوند)، برای بحث بیشتر به توضیحات بالا مراجعه کنید.

اضافه‌شده در نسخه 246.

--fido2-with-client-pin=BOOL

هنگام ثبت توکن امنیتی FIDO2، تعیین می‌کند که آیا هنگام باز کردن قفل حساب، کاربر ملزم به وارد کردن یک پین (PIN) باشد یا خیر (ویژگی "clientPin" در FIDO2). مقدار پیش‌فرض "yes" است. (توجه: اگر توکن امنیتی اصلاً از ویژگی "clientPin" پشتیبانی نکند، یا اجازه فعال یا غیرفعال کردن آن را ندهد، این تنظیم بی‌اثر خواهد بود.)

اضافه‌شده در نسخه 249.

--fido2-with-user-presence=BOOL

هنگام ثبت توکن امنیتی FIDO2، تعیین می‌کند که آیا کاربر هنگام باز کردن قفل حساب ملزم به تایید حضور (لمس توکن، ویژگی "up" در FIDO2) باشد یا خیر. مقدار پیش‌فرض "yes" است. (توجه: اگر توکن امنیتی اصلاً از ویژگی "up" پشتیبانی نکند، یا اجازه فعال یا غیرفعال کردن آن را ندهد، این تنظیم بی‌اثر خواهد بود.)

اضافه‌شده در نسخه 249.

--fido2-with-user-verification=BOOL

هنگام ثبت توکن امنیتی FIDO2، تعیین می‌کند که آیا هنگام باز کردن قفل حساب به تایید هویت کاربر (ویژگی "uv" در FIDO2) نیاز است یا خیر. مقدار پیش‌فرض "no" است. (توجه: اگر توکن امنیتی اصلاً از ویژگی "uv" پشتیبانی نکند، یا اجازه فعال یا غیرفعال کردن آن را ندهد، این تنظیم بی‌اثر خواهد بود.)

اضافه‌شده در نسخه 249.

--recovery-key=BOOL

یک آرگومان بولی می‌پذیرد. در صورت فعال بودن، یک کلید بازیابی برای حساب پیکربندی می‌شود. کلید بازیابی یک کلید دسترسی تولیدشده توسط رایانه است که در صورت فراموشی گذرواژه یا گم شدن توکن احراز هویت، می‌تواند برای بازیابی دسترسی به حساب استفاده شود. این کلید تولید شده و روی صفحه نمایش داده می‌شود، و باید چاپ شده یا به مکان امنی انتقال یابد. برای باز کردن قفل حساب می‌توان به جای گذرواژه معمولی از یک کلید بازیابی استفاده کرد.

اضافه‌شده در نسخه 247.

--blob=PATH, -b PATH, --blob=FILENAME=PATH, -b FILENAME=PATH

یا مسیر یک دایرکتوری را می‌پذیرد، یا یک نام فایل که به دنبال آن مسیر فایل آمده است. اگر فقط مسیر یک دایرکتوری مشخص شود، کل دایرکتوری blob کاربر با مسیر مشخص‌شده جایگزین می‌شود. توجه داشته باشید که این جایگزینی قبل از اعمال دستکاری‌های تک‌تک فایل‌ها انجام می‌شود، به این معنی که این تغییرات تک‌فایلی روی دایرکتوری مشخص‌شده اعمال خواهند شد. اگر یک نام فایل و مسیر فایل مشخص شود، فایل blob مشخص‌شده با مسیر مشخص‌شده بازنویسی خواهد شد. اگر کاملاً خالی گذاشته شود، کل دایرکتوری blob تخلیه می‌شود (که تمام فلگ‌های قبلی مربوط به blob تا این نقطه را نیز بازنشانی می‌کند). اگر یک نام فایل مشخص شود اما مسیر مربوطه خالی باشد، آن فایل از دایرکتوری blob حذف خواهد شد. تمام تغییرات روی رونوشت‌های موقت از فایل‌ها در دایرکتوری‌ها انجام می‌شود، به این معنی که فایل‌های اصلی مشخص‌شده در خط فرمان دستکاری نمی‌شوند. برای کسب اطلاعات بیشتر درباره دایرکتوری‌های blob به User Record Blob Directories[3] مراجعه کنید.

اضافه‌شده در نسخه 256.

--avatar=PATH, --login-background=PATH

یک مسیر فایل دریافت می‌کنند. در صورت تنظیم، فایل مشخص‌شده برای بازنویسی فایل مربوطه در دایرکتوری blob کاربر استفاده می‌شود. در صورت خالی بودن، فایل مربوطه از دایرکتوری blob حذف می‌گردد. در اصل، این گزینه‌ها میانبرهایی برای --blob=FILENAME=PATH برای نام فایل‌های شناخته‌شده تعریف‌شده در User Record Blob Directories[3] هستند.

اضافه‌شده در نسخه 256.

--locked=BOOLEAN

یک آرگومان بولی می‌پذیرد. مشخص می‌کند که آیا این حساب کاربری باید قفل شود یا خیر. در صورت درست (true) بودن، ورود به این حساب ممنوع است و در صورت نادرست (false - مقدار پیش‌فرض) بودن، ورود مجاز خواهد بود (البته تنها در صورتی که احراز مجوز به شکل دیگر موفقیت‌آمیز باشد).

اضافه‌شده در نسخه 245.

--not-before=TIMESTAMP, --not-after=TIMESTAMP

این گزینه‌ها یک رشته برچسب زمانی در قالب مستندشده در systemd.time(7) دریافت کرده و مقاطع زمانی را پیکربندی می‌کنند که قبل و بعد از آنها ورود به این حساب مجاز نیست.

اضافه‌شده در نسخه 245.

--rate-limit-interval=SECS, --rate-limit-burst=NUMBER

یک محدودیت نرخ برای تلاش‌های احراز هویت این کاربر پیکربندی می‌کند. اگر کاربر بیش از تعداد مشخص‌شده روی یک سیستم خاص در بازه زمانی تعیین‌شده برای احراز هویت تلاش کند، احراز هویت تا زمان سپری شدن آن بازه زمانی رد خواهد شد. مقدار پیش‌فرض ۱۰ بار در هر ۱ دقیقه است.

اضافه‌شده در نسخه 245.

--password-hint=TEXT

یک راهنمای گذرواژه دریافت می‌کند تا در کنار رکورد کاربر ذخیره شود. این رشته فقط برای کاربران مجاز و خود کاربر قابل دسترسی است و توسط سایر کاربران قابل پرس‌وجو نیست. مثال: --password-hint="My first pet's name".

اضافه‌شده در نسخه 245.

--enforce-password-policy=BOOL, -P

یک آرگومان بولی می‌پذیرد. مشخص می‌کند که آیا سیاست گذرواژه سیستم در رابطه با کیفیت و استحکام گذرواژه‌های انتخابی برای این کاربر اعمال شود یا خیر. مقدار پیش‌فرض فعال (on) است. -P کوتاه‌شده گزینه --enforce-password-policy=no است.

اضافه‌شده در نسخه 245.

--password-change-now=BOOL

یک آرگومان بولی می‌پذیرد. در صورت true بودن، در ورود بعدی از کاربر خواسته می‌شود گذرواژه خود را تغییر دهد.

اضافه‌شده در نسخه 245.

--password-change-min=TIME, --password-change-max=TIME, --password-change-warn=TIME, --password-change-inactive=TIME

هر یک از این گزینه‌ها یک مشخصه بازه زمانی به عنوان آرگومان (در ساختار نحوی مستندشده در systemd.time(7)) می‌پذیرند و جنبه‌های مختلفی از سیاست انقضای گذرواژه کاربر را پیکربندی می‌کنند. به طور مشخص، --password-change-min= پیکربندی می‌کند که پس از تغییر گذرواژه کاربر، چه مدت زمان باید سپری شود تا بتوان دوباره گذرواژه را تغییر داد. اگر کاربر قبل از سپری شدن این زمان تلاش کند گذرواژه را تغییر دهد، درخواست رد می‌شود. --password-change-max= تعیین می‌کند چه مدت پس از تغییر، گذرواژه منقضی شده و باید مجدداً تغییر یابد. پس از سپری شدن این زمان، ورود تنها پس از تغییر گذرواژه ممکن خواهد بود. --password-change-warn= مشخص می‌کند چه مدت زودتر از زمان پیکربندی‌شده با --password-change-max= در هنگام ورود به کاربر هشدار داده شود که گذرواژه‌اش به زودی منقضی می‌شود. در نهایت، --password-change-inactive= مدت زمانی را که پس از انقضای گذرواژه باید سپری شود تا دیگر به کاربر اجازه ورود یا تغییر گذرواژه داده نشود، پیکربندی می‌کند. توجه داشته باشید که این گزینه‌ها تنها برای احراز هویت با گذرواژه اعمال می‌شوند و برای سایر اشکال احراز هویت (مانند احراز هویت با توکن امنیتی مبتنی بر PKCS#11) کاربرد ندارند.

اضافه‌شده در نسخه 245.

--disk-size=BYTES

یک اندازه به بایت را به عنوان آرگومان دریافت می‌کند (احتمالاً با پسوندهای متداول K, M, G, ... بر مبنای ۱۰۲۴)، یا یک مقدار درصدی، یا رشته‌های ویژه "min" یا "max"، و فضای دیسک اختصاص‌یافته به کاربر را پیکربندی می‌کند. اگر یک مقدار درصدی مشخص شود (یعنی آرگومان همراه با پسوند "%" باشد)، نسبت به فضای دیسک موجود در فایل‌سیستم پشتیبان در نظر گرفته می‌شود. اگر به عنوان "min" مشخص شود، حداقل فضای دیسک مجاز تحت محدودیت‌های فایل‌سیستم پشتیبان و سایر محدودیت‌ها را اختصاص می‌دهد، و اگر به عنوان "max" مشخص شود، حداکثر فضای دیسک موجود را اختصاص می‌دهد. اگر بک‌اند LUKS2 استفاده شود، این گزینه اندازه فایل loopback و فایل‌سیستم درون آن را پیکربندی می‌کند. برای سایر بک‌اندهای ذخیره‌سازی، سهمیه دیسک را با استفاده از منطق سهمیه‌بندی بومی فایل‌سیستم (در صورت موجود بودن) پیکربندی می‌کند. اگر مشخص نشود، برای بک‌اند LUKS2 به طور پیش‌فرض روی ۸۵٪ فضای دیسک موجود و برای سایرین بدون سهمیه تنظیم می‌شود.

اضافه‌شده در نسخه 245.

--nice=NICE

اولویت زمان‌بندی عددی ("سطح nice") را برای اعمال روی فرایندهای کاربر در هنگام ورود دریافت می‌کند. یک مقدار عددی در بازه ۲۰- (بالاترین اولویت) تا ۱۹ (پایین‌ترین اولویت) می‌پذیرد.

اضافه‌شده در نسخه 245.

--rlimit=LIMIT=VALUE[:VALUE]

پیکربندی محدودیت‌های منابع برای فرایندهای این کاربر را امکان‌پذیر می‌سازد؛ برای جزئیات به getrlimit(2) مراجعه کنید. یک نام محدودیت منبع (مانند "LIMIT_NOFILE") به همراه یک علامت مساوی و سپس یک مقدار عددی محدودیت را دریافت می‌کند. به صورت اختیاری، می‌توان یک مقدار عددی دوم را با علامت دونقطه جدا کرده و مشخص نمود. اگر دو مقدار مشخص شود، به ترتیب به محدودیت‌های نرم و سخت اشاره دارد. اگر فقط یک مقدار مشخص شود، هر دو محدودیت به صورت یکجا تنظیم می‌شوند.

اضافه‌شده در نسخه 245.

--tasks-max=TASKS

یک عدد صحیح بدون علامت غیر صفر به عنوان آرگومان دریافت می‌کند. حداکثر تعداد تسک‌ها (یعنی رشته‌ها، که در آن هر فرایند حداقل یک رشته است) را که کاربر می‌تواند در هر لحظه داشته باشد پیکربندی می‌کند. این محدودیت برای تمام تسک‌های منشعب‌شده از نشست‌های کاربر اعمال می‌شود، حتی اگر هویت کاربر را از طریق su(1) یا ابزاری مشابه تغییر دهند. از --rlimit=LIMIT_NPROC= برای قرار دادن محدودیت بر روی تسک‌هایی که واقعاً تحت UID کاربر اجرا می‌شوند استفاده کنید، تا بدین ترتیب فرایندهای فرزندی که هویت کاربر را تغییر داده‌اند مستثنی شوند. این گزینه تنظیم TasksMax= را در واحد اسلایس systemd برای هر کاربر یعنی user-$UID.slice کنترل می‌کند. برای جزئیات بیشتر به systemd.resource-control(5) مراجعه کنید.

اضافه‌شده در نسخه 245.

--memory-high=BYTES, --memory-max=BYTES

محدودیتی را بر حسب بایت برای حافظه‌ای که یک کاربر می‌تواند در هر لحظه روی سیستم اشغال کند تنظیم می‌کند (پسوندهای معمول K, M, G, ... بر مبنای ۱۰۲۴ پشتیبانی می‌شوند). این شامل تمام حافظه مصرفی توسط خود کاربر و تمامی فرایندهای منشعب‌شده توسط او که اعتبارنامه کاربری را تغییر داده‌اند می‌شود. این گزینه‌ها تنظیمات MemoryHigh= و MemoryMax= را در واحد اسلایس systemd برای هر کاربر یعنی user-$UID.slice کنترل می‌کنند. برای جزئیات بیشتر به systemd.resource-control(5) مراجعه کنید.

اضافه‌شده در نسخه 245.

--cpu-weight=WEIGHT, --io-weight=WEIGHT

وزن‌های زمان‌بندی پردازنده (CPU) و ورودی/خروجی (IO) فرایندهای کاربر، از جمله فرایندهای منشعب‌شده توسط کاربر که اعتبارنامه کاربری را تغییر داده‌اند، تنظیم می‌کند. یک مقدار عددی در بازه ۱...۱۰۰۰۰ می‌پذیرد. این گزینه تنظیمات CPUWeight= و IOWeight= را در واحد اسلایس systemd برای هر کاربر یعنی user-$UID.slice کنترل می‌کند. برای جزئیات بیشتر به systemd.resource-control(5) مراجعه کنید.

اضافه‌شده در نسخه 245.

--tmp-limit=BYTES, --tmp-limit=PERCENT, --dev-shm-limit=BYTES, --dev-shm-limit=PERCENT

سهمیه اختصاصی هر کاربر روی /tmp/ و /dev/shm/ را که هنگام ورود کاربر اعمال می‌شود، کنترل می‌کند. یا یک مقدار مطلق به بایت (همراه با پسوندهای رایج K, M, G, T بر مبنای ۱۰۲۴) یا یک درصد می‌پذیرد. در حالت دوم، محدودیت نسبت به اندازه فایل‌سیستم مربوطه اعمال می‌شود. این محدودیت تنها در صورتی اعمال می‌شود که فایل‌سیستم مربوطه "tmpfs" باشد و در غیر این صورت تاثیری ندارد. توجه داشته باشید که اگر از این گزینه‌ها استفاده نشود، ممکن است همچنان یک سهمیه پیش‌فرض اعمال شود (معمولاً ۸۰٪).

اضافه‌شده در نسخه 258.

--storage=STORAGE

سازوکار ذخیره‌سازی مورد استفاده برای این دایرکتوری خانگی را انتخاب می‌کند. یکی از مقادیر "luks"، "fscrypt"، "directory"، "subvolume" یا "cifs" را می‌پذیرد. برای جزئیات مربوط به این سازوکارها، به توضیحات بالا مراجعه کنید. اگر یک دایرکتوری خانگی جدید ایجاد شود و نوع ذخیره‌سازی به طور خاص تعیین نشده باشد، homed.conf(5) مشخص می‌کند که از کدام ذخیره‌سازی پیش‌فرض استفاده شود.

اضافه‌شده در نسخه 245.

--image-path=PATH

یک مسیر در فایل‌سیستم دریافت می‌کند. محل قرارگیری دایرکتوری خانگی کاربر را پیکربندی می‌کند. هنگامی که از ذخیره‌سازی LUKS2 استفاده می‌شود به مسیر فایل loopback اشاره دارد، در غیر این صورت به مسیر دایرکتوری خانگی (که ممکن است در /home/ یا هر فایل‌سیستم قابل دسترسی دیگری باشد) اشاره می‌کند. در صورت مشخص نشدن، هنگام استفاده از ذخیره‌سازی LUKS به طور پیش‌فرض روی /home/$USER.home و برای سایر سازوکارهای ذخیره‌سازی روی /home/$USER.homedir تنظیم می‌شود. برای سازوکار ذخیره‌سازی "cifs" تعریف نشده است. برای استفاده از ذخیره‌سازی LUKS2 روی یک دستگاه بلوکی معمولی (مانند فلش‌مموری USB)، مسیر دستگاه بلوکی را در اینجا وارد کنید. تعیین مسیر یک دایرکتوری در اینجا هنگام استفاده از ذخیره‌سازی LUKS2 مجاز نیست. به طور مشابه، در صورت استفاده از هر یک از بک‌اندهای ذخیره‌سازی دیگر، تعیین مسیر یک فایل معمولی یا نود دستگاه مجاز نیست.

اضافه‌شده در نسخه 245.

--drop-caches=BOOL

حافظه‌های پنهان فایل‌سیستم سیستم‌عامل را در هنگام خروج به صورت خودکار تخلیه می‌کند. این ویژگی در ترکیب با بک‌اند ذخیره‌سازی fscrypt مفید است تا اطمینان حاصل شود سیستم‌عامل نسخه‌های رمزگشایی‌شده فایل‌ها و پوشه‌ها را پس از خروج کاربر در حافظه نگه نمی‌دارد (و آنها را در دسترس باقی نمی‌گذارد). این گزینه در سایر بک‌اندها نیز پشتیبانی می‌شود، اما مزیت خاصی در آنها به همراه ندارد. مقدار پیش‌فرض غیرفعال است، مگر اینکه بک‌اند ذخیره‌سازی انتخاب‌شده fscrypt باشد که در آن صورت به طور پیش‌فرض فعال است. توجه داشته باشید که تخلیه کش‌های سیستم‌عامل برای مدت کوتاهی پس از خروج تأثیر منفی بر عملکرد سیستم‌عامل خواهد گذاشت.

اضافه‌شده در نسخه 250.

--fs-type=TYPE

هنگامی که ذخیره‌سازی LUKS2 استفاده می‌شود، نوع فایل‌سیستم مورد استفاده در داخل کانتینر LUKS2 دایرکتوری خانگی را پیکربندی می‌کند. یکی از مقادیر "btrfs"، "ext4" یا "xfs". در صورت عدم تعیین، homed.conf(5) نوع فایل‌سیستم پیش‌فرض مورد استفاده را تعیین می‌کند. توجه داشته باشید که "xfs" توصیه نمی‌شود، زیرا پشتیبانی آن از تغییر اندازه فایل‌سیستم بسیار محدود است.

اضافه‌شده در نسخه 245.

--luks-discard=BOOL

هنگامی که ذخیره‌سازی LUKS2 استفاده می‌شود، فعال بودن قابلیت "discard" فایل‌سیستم را پیکربندی می‌کند. در صورت فعال بودن، فایل‌سیستم مستقر روی حجم LUKS2 اطلاعات بلوک‌های خالی را به LUKS2 و فایل loopback زیرین گزارش می‌دهد؛ این کار تضمین می‌کند فضای خالی دایرکتوری خانگی به فایل‌سیستم پشتیبان زیر حجم LUKS2 بازگردانده شود، که منجر به ایجاد یک فایل loopback تُنُک ("sparse") می‌گردد. این گزینه اکثراً به طور پیش‌فرض غیرفعال است، زیرا اجازه over-committing به دایرکتوری‌های خانگی را می‌دهد که اگر فایل‌سیستم زیرین هنگام تخصیص یک بلوک توسط فایل‌سیستم بالایی پر شود، خطاهای I/O رخ خواهد داد. چنین خطاهای I/O معمولاً نه توسط فایل‌سیستم‌ها و نه توسط برنامه‌ها به خوبی مدیریت نمی‌شوند. هنگامی که ذخیره‌سازی LUKS2 روی دستگاه‌های بلوکی معمولی (به جای فایل loopback) استفاده می‌شود، منطق discard به طور پیش‌فرض فعال است.

اضافه‌شده در نسخه 245.

--luks-offline-discard=BOOL

مشابه --luks-discard=، عملیات آزادسازی (trimming) فایل‌سیستم را کنترل می‌کند. با این حال، در حالی که --luks-discard= آنچه را که هنگام فعال بودن دایرکتوری خانگی رخ می‌دهد کنترل می‌کند، --luks-offline-discard= اتفاقات زمان غیرفعال شدن آن را کنترل می‌کند، یعنی آیا هنگام غیرفعال کردن دایرکتوری خانگی، فضای ذخیره‌سازی کوتاه/آزاد شود یا خیر. این گزینه به طور پیش‌فرض فعال است تا اطمینان حاصل شود در زمان عدم ورود کاربر، فضای دیسک به حداقل می‌رسد.

اضافه‌شده در نسخه 246.

--luks-extra-mount-options=OPTIONS

رشته‌ای شامل گزینه‌های مانت اضافی را برای استفاده هنگام مانت کردن حجم LUKS دریافت می‌کند. در صورت مشخص شدن، این رشته به گزینه‌های مانت پیش‌فرض و داخلی اضافه خواهد شد. مقدار پیش‌فرض "compress=zstd:1,noacl,user_subvol_rm_allowed" است.

اضافه‌شده در نسخه 250.

--luks-cipher=CIPHER, --luks-cipher-mode=MODE, --luks-volume-key-size=BYTES, --luks-pbkdf-type=TYPE, --luks-pbkdf-hash-algorithm=ALGORITHM, --luks-pbkdf-force-iterations=ITERATIONS, --luks-pbkdf-time-cost=SECONDS, --luks-pbkdf-memory-cost=BYTES, --luks-pbkdf-parallel-threads=THREADS, --luks-sector-size=BYTES

پارامترهای رمزنگاری مختلف را برای سازوکار ذخیره‌سازی LUKS2 پیکربندی می‌کند. برای جزئیات مربوط به ویژگی‌های خاص، به cryptsetup(8) مراجعه کنید.

توجه داشته باشید که homectl مانند /proc/crypto برای اندازه کلید از بایت استفاده می‌کند، اما cryptsetup(8) از بیت استفاده می‌نماید.

اضافه‌شده در نسخه 245.

--auto-resize-mode=

پیکربندی می‌کند که آیا فایل‌سیستم پشتیبان در هنگام ورود و خروج به طور خودکار رشد و/یا کوچک شود یا خیر. یکی از رشته‌های "off"، "grow" یا "shrink-and-grow" را می‌پذیرد. در حال حاضر فقط برای بک‌اند LUKS2 اعمال می‌شود، و آن هم در صورتی که فایل‌سیستم btrfs در داخل آن استفاده شده باشد (زیرا تنها در این صورت افزایش/کاهش اندازه برخط فایل‌سیستم پشتیبانی می‌شود). اگر LUKS2/btrfs استفاده شود، به طور پیش‌فرض روی "shrink-and-grow" است، در غیر این صورت off است. در صورت تنظیم روی "off"، هیچ کوچک یا بزرگ‌سازی خودکاری در طول ورود یا خروج انجام نمی‌شود. در صورت تنظیم روی "grow"، اگر ناحیه خانگی در حال حاضر کوچک‌تر باشد، به اندازه‌ای که از طریق --disk-size= پیکربندی شده است رشد می‌کند. اگر هم‌اکنون با اندازه پیکربندی‌شده مطابقت داشته باشد یا بزرگ‌تر باشد، هیچ عملیاتی اجرا نمی‌شود. در صورت تنظیم روی "shrink-and-grow"، ناحیه خانگی در طول خروج نیز به حداقل اندازه‌ای که فضای دیسک استفاده‌شده و محدودیت‌های فایل‌سیستم اجازه می‌دهند تغییر اندازه می‌دهد. بنابراین این حالت تضمین می‌کند که وقتی ناحیه خانگی فعال است، به اندازه پیکربندی‌شده باشد، اما در زمان غیرفعال بودن فشرده شده و تنها حداقل فضای ممکن را اشغال کند. توجه داشته باشید که اگر سیستم به طور غیرعادی خاموش شود یا کاربر به درستی خارج نشود، عملیات کوچک‌سازی انجام نخواهد شد و کاربر باید پیش از اجرای مجدد آن، دوباره وارد و خارج شود.

اضافه‌شده در نسخه 250.

--rebalance-weight=

پارامتر وزن را برای منطق بازتعادل‌سازی فضای خالی دیسک پیکربندی می‌کند. تنها برای بک‌اند LUKS2 اعمال می‌شود (زیرا برای بک‌اند LUKS2 فضای دیسک به جای اینکه مانند سایر بک‌اندها بلافاصله از یک مخزن مشترک تخصیص یابد، از یک فایل‌سیستم loopback اختصاصی برای هر کاربر تخصیص داده می‌شود). در فواصل زمانی منظم، فضای خالی دیسک در نواحی خانگی فعال و فضای ذخیره‌سازی پشتیبان آنها با در نظر گرفتن مقدار وزن پیکربندی‌شده در اینجا، در میان آنها بازتوزیع می‌شود. یک عدد صحیح در بازه ۱...۱۰۰۰۰ یا رشته ویژه "off" را انتظار دارد. در صورت عدم تعیین، به طور پیش‌فرض ۱۰۰ است. وزن برای مقیاس‌بندی فضای خالی در دسترس نواحی خانگی استفاده می‌شود: یک ناحیه خانگی با وزن ۲۰۰ دو برابر یک ناحیه با وزن ۱۰۰ فضای خالی دریافت خواهد کرد؛ یک ناحیه خانگی با وزن ۵۰ نیمی از آن را دریافت می‌کند. به فایل‌سیستم پشتیبان فضایی معادل با وزن ۲۰ اختصاص می‌یابد. در صورت تنظیم روی "off"، هیچ توزیع خودکار فضای خالی برای این ناحیه خانگی انجام نمی‌شود. توجه داشته باشید که تغییر اندازه صریح ناحیه خانگی (با homectl resize که در زیر آمده است) بازتعادل خودکار را به طور ضمنی خاموش می‌کند. برای فعال‌سازی مجدد بازتعادل خودکار از --rebalance-weight= با یک پارامتر خالی استفاده کنید.

اضافه‌شده در نسخه 250.

--nosuid=BOOL, --nodev=BOOL, --noexec=BOOL

گزینه‌های مانت "nosuid"، "nodev" و "noexec" را برای دایرکتوری‌های خانگی پیکربندی می‌کند. به طور پیش‌فرض، "nodev" و "nosuid" فعال هستند، در حالی که "noexec" غیرفعال است. برای جزئیات بیشتر درباره این گزینه‌های مانت به mount(8) مراجعه کنید.

اضافه‌شده در نسخه 245.

--cifs-domain=DOMAIN, --cifs-user-name=USER, --cifs-service=SERVICE, --cifs-extra-mount-options=OPTIONS

دامنه و کاربر اشتراک‌گذاری فایل ویندوز (CIFS) را برای انتساب به دایرکتوری خانگی/حساب کاربر، و همچنین اشتراک فایل ("service") را برای مانت شدن به عنوان دایرکتوری پیکربندی می‌کند. مورد دوم زمانی استفاده می‌شود که ذخیره‌سازی "cifs" انتخاب شده باشد. اشتراک فایل باید در قالب "//host/share/directory/..." مشخص شود. بخش دایرکتوری اختیاری است — در صورت مشخص نشدن، دایرکتوری خانگی در بالاترین سطح دایرکتوری اشتراک قرار خواهد گرفت. تنظیم --cifs-extra-mount-options= امکان تعیین گزینه‌های مانت اضافی را هنگام مانت کردن اشتراک فراهم می‌کند، برای جزئیات به mount.cifs(8) مراجعه کنید.

اضافه‌شده در نسخه 245.

--stop-delay=SECS

مدت زمانی را که مدیر سرویس اختصاصی هر کاربر پس از پایان یافتن تمامی نشست‌های کاربر باید به اجرا ادامه دهد، پیکربندی می‌کند. مقدار پیش‌فرض در logind.conf(5) پیکربندی شده است (البته برای دایرکتوری‌های خانگی با ذخیره‌سازی LUKS2 واقع روی رسانه‌های جداشدنی، این مقدار به طور پیش‌فرض ۰ است). مدت زمان طولانی‌تر اطمینان حاصل می‌کند که ورودهای سریع و مکرر کارآمدتر باشند، زیرا نیازی به راه‌اندازی مجدد مدیر سرویس کاربر در هر بار ورود نیست.

اضافه‌شده در نسخه 245.

--kill-processes=BOOL

مشخص می‌کند که آیا همه فرایندهای کاربر در هنگام خروج خاتمه داده شوند یا خیر. مقدار پیش‌فرض در logind.conf(5) پیکربندی شده است.

اضافه‌شده در نسخه 245.

--auto-login=BOOL

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

اضافه‌شده در نسخه 245.

--session-launcher=LAUNCHER

یک آرگومان رشته‌ای می‌پذیرد. فایل مدخل desktop. را برای اجراکننده نشست ترجیحی کاربر پیکربندی می‌کند (یعنی "gnome"، "plasma" یا نام‌های دیگری که در /usr/share/xsessions/ یا /usr/share/wayland-sessions ظاهر می‌شوند). این تنظیم توسط مدیر نمایش خوانده می‌شود تا نشست پیش‌فرضی را که هنگام ورود کاربر اجرا می‌شود انتخاب کند.

اضافه‌شده در نسخه 256.

--session-type=TYPE

یک آرگومان رشته‌ای می‌پذیرد. نوع نشست ترجیحی کاربر را پیکربندی می‌کند (یعنی "x11"، "wayland" و سایر مقادیر پذیرفته‌شده توسط $XDG_SESSION_TYPE). این تنظیم توسط مدیر نمایش خوانده می‌شود تا نوع نشست پیش‌فرضی را که کاربر به آن وارد می‌شود انتخاب کند.

اضافه‌شده در نسخه 256.

دستورات زیر پشتیبانی می‌شوند:

list

فهرست کردن تمام دایرکتوری‌های خانگی (به همراه جزئیات کوتاه) که در حال حاضر توسط systemd-homed.service مدیریت می‌شوند. همچنین در صورتی که هیچ دستوری در خط فرمان مشخص نشده باشد، این دستور اجرا می‌شود. (توجه داشته باشید که فهرست کاربران نمایش‌داده‌شده توسط این دستور شامل کاربرانی که توسط زیرسیستم‌های دیگر مدیریت می‌شوند، مانند کاربران سیستمی یا هر کاربر سنتی فهرست‌شده در /etc/passwd نمی‌شود.)

افزوده‌شده در نگارش 245.

activate USER [USER...]

فعال‌سازی یک یا چند دایرکتوری خانگی. دایرکتوری‌های خانگی هر کاربر فهرست‌شده فعال شده و در نقطهٔ اتصال آن‌ها (معمولاً در /home/$USER) در دسترس قرار می‌گیرند. توجه داشته باشید که هر خانهٔ فعال‌شده با این روش برای همیشه فعال می‌ماند، مگر اینکه دوباره به صورت صریح غیرفعال شود (با deactivate، زیر را ببینید)، یا کاربر خارج شود و دوباره وارد شود و در نتیجه به دلیل منطق غیرفعال‌سازی خودکار پس از خروج غیرفعال شود.

فعال‌سازی یک دایرکتوری خانگی شامل عملیات گوناگونی است که به سازوکار ذخیره‌سازی انتخاب‌شده بستگی دارد. اگر از سازوکار LUKS2 استفاده شود، این کار عموماً شامل موارد زیر است: درخواست گذرواژه از کاربر، برپایی دستگاه loopback، اعتبارسنجی و فعال‌سازی حجم LUKS2، بررسی سیستم‌فایل، اتصال (mount) سیستم‌فایل و در صورت لزوم تغییر مالکیت تمام فایل‌های موجود به UID/GID صحیح.

افزوده‌شده در نگارش 245.

deactivate USER [USER...]

غیرفعال‌سازی یک یا چند دایرکتوری خانگی. این دستور اثر activate را خنثی می‌کند.

افزوده‌شده در نگارش 245.

inspect USER [USER...]

نمایش جزئیات گوناگون دربارهٔ دایرکتوری‌های خانگی مشخص‌شده. این دستور اطلاعات گوناگونی را دربارهٔ دایرکتوری خانگی و حساب کاربری آن نشان می‌دهد، از جمله داده‌های زمان اجرا مانند وضعیت فعلی، مصرف دیسک و موارد مشابه. ترکیب با --json= برای نمایش رکورد کاربری تفصیلی JSON به جای آن، که ممکن است با --export-format= ترکیب شود تا جنبه‌های معینی از خروجی نادیده گرفته شوند.

افزوده‌شده در نگارش 245.

authenticate USER [USER...]

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

افزوده‌شده در نگارش 245.

create USER, create --identity=PATH [USER]

ایجاد یک دایرکتوری خانگی/حساب کاربری جدید با نام مشخص‌شده. از گزینه‌های گوناگون ویژگی‌های رکورد کاربری (همان‌طور که در بالا مستند شده است) برای کنترل جنبه‌های مختلف دایرکتوری خانگی و حساب‌های کاربری آن استفاده کنید.

نام کاربری مشخص‌شده باید از نحو دقیق شرح داده شده در User/Group Name Syntax[4] پیروی کند.

افزوده‌شده در نگارش 245.

adopt PATH [PATH...]

پذیرفتن یک یا چند دایرکتوری خانگی موجود در سیستم محلی. یک یا چند مسیر به دایرکتوری‌های خانگی *.home مربوط به LUKS یا دایرکتوری‌های خانگی مستقل یا زیرحجم‌های *.homedir/ که قبلاً توسط systemd-homed ایجاد شده‌اند را دریافت کرده و آن‌ها را به صورت محلی برای ورود در دسترس قرار می‌دهد. فایل‌های ارجاع‌داده‌شده جابه‌جا نمی‌شوند. این یک جایگزین برای انتقال چنین دایرکتوری‌های خانگی به /home/ است (جایی که به صورت خودکار شناسایی می‌شدند).

افزوده‌شده در نگارش 258.

register FILE [FILE...]

ثبت یک یا چند کاربر، بدون ایجاد دایرکتوری‌های خانگی آن‌ها. یک یا چند مسیر به فایل‌های رکورد کاربری JSON را دریافت می‌کند. اگر مسیر به صورت "-" مشخص شود، رکورد کاربری JSON را از ورودی استاندارد می‌خواند.

ثبت یک کاربر، آن را بدون ایجاد یک دایرکتوری خانگی جدید روی سیستم محلی در دسترس قرار می‌دهد. این ویژگی به‌ویژه برای قابل دسترس کردن یک کاربر روی سیستمی که در ابتدا روی آن ایجاد نشده، بسیار مفید است.

در اینجا مثالی از نحوهٔ دسترسی‌پذیر کردن یک حساب کاربری محلی به همراه دایرکتوری خانگی آن روی یک سیستم راه دور با استفاده از اشتراک‌گذاری فایل SMB/CIFS آورده شده است. با فرض نصب بودن Samba در پیکربندی پیشفرض خود، به عنوان کاربر "root" فراخوانی کنید:

# smbpasswd -a lennart

به عنوان کاربر عادی ادامه دهید "lennart":

$ homectl update lennart --ssh-authorized-keys=... -N --storage=cifs --cifs-service="//$HOSTNAME/lennart"
$ homectl get-signing-key | ssh targetsystem homectl add-signing-key --key-name="$HOSTNAME".public
$ homectl inspect -E lennart | ssh targetsystem homectl register -
$ ssh lennart@targetsystem

این دستور ابتدا اطمینان حاصل می‌کند که حساب کاربری "lennart" برای Samba شناخته‌شده و قابل دسترس است. سپس یک دسترسی محلی SSH را که باید برای دسترسی به این کاربر استفاده شود ثبت می‌کند و CIFS را به عنوان فضای ذخیره‌سازی پیشفرض برای سیستم‌های غیرمحلی روی این حساب پیکربندی می‌نماید. سپس کلید امضای حساب سیستم محلی را به سیستم هدف اضافه می‌کند. سپس حساب کاربری محلی را در سیستم هدف ثبت می‌نماید. در نهایت به حساب در سیستم هدف وارد می‌شود. سیستم هدف سپس از طریق SMB/CIFS به عقب متصل می‌شود تا به دایرکتوری خانگی دسترسی پیدا کند.

افزوده‌شده در نگارش 258.

unregister USER...

لغو ثبت یک یا چند حساب کاربری. این کار تنها رکورد کاربری را از سیستم محلی حذف می‌کند و دایرکتوری خانگی را پاک نمی‌کند. دایرکتوری خانگی می‌تواند بعداً از طریق دستور register یا adopt روی این سیستم یا یک سیستم دیگر دوباره اضافه شود. توجه داشته باشید که لغو ثبت کاربری که دایرکتوری خانگی آن در /home/ قرار دارد، باعث ناپدید شدن کاربر از پایگاه‌داده کاربران محلی نخواهد شد، زیرا تمامی دایرکتوری‌های خانگی پشتیبانی‌شدهٔ قرارگرفته در آنجا، در پایگاه‌داده کاربران ظاهر می‌شوند. با این وجود، رکورد کاربر «تثبیت‌نشده» می‌شود، یعنی وابستگی خود را به سیستم محلی از دست می‌دهد. هنگام ورود به سیستم، این وابستگی به‌طور خودکار بازیابی می‌شود و یک جفت UID/GID محلی به دست می‌آورد.

افزوده‌شده در نگارش 258.

remove USER

حذف یک دایرکتوری خانگی/حساب کاربری. این دستور هم رکورد کاربری دایرکتوری خانگی و هم خود دایرکتوری خانگی را حذف می‌کند، و بنابراین تمامی فایل‌ها و دایرکتوری‌های تحت مالکیت کاربر را پاک می‌نماید.

افزوده‌شده در نگارش 245.

update USER, update --identity=PATH [USER]

به‌روزرسانی یک دایرکتوری خانگی/حساب کاربری. از گزینه‌های گوناگون ویژگی‌های رکورد کاربری (همان‌طور که در بالا مستند شده است) برای اعمال تغییرات در حساب استفاده کنید، یا به جای آن یک رکورد کاربری کامل و به‌روزشدهٔ JSON را از طریق گزینهٔ --identity= ارائه دهید.

توجه داشته باشید که اعمال تغییرات روی رکوردهای کاربری که توسط یک کلید خصوصی رمزنگاری موجود در سیستم محلی امضا نشده‌اند مجاز نیست، مگر اینکه --identity= همراه با یک رکورد کاربری استفاده شود که از قبل به درستی توسط یک کلید خصوصی شناخته‌شده امضا شده باشد.

افزوده‌شده در نگارش 245.

passwd USER

تغییر گذرواژهٔ دایرکتوری خانگی/حساب کاربری مشخص‌شده.

افزوده‌شده در نگارش 245.

resize USER BYTES

تغییر فضای دیسک اختصاص‌یافته به دایرکتوری خانگی مشخص‌شده. اگر از سازوکار ذخیره‌سازی LUKS2 استفاده شود، این دستور به‌طور خودکار اندازهٔ فایل loopback و سیستم‌فایل درون آن را تغییر می‌دهد. توجه داشته باشید که اگر "ext4" درون حجم LUKS2 استفاده شده باشد، لازم است دایرکتوری خانگی را قبل از کوچک کردن آن غیرفعال کنید (یعنی کاربر باید خارج شده باشد). افزایش اندازه می‌تواند در حالی که دایرکتوری خانگی فعال است انجام شود. اگر "xfs" درون حجم LUKS2 استفاده شود، دایرکتوری خانگی به هیچ وجه نمی‌تواند کوچک شود. در هر سه سیستم‌فایل "ext4"، "xfs" و "btrfs" دایرکتوری خانگی ممکن است در حالی که کاربر وارد سیستم است بزرگ‌تر شود، و در مورد آخری، در حالی که کاربر وارد سیستم است می‌تواند کوچک‌تر نیز بشود. اگر از سازوکارهای ذخیره‌سازی "subvolume"، "directory"، "fscrypt" استفاده شود، تغییر اندازه باعث تغییر سهمیهٔ (quota) سیستم‌فایل خواهد شد. پارامتر اندازه می‌تواند از پسوندهای معمول B، K، M، G، T (بر مبنای ۱۰۲۴) استفاده کند. رشته‌های ویژهٔ "min" و "max" می‌توانند به جای یک مقدار عددی اندازه مشخص شوند، تا فضای دیسک اختصاص‌یافته به ناحیهٔ خانگی را با در نظر گرفتن محدودیت‌های سیستم‌فایل، مصرف دیسک درون ناحیهٔ خانگی و فضای ذخیره‌سازی پشتیبان، به حداقل یا حداکثر برسانند.

افزوده‌شده در نگارش 245.

lock USER

تعلیق موقت دسترسی به دایرکتوری خانگی کاربر و حذف هرگونه کلید رمزنگاری مرتبط از حافظه. هرگونه تلاش برای دسترسی به دایرکتوری خانگی کاربر متوقف خواهد ماند تا زمانی که قفل دایرکتوری خانگی مجدداً باز شود (یعنی دوباره اعتبارسنجی شود). این قابلیت در درجهٔ اول برای استفاده در زمان تعلیق سیستم (system suspend) در نظر گرفته شده است تا اطمینان حاصل شود که داده‌های کاربر تا زمان اعتبارسنجی مجدد پس از ادامهٔ کار (resume)، قابل دسترسی نیستند. این عملیات فقط برای دایرکتوری‌های خانگی تعریف شده است که از سازوکار ذخیره‌سازی LUKS2 استفاده می‌کنند.

افزوده‌شده در نگارش 245.

unlock USER

ادامهٔ دسترسی مجدد به دایرکتوری خانگی کاربر، که اثر دستور lock در بالا را خنثی می‌کند. این دستور نیازمند اعتبارسنجی کاربر است، زیرا کلیدهای رمزنگاری مورد نیاز برای دسترسی به دایرکتوری خانگی باید دوباره به دست آیند.

افزوده‌شده در نگارش 245.

lock-all

اجرای همزمان دستور lock روی تمامی دایرکتوری‌های خانگی مناسب. این عملیات عموماً هنگام تعلیق سیستم (یعنی توسط systemctl suspend و دستورات مرتبط) اجرا می‌شود تا اطمینان حاصل شود که کلیدهای رمزنگاری تمامی کاربران فعال برای دسترسی به دایرکتوری‌های خانگی آن‌ها از حافظه حذف می‌شوند.

افزوده‌شده در نگارش 245.

deactivate-all

اجرای همزمان دستور deactivate روی تمامی دایرکتوری‌های خانگی فعال. این عملیات عموماً هنگام خاموش شدن سیستم (یعنی توسط systemctl poweroff و دستورات مرتبط) اجرا می‌شود تا اطمینان حاصل شود که دایرکتوری‌های خانگی تمامی کاربران فعال قبل از قطع اتصال (unmount) /home/ و سیستم‌فایل‌های مرتبط، به طور کامل غیرفعال می‌شوند.

افزوده‌شده در نگارش 247.

with USER COMMAND...

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

افزوده‌شده در نگارش 245.

rebalance

تعادل‌بخشی مجدد فضای آزاد دیسک بین نواحی خانگی فعال و فضای ذخیره‌سازی پشتیبان. --rebalance-weight= در بالا را ببینید. این دستور هیچ عملیاتی انجام نمی‌دهد مگر اینکه حداقل یک ناحیهٔ خانگی فعال LUKS2 وجود داشته باشد که تعادل‌بخشی مجدد فضای دیسک برای آن فعال شده باشد. این عملیات همگام (synchronous) است: تنها زمانی کامل خواهد شد که فضای دیسک مطابق با وزن‌های تعادل‌بخشی مجدد بازتوزیع شود. توجه داشته باشید که تعادل‌بخشی مجدد به‌طور خودکار در پس‌زمینه در فواصل زمانی منظم نیز انجام می‌شود. از این دستور برای اطمینان همگام از بازتوزیع مناسب فضای دیسک پیش از آغاز عملیاتی که به مقادیر زیادی فضای دیسک نیاز دارد، استفاده کنید.

افزوده‌شده در نگارش 250.

firstboot

این دستور قرار است در طول بوت اولیهٔ سیستم فراخوانی شود. بررسی می‌کند که آیا تاکنون هیچ ناحیهٔ خانگی عادی وجود دارد یا خیر، و اگر وجود ندارد از کاربر به‌صورت تعاملی روی کنسول نام کاربری و گذرواژه را درخواست کرده و یکی می‌سازد (تنها در صورتی که --prompt-new-user مشخص شده باشد). به عنوان جایگزین، اگر یک یا چند اعتبارنامهٔ سرویس که نام آن‌ها با "home.create." آغاز می‌شود به دستور ارسال شوند (حاوی یک رکورد کاربری در قالب JSON)، این کاربران به‌طور خودکار در زمان بوت ایجاد می‌شوند.

این دستور توسط واحد سرویس systemd-homed-firstboot.service فراخوانی می‌شود.

افزوده‌شده در نگارش 256.

list-signing-keys

نمایش فهرستی از کلیدهای عمومی که دایرکتوری‌های خانگی می‌توانند با آن‌ها امضا شوند تا برای ورود محلی مجاز شناخته شوند. یکی از چنین کلیدهایی (local.public) به‌طور خودکار برای امضای دایرکتوری‌های خانگی ایجادشده در سطح محلی تولید خواهد شد، اما کلیدهای عمومی بیشتری نیز ممکن است ثبت شوند تا دایرکتوری‌های خانگی از مبداهای دیگر را نیز بپذیرند ( add-signing-key در زیر را ببینید).

افزوده‌شده در نگارش 258.

get-signing-key [NAME...]

نوشتن کلید عمومی مشخص‌شده با نام در خروجی استاندارد (در قالب PEM). اگر نامی مشخص نشود، پیشفرض local.public است، یعنی کلیدی که به‌طور خودکار برای دایرکتوری‌های خانگی ایجادشده در سطح محلی تولید می‌شود.

افزوده‌شده در نگارش 258.

add-signing-key [FILE...]

افزودن کلید(های) عمومی از فایل(های) کلید PEM مشخص‌شده به فهرست کلیدهایی که نواحی خانگی باید توسط آن‌ها امضا شده باشند تا برای ورود محلی مجاز دانسته شوند. اگر مسیر "-" مشخص شود، یا اگر اصلاً هیچ فایلی مشخص نشود، کلید از ورودی استاندارد خوانده خواهد شد. نام فایل(های) کلید باید دارای پسوند .public باشد و نام فایل(ها) پس از افزوده‌شدن برای نام‌گذاری کلید(ها) نیز استفاده خواهد شد. اگر یک کلید از ورودی استاندارد افزوده شود، نام کلید باید صراحتاً از طریق --key-name= مشخص شود، بالا را ببینید.

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

homectl get-signing-key | ssh myotherhost homectl add-signing-key --key-name="$HOSTNAME".public

افزوده‌شده در نگارش 258.

remove-signing-key NAME...

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

افزوده‌شده در نگارش 258.

هنگامی که با دستور firstboot فراخوانی می‌شود، homectl از منطق اطلاعات هویتی سرویس که توسط ImportCredential=/LoadCredential=/SetCredential= پیاده‌سازی شده است پشتیبانی می‌کند (برای جزئیات به systemd.exec(5) مراجعه کنید). هنگام ارسال، اطلاعات هویتی زیر استفاده می‌شوند:

home.create.*

اگر یک یا چند دادهٔ هویتی که نام آن‌ها با "home.create." آغاز می‌شود و به دنبال آن یک نام کاربری معتبر یونیکس می‌آید ارسال شوند، یک ناحیهٔ خانگی جدید ایجاد می‌شود، یکی برای هر رکورد کاربری مشخص‌شده.

افزوده‌شده در نگارش 256.

systemd.firstboot=

این متغیر بولی اثر دستور homectl firstboot را غیرفعال می‌کند. این پارامتر در درجهٔ اول توسط systemd-firstboot(1) تفسیر می‌شود.

افزوده‌شده در نگارش 256.

در صورت موفقیت، 0 و در غیر این صورت یک کد خطای غیرصفر بازگردانده می‌شود.

هنگامی که یک دستور با with فراخوانی می‌شود، کد وضعیت خروج فرزند منتقل می‌شود. در عمل، homectl در صورتی بدون خطا خارج می‌شود که دستور هم با موفقیت فراخوانی شود و با موفقیت پایان یابد.

$SYSTEMD_LOG_LEVEL

حداکثر سطح لاگ پیام‌های صادرشده (پیام‌های با سطح لاگ بالاتر، یعنی پیام‌های کم‌اهمیت‌تر، نادیده گرفته خواهند شد). فهرستی از مقادیر جداشده با کاما را می‌پذیرد. یک مقدار می‌تواند یکی از موارد زیر باشد (به ترتیب کاهش اهمیت): emerg، alert، crit، err، warning، notice، info، debug، یا یک عدد صحیح در محدودهٔ 0...7. برای اطلاعات بیشتر syslog(3) را ببینید. هر مقدار می‌تواند به‌صورت اختیاری با یکی از پیشوندهای console، syslog، kmsg یا journal همراه با یک دو‌نقطه پیشوندگذاری شود تا حداکثر سطح لاگ را برای آن مقصد لاگ خاص تنظیم کند (به عنوان مثال SYSTEMD_LOG_LEVEL=debug,console:info مشخص می‌کند که لاگ‌گیری در سطح debug انجام شود به جز زمانی که در کنسول لاگ گرفته می‌شود که باید در سطح info باشد). توجه داشته باشید که حداکثر سطح لاگ سراسری بر هر حداکثر سطح لاگ به ازای هر مقصد اولویت دارد.

$SYSTEMD_LOG_COLOR

یک مقدار بولی. اگر درست باشد، پیام‌های نوشته‌شده در tty بر اساس اولویت رنگی خواهند شد.

این تنظیم فقط زمانی مفید است که پیام‌ها مستقیماً در ترمینال نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان پیام‌ها را بر اساس سطح لاگ رنگی می‌کنند.

$SYSTEMD_LOG_TIME

یک مقدار بولی. اگر درست باشد، پیام‌های لاگ کنسول با برچسب زمان پیشوندگذاری می‌شوند.

این تنظیم فقط زمانی مفید است که پیام‌ها مستقیماً در ترمینال یا یک فایل نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خودشان برچسب‌های زمانی را بر اساس متادیتای مدخل الصاق می‌نمایند.

$SYSTEMD_LOG_LOCATION

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

توجه داشته باشید که مکان لاگ اغلب به هر حال به عنوان متادیتا به مدخل‌های ژورنال پیوست می‌شود. با این وجود گنجاندن مستقیم آن در متن پیام می‌تواند هنگام رفع اشکال برنامه‌ها راحت باشد.

$SYSTEMD_LOG_TID

یک مقدار بولی. اگر درست باشد، پیام‌ها با شناسهٔ عددی ریسهٔ (TID) فعلی پیشوندگذاری می‌شوند.

توجه داشته باشید که این اطلاعات به هر حال به عنوان متادیتا به مدخل‌های ژورنال پیوست می‌شود. با این حال گنجاندن مستقیم آن در متن پیام می‌تواند هنگام اشکال‌زدایی برنامه‌ها سودمند باشد.

$SYSTEMD_LOG_TARGET

مقصد پیام‌های لاگ. یکی از موارد زیر: console (لاگ‌گیری در tty متصل‌شده)، console-prefixed (لاگ‌گیری در tty متصل‌شده اما با پیشوندهایی که سطح لاگ و «facility» را کدگذاری می‌کنند، syslog(3) را ببینید)، kmsg (لاگ‌گیری در بافر مدور لاگ هسته)، journal (لاگ‌گیری در ژورنال)، journal-or-kmsg (لاگ‌گیری در ژورنال در صورت در دسترس بودن، و در غیر این صورت در kmsg)، auto (تعیین خودکار مقصد لاگ مناسب، حالت پیشفرض)، null (غیرفعال کردن خروجی لاگ).

$SYSTEMD_LOG_RATELIMIT_KMSG

آیا kmsg با محدودیت نرخ (ratelimit) ارسال شود یا خیر. یک مقدار بولی می‌گیرد. پیشفرض "true" است. در صورت غیرفعال بودن، systemd پیام‌های نوشته‌شده در kmsg را محدود نخواهد کرد.

$SYSTEMD_PAGER, $PAGER

پیجری که در صورت عدم ارسال گزینهٔ --no-pager استفاده می‌شود. در صورت تنظیم بودن $SYSTEMD_PAGER از آن استفاده می‌شود؛ در غیر این صورت $PAGER مورد استفاده قرار می‌گیرد. اگر نه $SYSTEMD_PAGER و نه $PAGER تنظیم نشده باشند، مجموعه‌ای از پیاده‌سازی‌های شناخته‌شدهٔ پیجر به نوبت امتحان می‌شوند، از جمله less(1) و more(1)، تا زمانی که یکی پیدا شود. اگر هیچ پیاده‌سازی پیجری یافت نشود، هیچ پیجری فراخوانی نخواهد شد. تنظیم این متغیرهای محیطی روی یک رشتهٔ خالی یا مقدار "cat" معادل ارسال --no-pager است.

نکته: اگر $SYSTEMD_PAGERSECURE تنظیم نشده باشد، $SYSTEMD_PAGER و $PAGER فقط می‌توانند برای غیرفعال کردن پیجر (با "cat" یا "") استفاده شوند و در غیر این صورت نادیده گرفته می‌شوند.

$SYSTEMD_LESS

بازنویسی گزینه‌های ارسال‌شده به less (به‌طور پیشفرض "FRSXMK").

کاربران ممکن است به ویژه مایل به تغییر دو گزینه باشند:

K

این گزینه به پیجر دستور می‌دهد که هنگام فشرده شدن Ctrl+C فوراً خارج شود. برای اینکه به less اجازه دهید خودش Ctrl+C را مدیریت کند تا به خط اعلان دستور پیجر بازگردد، این گزینه را لغو کنید.

اگر مقدار $SYSTEMD_LESS شامل "K" نباشد و پیجر فراخوانی‌شده less باشد، کلید Ctrl+C توسط فایل اجرایی نادیده گرفته می‌شود و باید توسط پیجر مدیریت شود.

X

این گزینه به پیجر دستور می‌دهد تا رشته‌های مقداردهی اولیه و پایانی termcap را به ترمینال ارسال نکند. این گزینه به‌طور پیشفرض تنظیم شده است تا خروجی دستور حتی پس از خروج از پیجر در ترمینال قابل مشاهده باقی بماند. با این وجود، این امر مانع از عملکرد برخی از قابلیت‌های پیجر می‌شود، به ویژه اینکه خروجی صفحه‌بندی‌شده را نمی‌توان با ماوس پیمایش کرد.

توجه داشته باشید که تنظیم متغیر محیطی معمولی $LESS هیچ تاثیری بر فراخوانی‌های less توسط ابزارهای systemd ندارد.

برای بحث و اطلاعات بیشتر less(1) را ببینید.

$SYSTEMD_LESSCHARSET

بازنویسی مجموعه نویسه (charset) ارسال‌شده به less (به‌طور پیشفرض "utf-8"، اگر تشخیص داده شود که ترمینال فراخواننده با UTF-8 سازگار است).

توجه داشته باشید که تنظیم متغیر محیطی معمولی $LESSCHARSET هیچ تاثیری بر فراخوانی‌های less توسط ابزارهای systemd ندارد.

$SYSTEMD_PAGERSECURE

دستورات پیجر متداول مانند less(1)، علاوه بر «صفحه‌بندی» یعنی پیمایش در خروجی، از باز کردن یا نوشتن در فایل‌های دیگر و اجرای دستورات دلخواه شل پشتیبانی می‌کنند. هنگامی که دستورات با مجوزهای ارتقایافته اجرا می‌شوند، برای مثال تحت sudo(8) یا pkexec(1)، پیجر به یک مرز امنیتی تبدیل می‌شود. باید دقت شود که تنها برنامه‌هایی با قابلیت‌های اکیداً محدود به عنوان پیجر استفاده شوند، و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا راه‌اندازی زیرفرآیندها مجاز نباشند. «حالت امن» برای پیجر ممکن است همان‌طور که در زیر شرح داده شده است فعال شود، اگر پیجر از آن پشتیبانی کند (بیشتر پیجرها به شکلی نوشته نشده‌اند که این موضوع را مد نظر قرار دهند). توصیه می‌شود هنگام اجازه دادن به کاربران غیرقابل اعتماد برای اجرای دستورات با مجوزهای بالا، یا صراحتاً «حالت امن» را فعال کنید یا با استفاده از --no-pager یا PAGER=cat پیجر را به‌طور کامل غیرفعال نمایید.

این گزینه یک آرگومان بولی می‌گیرد. وقتی روی true تنظیم شود، «حالت امن» پیجر فعال می‌شود. در «حالت امن»، هنگام فراخوانی پیجر LESSSECURE=1 تنظیم خواهد شد، که به پیجر دستور می‌دهد دستوراتی را که فایل‌های جدید باز می‌کنند یا می‌سازند یا زیرفرآیندهای جدید آغاز می‌کنند غیرفعال کند. در حال حاضر تنها less(1) شناخته شده است که این متغیر را درک کرده و «حالت امن» را پیاده‌سازی می‌کند.

هنگامی که روی false تنظیم شود، هیچ محدودیتی روی پیجر اعمال نمی‌شود. تنظیم SYSTEMD_PAGERSECURE=0 یا حذف نکردن آن از محیط به ارث رسیده ممکن است به کاربر اجازه دهد تا دستورات دلخواه را اجرا کند.

هنگامی که $SYSTEMD_PAGERSECURE تنظیم نشده باشد، ابزارهای systemd تلاش می‌کنند تا به‌طور خودکار تشخیص دهند که آیا «حالت امن» باید فعال شود و آیا پیجر از آن پشتیبانی می‌کند یا خیر. اگر UID موثر با مالک نشست ورود یکسان نباشد، geteuid(2) و sd_pid_get_owner_uid(3) را ببینید، یا هنگام اجرا تحت sudo(8) یا ابزارهای مشابه (زمانی که $SUDO_UID تنظیم شده باشد [5])، «حالت امن» فعال می‌شود. در آن موارد، SYSTEMD_PAGERSECURE=1 تنظیم خواهد شد و پیجرهایی که پیاده‌سازی «حالت امن» توسط آن‌ها شناخته‌شده نیست اصلاً استفاده نخواهند شد. توجه داشته باشید که این تشخیص خودکار فقط رایج‌ترین سازوکارهای ارتقای مجوز را پوشش می‌دهد و برای راحتی در نظر گرفته شده است. توصیه می‌شود صراحتاً $SYSTEMD_PAGERSECURE را تنظیم کنید یا پیجر را غیرفعال نمایید.

توجه داشته باشید که اگر قرار است متغیرهای $SYSTEMD_PAGER یا $PAGER رعایت شوند، به جز برای غیرفعال کردن پیجر، $SYSTEMD_PAGERSECURE نیز باید تنظیم شده باشد.

$SYSTEMD_COLORS

یک آرگومان بولی یا یک مقدار ویژه می‌گیرد. به‌طور پیشفرض (تنظیم‌نشده)، systemd و ابزارهای مرتبط در صورت امکان از رنگ‌ها در خروجی خود استفاده می‌کنند. اگر $COLORTERM روی "truecolor" یا "24bit" تنظیم شده باشد، رنگ‌های ۲۴ بیتی فعال خواهند شد، در غیر این صورت ۲۵۶ رنگ، مگر اینکه $NO_COLOR یا $TERM نشان دهند که رنگ‌ها غیرفعال هستند.

true

مشابه با حالت تنظیم‌نشده، با این تفاوت که $NO_COLOR نادیده گرفته می‌شود.

false

خروجی تک‌رنگ (سیاه و سفید) خواهد بود.

"16", "256", "24bit"

به ترتیب، همیشه از ۱۶ رنگ پایهٔ ANSI، ۲۵۶ رنگ یا رنگ ۲۴ بیتی استفاده می‌کند.

"auto-16", "auto-256", "auto-24bit"

استفاده از مقدار رنگ داده‌شده، مشروط به $TERM و آنچه که کنسول به آن متصل است.

$SYSTEMD_URLIFY

مقدار باید بولی باشد. کنترل می‌کند که آیا پیوندهای قابل کلیک در خروجی برای شبیه‌سازهای ترمینالی که از این قابلیت پشتیبانی می‌کنند تولید شود یا خیر. این مقدار می‌تواند برای بازنویسی تصمیمی که systemd بر اساس $TERM و شرایط دیگر می‌گیرد، مشخص شود.

مثال 1. ایجاد یک کاربر "waldo" در گروه مدیریتی "wheel"، و اختصاص 500 MiB فضای دیسک به آن.

homectl create waldo --real-name="Waldo McWaldo" -G wheel --disk-size=500M

مثال 2. ایجاد یک کاربر "wally" روی یک فلش مموری USB، و اختصاص حداکثر 500 وظیفهٔ همزمان به آن.

homectl create wally --real-name="Wally McWally" --image-path=/dev/disk/by-id/usb-SanDisk_Ultra_Fit_476fff954b2b5c44-0:0 --tasks-max=500

مثال 3. تغییر مقدار nice کاربر "odlaw" به +5 و اطمینان از اینکه متغیر محیطی $SOME هنگام ورود به سیستم برای او روی رشتهٔ "THING" تنظیم شده باشد.

homectl update odlaw --nice=5 --setenv=SOME=THING

مثال 4. برپایی اعتبارسنجی با یک توکن امنیتی YubiKey با استفاده از PKCS#11/PIV:

# Clear the Yubikey from any old keys (careful!)
ykman piv reset
# Generate a new private/public key pair on the device, store the public key in 'pubkey.pem'.
ykman piv generate-key -a RSA2048 9d pubkey.pem
# Create a self-signed certificate from this public key, and store it on the device.
ykman piv generate-certificate --subject "Knobelei" 9d pubkey.pem
# We do not need the public key on disk anymore
rm pubkey.pem
# Allow the security token to unlock the account of user 'lafcadio'.
homectl update lafcadio --pkcs11-token-uri=auto

مثال 5. برپایی اعتبارسنجی با یک توکن امنیتی FIDO2:

# Allow a FIDO2 security token to unlock the account of user 'nihilbaxter'.
homectl update nihilbaxter --fido2-device=auto

مثال 6. افزودن یک کلید بازیابی به یک حساب کاربری موجود:

# Generate and add a recovery key for user 'emily'.
homectl update emily --recovery-key=yes

systemd(1), systemd-homed.service(8), homed.conf(5), userdbctl(1), useradd(8), cryptsetup(8)

1.
رکوردهای کاربری JSON
2.
مشخصات نام‌گذاری آیکون
3.
دایرکتوری‌های حباب (Blob) رکورد کاربر
4.
نحو نام کاربر/گروه
5.
به ابزارهای دیگر توصیه می‌شود که $SUDO_UID را بر حسب نیاز تنظیم و بررسی کنند و با آن به عنوان یک رابط مشترک رفتار نمایند.
systemd 261.2