OS Manuals

/usr/bin/homectl

systemd-homed is a system service designed to manage home directories

From systemd-homed 262.2-r1 (os), captured 2026-11-05 by running homectl --help (exit 0). permalink

> homectl [OPTION…] COMMAND …

Create, manipulate or inspect home directories.

Basic User Manipulation Commands:
  [list]                   List home areas
  inspect USER…            Inspect a home area
  create USER              Create a home area
  update USER              Update a home area
  passwd USER              Change password of a home area
  resize USER SIZE         Resize a home area
  remove USER…             Remove a home area

Advanced User Manipulation Commands:
  activate USER…           Activate a home area
  deactivate USER…         Deactivate a home area
  deactivate-all           Deactivate all active home areas
  with USER [COMMAND…]     Run shell or command with access to a home area
  authenticate USER…       Authenticate a home area

User Migration Commands:
  adopt PATH…              Add an existing home area on this system
  register PATH…           Register a user record locally
  unregister USER…         Unregister a user record locally

Signing Keys Commands:
  list-signing-keys        List home signing keys
  get-signing-key [NAME…]  Get a named home signing key
  add-signing-key FILE…    Add home signing key
  remove-signing-key NAME… Remove home signing key

Lock/Unlock Commands:
  lock USER…               Temporarily lock an active home area
  unlock USER…             Unlock a temporarily locked home area
  lock-all                 Lock all suitable home areas

Other Commands:
  rebalance                Rebalance free space between home areas
  firstboot                Run first-boot home area creation wizard

Options:
  -h --help                              Show this help
     --version                           Show package version
     --offline                           Don't update record embedded in home directory
  -H --host=[USER@]HOST                  Operate on remote host
  -M --machine=CONTAINER                 Operate on local container
  -I --identity=PATH                     Read JSON identity from file
     --json=FORMAT                       Generate JSON output (pretty, short, or off)
  -j                                     Equivalent to --json=pretty (on TTY) or --json=short
                                         (otherwise)
     --export-format=FORMAT              Strip JSON inspection data (full, stripped, minimal)
  -E                                     Same as -j --export-format=stripped
  -EE                                    Same as -j --export-format=minimal
     --key-name=NAME                     Key name when adding a signing key
     --seize=BOOL                        Whether to strip existing signatures of user record when
                                         creating
     --prompt-new-user                   firstboot: Query user interactively for user to create
     --prompt-groups=BOOL                In first-boot mode, don't prompt for auxiliary group
                                         memberships
     --prompt-shell=BOOL                 In first-boot mode, don't prompt for shells
     --chrome=BOOL                       In first-boot mode, don't show colour bar at top and bottom
                                         of terminal
     --mute-console=BOOL                 In first-boot mode, tell kernel/PID 1 to not write to the
                                         console while running
     --no-pager                          Do not start a pager
     --no-legend                         Do not show headers and footers
     --no-ask-password                   Do not prompt for password

General User Record Properties:
  -c --real-name=REALNAME                Real name for user
     --realm=REALM                       Realm to create user in
     --alias=ALIAS                       Define alias usernames for this account
     --email-address=EMAIL               Email address for user
     --location=LOCATION                 Set location of user on earth
     --birth-date[=DATE]                 Set user birth date (YYYY-MM-DD)
     --icon-name=NAME                    Icon name for user
  -d --home-dir=PATH                     Home directory
  -u --uid=UID                           Numeric UID for user
  -G --member-of=GROUP                   Add user to group
     --capability-bounding-set=CAPS      Bounding POSIX capability set
     --capability-ambient-set=CAPS       Ambient POSIX capability set
     --access-mode=MODE                  User home directory access mode
     --umask=MODE                        Umask for user when logging in
  -k --skel=PATH                         Skeleton directory to use
  -s --shell=PATH                        Shell for account
     --setenv=VARIABLE[=VALUE]           Set an environment variable at log-in
     --timezone=TIMEZONE                 Set a time-zone
     --language=LOCALE                   Set preferred languages
     --default-area=AREA                 Select default area

Authentication User Record Properties:
     --ssh-authorized-keys=KEYS          Specify SSH public keys
     --pkcs11-token-uri=URI              URI to PKCS#11 security token containing private key and
                                         matching X.509 certificate
     --fido2-device=PATH                 Path to FIDO2 hidraw device with hmac-secret extension
     --fido2-with-client-pin=BOOL        Whether to require entering a PIN to unlock the account
     --fido2-with-user-presence=BOOL     Whether to require user presence to unlock the account
     --fido2-with-user-verification=BOOL Whether to require user verification to unlock the account
     --recovery-key=BOOL                 Add a recovery key
     --recovery-key-file=PATH            Write the generated recovery key to a file

Blob Directory User Record Properties:
  -b --blob=[FILENAME=]PATH              Path to a replacement blob directory, or replace an
                                         individual files in the blob directory
     --avatar=PATH                       Path to user avatar picture
     --login-background=PATH             Path to user login background picture

Account Management User Record Properties:
     --locked=BOOL                       Set locked account state
     --not-before=TIMESTAMP              Do not allow logins before
     --not-after=TIMESTAMP               Do not allow logins after
     --rate-limit-interval=SECS          Login rate-limit interval in seconds
     --rate-limit-burst=NUMBER           Login rate-limit attempts per interval

Password Policy User Record Properties:
     --password-hint=HINT                Set Password hint
     --enforce-password-policy=BOOL      Control whether to enforce system's password policy for
                                         this user
  -P                                     Same as --enforce-password-policy=no
     --password-change-now=BOOL          Require the password to be changed on next login
     --password-change-min=TIME          Require minimum time between password changes
     --password-change-max=TIME          Require maximum time between password changes
     --password-change-warn=TIME         How much time to warn before password expiry
     --password-change-inactive=TIME     How much time to block password after expiry

Resource Management User Record Properties:
     --disk-size=BYTES                   Size to assign the user on disk
     --nice=NICE                         Nice level for user
     --rlimit=LIMIT=VALUE[:VALUE]        Set resource limits
     --tasks-max=MAX                     Set maximum number of per-user tasks
     --memory-high=BYTES                 Set high memory threshold in bytes
     --memory-max=BYTES                  Set maximum memory limit
     --cpu-weight=WEIGHT                 Set CPU weight
     --io-weight=WEIGHT                  Set IO weight
     --tmp-limit=BYTES|PERCENT           Set limit on /tmp/
     --dev-shm-limit=BYTES|PERCENT       Set limit on /dev/shm/

Storage User Record Properties:
     --storage=STORAGE                   Storage type to use (luks, fscrypt, directory, subvolume,
                                         cifs)
     --image-path=PATH                   Path to image file/directory
     --drop-caches=BOOL                  Whether to automatically drop caches on logout

LUKS Storage User Record Properties:
     --fs-type=TYPE                      File system type to use in case of luks storage (btrfs,
                                         ext4, xfs)
     --luks-discard=BOOL                 Whether to use 'discard' feature of file system when
                                         activated (mounted)
     --luks-offline-discard=BOOL         Whether to trim file on logout
     --luks-cipher=CIPHER                Cipher to use for LUKS encryption
     --luks-cipher-mode=MODE             Cipher mode to use for LUKS encryption
     --luks-volume-key-size=BITS         Volume key size to use for LUKS encryption
     --luks-pbkdf-type=TYPE              Password-based Key Derivation Function to use
     --luks-pbkdf-hash-algorithm=ALG     PBKDF hash algorithm to use
     --luks-pbkdf-time-cost=SECS         Time cost for PBKDF in seconds
     --luks-pbkdf-memory-cost=BYTES      Memory cost for PBKDF in bytes
     --luks-pbkdf-parallel-threads=N     Number of parallel threads for PKBDF
     --luks-sector-size=BYTES            Sector size for LUKS encryption in bytes
     --luks-extra-mount-options=…        LUKS extra mount options
     --auto-resize-mode=MODE             Automatically grow/shrink home on login/logout
     --rebalance-weight=WEIGHT           Weight while rebalancing

Mounting User Record Properties:
     --nosuid=BOOL                       Control the 'nosuid' flag of the home mount
     --nodev=BOOL                        Control the 'nodev' flag of the home mount
     --noexec=BOOL                       Control the 'noexec' flag of the home mount

CIFS User Record Properties:
     --cifs-domain=DOMAIN                CIFS (Windows) domain
     --cifs-user-name=USER               CIFS (Windows) user name
     --cifs-service=SERVICE              CIFS (Windows) service to mount as home area
     --cifs-extra-mount-options=…        CIFS (Windows) extra mount options

Login Behaviour User Record Properties:
     --stop-delay=SECS                   How long to leave user services running after logout
     --kill-processes=BOOL               Whether to kill user processes when sessions terminate
     --auto-login=BOOL                   Try to log this user in automatically
     --session-launcher=LAUNCHER         Preferred session launcher file
     --session-type=TYPE                 Preferred session type

See the homectl(1) man page for details.
Options (104)
OptionDescriptionSource
-h --helpShow this helphelp
--versionShow package versionhelp
--offlineDon't update record embedded in home directoryhelp
-H --host=[USER@]HOSTOperate on remote hosthelp
-M --machine=CONTAINEROperate on local containerhelp
-I --identity=PATHRead JSON identity from filehelp
--json FORMATGenerate JSON output (pretty, short, or off)help
-jEquivalent to --json=pretty (on TTY) or --json=short (otherwise)help
--export-format FORMATStrip JSON inspection data (full, stripped, minimal)help
-ESame as -j --export-format=strippedhelp
-EESame as -j --export-format=minimalhelp
--key-name NAMEKey name when adding a signing keyhelp
--seize BOOLWhether to strip existing signatures of user record when creatinghelp
--prompt-new-userfirstboot: Query user interactively for user to createhelp
--prompt-groups BOOLIn first-boot mode, don't prompt for auxiliary group membershipshelp
--prompt-shell BOOLIn first-boot mode, don't prompt for shellshelp
--chrome BOOLIn first-boot mode, don't show colour bar at top and bottom of terminalhelp
--mute-console BOOLIn first-boot mode, tell kernel/PID 1 to not write to the console while runninghelp
--no-pagerDo not start a pagerhelp
--no-legendDo not show headers and footershelp
--no-ask-passwordDo not prompt for passwordhelp
-c --real-name=REALNAMEReal name for userhelp
--realm REALMRealm to create user inhelp
--alias ALIASDefine alias usernames for this accounthelp
--email-address EMAILEmail address for userhelp
--location LOCATIONSet location of user on earthhelp
--birth-date DATESet user birth date (YYYY-MM-DD)help
--icon-name NAMEIcon name for userhelp
-d --home-dir=PATHHome directoryhelp
-u --uid=UIDNumeric UID for userhelp
-G --member-of=GROUPAdd user to grouphelp
--capability-bounding-set CAPSBounding POSIX capability sethelp
--capability-ambient-set CAPSAmbient POSIX capability sethelp
--access-mode MODEUser home directory access modehelp
--umask MODEUmask for user when logging inhelp
-k --skel=PATHSkeleton directory to usehelp
-s --shell=PATHShell for accounthelp
--setenv VARIABLE[=VALUESet an environment variable at log-inhelp
--timezone TIMEZONESet a time-zonehelp
--language LOCALESet preferred languageshelp
--default-area AREASelect default areahelp
--ssh-authorized-keys KEYSSpecify SSH public keyshelp
--pkcs11-token-uri URIURI to PKCS#11 security token containing private key and matching X.509 certificatehelp
--fido2-device PATHPath to FIDO2 hidraw device with hmac-secret extensionhelp
--fido2-with-client-pin BOOLWhether to require entering a PIN to unlock the accounthelp
--fido2-with-user-presence BOOLWhether to require user presence to unlock the accounthelp
--recovery-key BOOLAdd a recovery keyhelp
--recovery-key-file PATHWrite the generated recovery key to a filehelp
-b --blob=[FILENAME=]PATHPath to a replacement blob directory, or replace an individual files in the blob directoryhelp
--avatar PATHPath to user avatar picturehelp
--login-background PATHPath to user login background picturehelp
--locked BOOLSet locked account statehelp
--not-before TIMESTAMPDo not allow logins beforehelp
--not-after TIMESTAMPDo not allow logins afterhelp
--rate-limit-interval SECSLogin rate-limit interval in secondshelp
--rate-limit-burst NUMBERLogin rate-limit attempts per intervalhelp
--password-hint HINTSet Password hinthelp
--enforce-password-policy BOOLControl whether to enforce system's password policy for this userhelp
-PSame as --enforce-password-policy=nohelp
--password-change-now BOOLRequire the password to be changed on next loginhelp
--password-change-min TIMERequire minimum time between password changeshelp
--password-change-max TIMERequire maximum time between password changeshelp
--password-change-warn TIMEHow much time to warn before password expiryhelp
--password-change-inactive TIMEHow much time to block password after expiryhelp
--disk-size BYTESSize to assign the user on diskhelp
--nice NICENice level for userhelp
--rlimit LIMIT=VALUE[:VALUESet resource limitshelp
--tasks-max MAXSet maximum number of per-user taskshelp
--memory-high BYTESSet high memory threshold in byteshelp
--memory-max BYTESSet maximum memory limithelp
--cpu-weight WEIGHTSet CPU weighthelp
--io-weight WEIGHTSet IO weighthelp
--tmp-limit BYTES|PERCENTSet limit on /tmp/help
--dev-shm-limit BYTES|PERCENTSet limit on /dev/shm/help
--storage STORAGEStorage type to use (luks, fscrypt, directory, subvolume, cifs)help
--image-path PATHPath to image file/directoryhelp
--drop-caches BOOLWhether to automatically drop caches on logouthelp
--fs-type TYPEFile system type to use in case of luks storage (btrfs, ext4, xfs)help
--luks-discard BOOLWhether to use 'discard' feature of file system when activated (mounted)help
--luks-offline-discard BOOLWhether to trim file on logouthelp
--luks-cipher CIPHERCipher to use for LUKS encryptionhelp
--luks-cipher-mode MODECipher mode to use for LUKS encryptionhelp
--luks-volume-key-size BITSVolume key size to use for LUKS encryptionhelp
--luks-pbkdf-type TYPEPassword-based Key Derivation Function to usehelp
--luks-pbkdf-hash-algorithm ALGPBKDF hash algorithm to usehelp
--luks-pbkdf-time-cost SECSTime cost for PBKDF in secondshelp
--luks-pbkdf-memory-cost BYTESMemory cost for PBKDF in byteshelp
--luks-pbkdf-parallel-threads NNumber of parallel threads for PKBDFhelp
--luks-sector-size BYTESSector size for LUKS encryption in byteshelp
--luks-extra-mount-options …LUKS extra mount optionshelp
--auto-resize-mode MODEAutomatically grow/shrink home on login/logouthelp
--rebalance-weight WEIGHTWeight while rebalancinghelp
--nosuid BOOLControl the 'nosuid' flag of the home mounthelp
--nodev BOOLControl the 'nodev' flag of the home mounthelp
--noexec BOOLControl the 'noexec' flag of the home mounthelp
--cifs-domain DOMAINCIFS (Windows) domainhelp
--cifs-user-name USERCIFS (Windows) user namehelp
--cifs-service SERVICECIFS (Windows) service to mount as home areahelp
--cifs-extra-mount-options …CIFS (Windows) extra mount optionshelp
--stop-delay SECSHow long to leave user services running after logouthelp
--kill-processes BOOLWhether to kill user processes when sessions terminatehelp
--auto-login BOOLTry to log this user in automaticallyhelp
--session-launcher LAUNCHERPreferred session launcher filehelp
--session-type TYPEPreferred session typehelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.