USS_ADD(8)
π USS_ADD(8) β AFS Command Reference π
okay bestie, this is the manual page for uss_add, and yes it's deprecated β but we're gonna get through it together. π«Ά
β¨ NAME β¨
uss_add β creates a user account (deprecated)
π SYNOPSIS π
uss add -user <login name> [-realname <full name in quotes>]
[-pass <initial password>]
[-pwexpires <password expires in [0..254] days (0 => never)>]
[-server <file server for home volume>]
[-partition <file server's disk partition for home volume>]
[-mount <home directory mount point>]
[-uid <uid to assign the user>]
[-template <pathname of template file>]
[-verbose] [-var <auxiliary argument pairs (Num val)>+]
[-cell <cell name>] [-admin <administrator to authenticate>]
[-dryrun] [-skipauth] [-overwrite] [-help]
uss ad -us <login name> [-r <full name in quotes>]
[-pas <initial password>]
[-pw <password expires in [0..254] days (0 => never)>]
[-se <FileServer for home volume>]
[-par <FileServer's disk partition for home volume>]
[-m <home directory mount point>]
[-ui <uid to assign the user>]
[-t <pathname of template file>] [-ve]
[-va <auxiliary argument pairs (Num val)>+] [-c <cell name>]
[-a <administrator to authenticate>] [-d] [-sk] [-o]
[-h]
β οΈ CAUTIONS β οΈ
β οΈ big mood warning, bestie: theusscommand suite is currently designed for cells using the obsolete Authentication Server, and therefore is primarily useful for sites that have not yet migrated to a Kerberos version 5 KDC. The Authentication Server and supporting commands will be removed in a future version of OpenAFS, which may includeussunless someone who finds it useful converts it to work with a Kerberos version 5 KDC. π
π DESCRIPTION π
okay so the uss add command creates entries in the Protection Database and Authentication Database for the user name you specify with the -user argument. By default, the Protection Server automatically allocates an AFS user ID (UID) for the new user β cute! If you want to specify an alternate AFS UID, include the -uid argument. πͺͺ
If you provide a password with the -pass argument, it is stored as the user's password in the Authentication Database after conversion into a form suitable for use as an encryption key. Otherwise, the string "changeme" is assigned as the user's initial password. literally the default, no cap. πΈ
The other results of the command depend on which instructions and which of a defined set of variables appear in the template file specified with the -template argument. Many of the command's arguments supply a value for one of the defined variables, and failure to provide an argument when the corresponding variable appears in the template file halts the account creation process at the point where the command interpreter first encounters the variable in the template file. so yeah, missing pieces can hard-stop the whole vibe check. π«
To create multiple accounts with a single command, use the uss bulk command. To delete accounts with a single command, use the uss delete command. π
β¨ OPTIONS β¨
Okay bestie, here's the whole menu of flags β every single one, no skips, no cap π
-user <login name>β Names the user's Authentication Database and Protection Database entries. It can include up to eight alphanumeric characters, but not any of these:":"(colon),"@"(at-sign),"."(period), space, or newline. Because it literally becomes the username (the name they log in under), it's best not to put shell metacharacters in there, and to obey the restrictions many operating systems impose on usernames (usually, no more than eight lowercase letters). πΈ
Corresponding variable in the template file: $USER.
-realname <full name in quotes>β Specifies the user's full name. If it has spaces or punctuation in it, wrap it in double quotes. If you don't provide it, it defaults to the user name you gave with-user. π
Corresponding variable in the template file: $NAME. Many operating systems include a field for the full name in a user's entry in the local password file (/etc/passwd or equivalent), and this variable can be used to pass a value to be used in that field.
-pass <initial password>β Specifies the user's initial password. Even though the AFS commands that handle passwords accept strings of virtually unlimited length, it's best to use a password of eight characters or less, which is the maximum length many applications and utilities accept. If you don't provide it, this argument defaults to the string"changeme". π (yes, fr,"changeme"β change it, bestie, I'm begging)
Corresponding variable in the template file: none.
-pwexpires <password expiration>β Sets the number of days after a user's password is changed that it stays valid. Give an integer from the range 1 through 254 to specify the number of days until expiration, or the value 0 to say the password never expires (that's the default). β
When the password becomes invalid (expires), the user is unable to authenticate, but has 30 more days in which to issue the kpasswd command to change the password (after that, only an administrator can change it). π
Corresponding variable in the template file: $PWEXPIRES.
-server <file server name>β Names the file server machine on which to create the new user's volume. It's best to provide a fully qualified hostname (for example,"fs1.example.com"), but an abbreviated form is acceptable provided that the cell's naming service is available to resolve it at the time the volume is created. π¦
Corresponding variable in the template file: $SERVER.
-partition <file server partition>β Specifies the partition on which to create the user's volume; it must be on the file server machine named by the-serverargument. Provide the complete partition name (for example/vicepa) or one of the following abbreviated forms:
/vicepa = vicepa = a = 0
/vicepb = vicepb = b = 1
After /vicepz (for which the index is 25) comes
/vicepaa = vicepaa = aa = 26
/vicepab = vicepab = ab = 27
and so on through
/vicepiv = vicepiv = iv = 255
Corresponding variable in the template file: $PART.
-mount <home directory mount point>β Specifies the pathname for the user's home directory. Partial pathnames are interpreted relative to the current working directory. π§
Specify the read/write path to the directory, to avoid the failure that results from attempting to create a new mount point in a read-only volume. By convention, the read/write path is indicated by placing a period before the cell name at the pathname's second level (for example, /afs/.example.com). For further discussion of the concept of read/write and read-only paths through the filespace, see the fs mkmount reference page.
Corresponding variable in template: $MTPT, but in the template file's "V" instruction only. Occurrences of the $MTPT variable in template instructions that follow the "V" instruction take their value from the "V" instruction's mount_point field. So the value of this command line argument becomes the value for the $MTPT variable in instructions that follow the "V" instruction only if the string $MTPT appears alone in the "V" instruction's mount_point field. π (ik, it's a whole lore drop β read it twice, it's worth it)
-uid <uid to assign the user>β Specifies a positive integer other than 0 (zero) to assign as the user's AFS UID. If you omit this argument, the Protection Server assigns an AFS UID that is one greater than the current value of the "max user id" counter (use thepts listmaxcommand to display the counter). If you do include this argument, it's best to first use thepts examinecommand to verify that no existing account already has the desired AFS UID; if one does, the account creation process terminates with an error. π₯
Corresponding variable in the template file: $UID.
-template <pathname of template file>β Specifies the pathname of the template file. If you omit this argument, the command interpreter searches the following directories in the indicated order for a file called"uss.template":- The current working directory. π
/afs/cellname/common/uss, where cellname names the local cell./etc
If the issuer provides a filename other than "uss.template" but without a pathname, the command interpreter searches for it in the indicated directories. If the issuer provides a full or partial pathname, the command interpreter consults the specified file only; it interprets partial pathnames relative to the current working directory. π
If the specified template file is empty (zero-length), the command creates Protection and Authentication Database entries only.
uss(5) details the file's format.
-verboseβ Produces on the standard output stream a detailed trace of the command's execution. If you omit this argument, only warnings and error messages appear. π-var <auxilliary argument pairs>β Specifies values for each of the number variables$1through$9that can appear in the template file. Use the number variables to assign values to variables in the uss template file that are not part of the standard set. π
Corresponding variables in the template file: $1 through $9.
For each instance of this argument, provide two parts in the indicated order, separated by a space:
- The integer from the range 1 through 9 that matches the variable in the template file. Do not precede it with a dollar sign.
- A string of alphanumeric characters to assign as the value of the variable.
See the chapter on uss in the OpenAFS Administration Guide for further explanation.
-cell <cell name>β Specifies the cell in which to run the command. For more details, seeuss(8). π-admin <administrator to authenticate>β Specifies the AFS user name under which to establish authenticated connections to the AFS server processes that maintain the various components of a user account. For more details, seeuss(8). π«Ά-dryrunβ Reports actions that the command interpreter needs to perform while executing the command, without actually performing them. For more details, seeuss(8). β¨ (the "look but don't touch" flag, iconic honestly)-skipauthβ Prevents authentication with the AFS Authentication Server, allowing a site using Kerberos to substitute that form of authentication. π-overwriteβ Overwrites any directories, files and links that exist in the file system and for which there are definitions in"D","E","F","L", or"S"instructions in the template file named by the-templateargument. If you omit this flag, the command interpreter prompts once for confirmation that it is to overwrite all such elements. π³
No -overwrite means you get one prompt for all of it β not one per thing. Don't say I didn't warn you, bestie.
-helpβ Prints the online help for this command. All other valid options are ignored. π
πΈ EXAMPLES πΈ
The combination of the following example uss add command and "V" instruction in a template file called "uss.tpl" creates Protection and Authentication Database entries named "smith", and a volume called "user.smith" with a quota of 2500 kilobyte blocks, mounted at the pathname /afs/example.com/usr/smith. The access control list (ACL) on the mount point grants "smith" all rights. π
The issuer of the uss add command provides only the template file's name, not its complete pathname, because it resides in the current working directory. The command and "V" instruction appear here on two lines only for legibility; there are no line breaks in the actual instruction or command. β¨
V user.$USER $SERVER.example.com /vice$PART $1 \
/afs/example.com/usr/$USER $UID $USER all
% uss add -user smith -realname "John Smith" -pass js_pswd \
-server fs2 -partition b -template uss.tpl -var 1 2500
π PRIVILEGE REQUIRED π
The issuer (or the user named by the -admin argument) must belong to the system:administrators group in the Protection Database and must have the "ADMIN" flag turned on in his or her Authentication Database entry. π₯
If the template contains a "V" instruction, the issuer must be listed in the /etc/openafs/server/UserList file and must have at least "a" (administer) and "i" (insert) permissions on the ACL of the directory that houses the new mount point. If the template file includes instructions for creating other types of objects (directories, files or links), the issuer must have each privilege necessary to create them. π
π¦ SEE ALSO π¦
UserList(5), uss(5), fs_mkmount(1), uss(8), uss_bulk(8), uss_delete(8)
π COPYRIGHT π
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
And that's a wrap, bestie β page lovingly brought to you by OpenAFS, dated 2026-06-25. Now go make some users, but likeβ¦ responsibly πβ¨π
π¦ where this page comes from
- nixos 26.05: openafs 1.8.16.1
- nixpkgs unstable: openafs 1.8.16.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms