| .TH FOSSILCONS 8 |
| .SH NAME |
| fossilcons \- fossil console commands |
| .SH SYNOPSIS |
| .B |
| con /srv/fscons |
| .PP |
| .PD 0.1 |
| .B . |
| .I file |
| .PP |
| .B 9p |
| .I T-message |
| ... |
| .PP |
| .B bind |
| [ |
| .B -b|-a|-c|-bc|-ac |
| ] |
| .I new |
| .I old |
| .PP |
| .B dflag |
| .PP |
| .B echo |
| [ |
| .B -n |
| ] |
| [ |
| .I arg |
| ... |
| ] |
| .PP |
| .B listen |
| [ |
| .B -INd |
| ] |
| [ |
| .I address |
| ] |
| .PP |
| .B msg |
| [ |
| .B -m |
| .I nmsg |
| ] |
| [ |
| .B -p |
| .I nproc |
| ] |
| .PP |
| .B printconfig |
| .PP |
| .B srv |
| [ |
| .B -APWdp |
| ] |
| .I name |
| .PP |
| .B uname |
| .I name |
| [ |
| .I id |
| | |
| .BI : id |
| | |
| .BI % newname |
| | |
| .BI = leader |
| | |
| .BI + member |
| | |
| .BI - member |
| ] |
| .PP |
| .B users |
| [ |
| .B -d |
| | |
| .B -r |
| .I file |
| ] |
| [ |
| .B -w |
| ] |
| .PP |
| .B who |
| .sp |
| .PP |
| .B fsys |
| .I name |
| .PP |
| .B fsys |
| .I name |
| .B config |
| [ |
| .I device |
| ] |
| .PP |
| .B fsys |
| .I name |
| .B venti |
| [ |
| .I host |
| ] |
| .PP |
| .B fsys |
| .I name |
| .B open |
| [ |
| .B -APVWar |
| ] |
| [ |
| .B -c |
| .I ncache |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B close |
| .PP |
| .B fsys |
| .I name |
| .B unconfig |
| .sp |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B bfree |
| .I addr |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B block |
| .I addr |
| .I offset |
| [ |
| .I count |
| [ |
| .I data |
| ]] |
| .PP |
| .in +1i |
| .ti -1i |
| [ |
| .B fsys |
| .I name |
| ] |
| .B check |
| [ |
| .B pblock |
| ] [ |
| .B pdir |
| ] [ |
| .B pfile |
| ] [ |
| .B bclose |
| ] [ |
| .B clri |
| ] [ |
| .B clre |
| ] [ |
| .B clrp |
| ] [ |
| .B fix |
| ] [ |
| .B venti |
| ] [ |
| .B snapshot |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B clre |
| .I addr |
| .I offsets |
| \&... |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B clri |
| .I files |
| \&... |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B clrp |
| .I addr |
| .I offset |
| \&... |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B create |
| .I path |
| .I uid |
| .I gid |
| .I perm |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B df |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B epoch |
| [[ |
| .B -ry |
| ] |
| .I n |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B halt |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B label |
| .I addr |
| [ |
| .I type |
| .I state |
| .I epoch |
| .I epochclose |
| .I tag |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B remove |
| .I files |
| \&... |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B snap |
| [ |
| .B -a |
| ] |
| [ |
| .B -s |
| .I src |
| ] |
| [ |
| .B -d |
| .I dst |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B snapclean |
| [ |
| .I timeout |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B snaptime |
| [ |
| .B -a |
| .I hhmm |
| ] |
| [ |
| .B -s |
| .I interval |
| ] |
| [ |
| .B -t |
| .I timeout |
| ] |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B stat |
| .IR files ... |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B sync |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B unhalt |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B vac |
| .I dir |
| .PP |
| [ |
| .B fsys |
| .I name |
| ] |
| .B wstat |
| .I file |
| .I elem |
| .I uid |
| .I gid |
| .I perm |
| .I length |
| .SH DESCRIPTION |
| These are configuration and maintenance commands |
| executed at the console of a |
| .IR fossil (4) |
| file server. |
| The commands are split into three groups above: |
| file server configuration, |
| file system configuration, |
| and file system maintenance. |
| This manual page is split in the same way. |
| .SS File server configuration |
| .PP |
| The |
| dot |
| .RI ( . ) |
| command |
| reads |
| .IR file , |
| treating each line as a command to be executed. |
| Blank lines and lines beginning with a |
| .L # |
| character are ignored. |
| Errors during execution are printed but do not stop the script. |
| Note that |
| .I file |
| is a file in the name space in which |
| .I fossil |
| was started, |
| .I not |
| a file in any file system served by |
| .IR fossil . |
| .PP |
| .I 9p |
| executes a 9P transaction; the arguments |
| are in the same format used by |
| .IR 9pcon (8). |
| .PP |
| .I Bind |
| behaves similarly to |
| .IR bind (1). |
| It is useful when fossil |
| is started without devices it needs configured |
| into its namespace. |
| .PP |
| .I Dflag |
| toggles the debug flag and prints the new setting. |
| When the debug flag is set, all protocol messages |
| and information about authentication is printed to |
| standard error. |
| .PP |
| .I Echo |
| behaves identically to |
| .IR echo (1), |
| writing to the console. |
| .PP |
| .I Listen |
| manages the network addresses at which |
| fossil is listening. |
| With no arguments, |
| .I listen |
| prints the current list of addresses and their network directories. |
| With one argument, listen |
| .I address |
| starts a new listener at |
| .IR address ; |
| the |
| .B -d |
| flag causes |
| .I listen |
| to remove the listener |
| at the given address. |
| By default, the user |
| .I none |
| is only allowed to attach on a connection after |
| at least one other user has successfully attached. |
| The |
| .B -N |
| flag allows connections from |
| .I none |
| at any time. |
| The |
| .B -I |
| flag causes |
| .I fossil |
| to check the IP address of incoming connections |
| against |
| .BR /mnt/ipok , |
| rejecting attaches from disallowed addresses. |
| This mechanism is not intended for general use. |
| The server |
| .I sources.cs.bell-labs.com |
| uses it to comply with U.S. crytography |
| export regulations. |
| .PP |
| .I Msg |
| prints the maximum internal 9P message queue size |
| and the maximum number of 9P processes to |
| allocate for serving the queue. |
| The |
| .B -m |
| and |
| .B -p |
| options set the two variables. |
| .PP |
| .I Printconfig |
| prints the |
| .B config |
| line for each configured file system |
| and prints the |
| .B venti |
| line, if any, used to configure this file server. |
| .PP |
| .I Srv |
| behaves like listen but uses |
| .BI /srv/ name |
| rather than a network address. |
| With the |
| .B -p |
| flag, |
| .I srv |
| edits a list of console services rather than 9P services. |
| With no arguments, |
| .I srv |
| prints the current list of services. |
| With one argument, srv |
| .I name |
| starts a new service at |
| .IR /srv/name ; |
| the |
| .B -d |
| flag causes |
| .I srv |
| to remove the named service. |
| See the |
| .I [fsys] open |
| command below for a description of the |
| .B -APW |
| options. |
| .PP |
| .I Uname |
| manipulates entries in the user table. |
| There is no distinction between users and groups: |
| a user is a group with one member. |
| For each user, the user table records: |
| .TF \fImembers |
| .PD |
| .TP |
| .I id |
| the string used to represent this user in the on-disk structures |
| .TP |
| .I name |
| the string used to represent this user in the 9P protocol |
| .TP |
| .I leader |
| the group's leader (see |
| .IR stat (5) |
| for a description of the special privileges held by a group leader) |
| .TP |
| .I members |
| a comma-separated list of members in this group |
| .PP |
| The |
| .I id |
| and |
| .I name |
| are usually the same string, but need not be. |
| Once an |
| .I id |
| is used in file system structures archived to Venti, |
| it is impossible to change those disk structures, |
| and thus impossible to rename the |
| .IR id . |
| The translation from |
| .I name |
| to |
| .I id |
| allows the appearance of renaming the user even |
| though the on-disk structures still record the old name. |
| (In a conventional Unix file system, the |
| .I id |
| is stored as a small integer rather than a string.) |
| .I Leader |
| and |
| .I members |
| are names, not ids. |
| .PP |
| The first argument to |
| .I uname |
| is the |
| .I name |
| of a user. |
| The second argument is a verb, one of: |
| .TF \fI%newname |
| .PD |
| .TP |
| .I id |
| create a user with name |
| .RI ` name ' |
| and id |
| .RI ` id ;' |
| also create a home directory |
| .BI /active/usr/ uname \fR |
| .TP |
| .BI : id |
| create a user with name |
| .RI ` name ' |
| and id |
| .RI ` id ,' |
| but do not create a home directory |
| .TP |
| .BI % newname |
| rename user |
| .RI ` name ' |
| to |
| .RI ` newname ,' |
| throughout the user table |
| .TP |
| .BI = leader |
| set |
| .IR name 's |
| group leader |
| to |
| .IR leader . |
| .TP |
| .BI = |
| remove |
| .IR name 's |
| group leader; then all members will be |
| considered leaders |
| .TP |
| .BI + member |
| add |
| .I member |
| to |
| .IR name 's |
| list of members |
| .TP |
| .BI - member |
| remove |
| .I member |
| from |
| .IR name 's |
| list of members |
| .LP |
| If the verb is omitted, the entire entry for |
| .I name |
| is printed, in the form |
| `\fIid\fL:\fIname\fL:\fIleader\fL:\fImembers\fR.' |
| .LP |
| The end of this manual page gives examples. |
| .PP |
| .I Users |
| manipulates the user table. |
| The user table is a list of lines in the form printed |
| by the |
| .I uname |
| command. |
| The |
| .B -d |
| flag resets the user table with the default: |
| .IP |
| .EX |
| adm:adm:adm:sys |
| none:none:: |
| noworld:noworld:: |
| sys:sys:: |
| glenda:glenda:glenda: |
| .EE |
| .PP |
| Except |
| .BR glenda , |
| these users are mandatory: they must appear in all user |
| files and cannot be renamed. |
| .PP |
| The |
| .B -r |
| flag reads a user table from the named |
| .I file |
| in file system |
| .BR main . |
| The |
| .B -w |
| flag writes the table to |
| .B /active/adm/users |
| on the file system |
| .BR main . |
| .B /active/adm |
| and |
| .B /active/adm/users |
| will be created if they do not exist. |
| .PP |
| .I Users |
| .B -r |
| .B /active/adm/users |
| is automatically executed when the file system |
| .B main |
| is opened. |
| .PP |
| .I Users |
| .B -w |
| is automatically executed after each change to the user |
| table by the |
| .I uname |
| command. |
| .PP |
| .I Who |
| prints a list of users attached to each active connection. |
| .SS File system configuration |
| .I Fsys |
| sets the current file system to |
| .IR name , |
| which must be configured and open (q.v.). |
| The current file system name is |
| displayed as the file server prompt. |
| The special name |
| .B all |
| stands for all file systems; |
| commands applied to |
| .B all |
| are applied to each file system in turn. |
| The commands |
| .BR config , |
| .BR open , |
| .BR venti , |
| and |
| .B close |
| cannot be applied to |
| .BR all . |
| .PP |
| .I Fsys |
| takes as an optional argument |
| (after |
| .BR name ) |
| a command to execute on the named file system. |
| Most commands require that the named file system |
| be configured and open; these commands can be invoked |
| without the |
| .BI fsys " name |
| prefix, in which case the current file system is used. |
| A few commands |
| .RB ( config , |
| .BR open , |
| and |
| .BR unconfig ) |
| operate on unopened file systems; they require the prefix. |
| .PP |
| .I Config |
| creates a new file system named |
| .I name |
| using disk file |
| .IR device . |
| This just adds an entry to fossil's internal table. |
| If |
| .I device |
| is missing, |
| the |
| .I file |
| argument to |
| .IR fossil 's |
| .B -f |
| option will be used instead; |
| this allows the |
| .I fossil |
| configuration file to avoid naming the partition that it is embedded in, |
| making it more portable. |
| .PP |
| .I Venti |
| establishes a connection to the Venti server |
| .I host |
| (by default, the environment variable |
| .B $venti |
| or the network variable |
| .BR $venti ) |
| for use by the named file system. |
| If no |
| .I venti |
| command is issued before |
| .IR open , |
| the default Venti server will be used. |
| If the file system is open, |
| and was not opened with the |
| .B -V |
| flag, |
| the command redials the Venti server. |
| This can be used to reestablish broken connections. |
| It is not a good idea to use the command to switch |
| between Venti servers, since Fossil does not keep track |
| of which blocks are stored on which servers. |
| .PP |
| .I Open |
| opens the file system, reading the |
| root and super blocks and allocating an in-memory |
| cache for disk and Venti blocks. |
| The options are: |
| .TF "-c\fI ncache |
| .PD |
| .TP |
| .B -A |
| run with no authentication |
| .TP |
| .B -P |
| run with no permission checking |
| .TP |
| .B -V |
| do not attempt to connect to a Venti server |
| .TP |
| .B -W |
| allow wstat to make arbitrary changes to the user and group fields |
| .TP |
| .B -a |
| do not update file access times; |
| primarily to avoid wear on flash memories |
| .TP |
| .B -r |
| open the file system read-only |
| .TP |
| .BI -c " ncache |
| allocate an in-memory cache of |
| .I ncache |
| (by default, 1000) |
| blocks |
| .PP |
| The |
| .I -APW |
| settings can be overridden on a per-connection basis |
| by the |
| .I srv |
| command above. |
| .PP |
| .I Close |
| flushes all dirty file system blocks to disk |
| and then closes the device file. |
| .PP |
| .I Unconfig |
| removes the named file system (which must be closed) |
| from fossil's internal table. |
| .br |
| .ne 3 |
| .SS File system maintenance |
| .I Bfree |
| marks the block at disk address |
| .I addr |
| as available for allocation. |
| Before doing so, it prints a |
| .I label |
| command (q.v.) |
| that can be used to restore the block to its previous state. |
| .PP |
| .I Block |
| displays (in hexadecimal) |
| the contents of the block at disk address |
| .IR addr , |
| starting at |
| .I offset |
| and continuing for |
| .I count |
| bytes or until the end of the block. |
| If |
| .I data |
| (also hexadecimal) |
| is given, the contents in that range are |
| replaced with data. |
| When writing to a block, |
| .I block |
| prints the old and new contents, |
| so that the change is easily undone. |
| Editing blocks is discouraged. |
| .PP |
| .I Clre |
| zeros an entry from a disk block. |
| Before doing so, it prints a |
| .I block |
| command that can be used |
| to restore the entry. |
| .PP |
| .I Clri |
| removes the internal directory entry |
| and abandons storage associated with |
| .IR files . |
| It ignores the usual rules for sanity, such as checking against |
| removing a non-empty directory. |
| A subsequent |
| .I flchk |
| (see |
| .IR fossil (4)) |
| will identify the abandoned storage so it can be reclaimed with |
| .I bfree |
| commands. |
| .PP |
| .I Clrp |
| zeros a pointer in a disk block. |
| Before doing so, it prints a |
| .I block |
| command that can be used to restore the entry. |
| .PP |
| .I Check |
| checks the file system for various inconsistencies. |
| If the file system is not already halted, it is halted for |
| the duration of the check. |
| If the archiver is currently sending a snapshot to Venti, |
| the check will refuse to run; the only recourse is to wait |
| for the archiver to finish. |
| .PP |
| A list of keyword options control the check. |
| The |
| .BR pblock , |
| .BR pdir , |
| and |
| .B pfile |
| options cause |
| .I check |
| to print the name of each block, directory, or file encountered. |
| .PP |
| By default, |
| .I check |
| reports errors but does not fix them. |
| The |
| .BR bclose , |
| .BR clri , |
| .BR clre , |
| and |
| .B clrp |
| options specify correcting actions that may be taken: |
| closing leaked blocks, clearing bad file directory entries, |
| clearing bad pointers, and clearing bad entries. |
| The |
| .B fix |
| option enables all of these; it is equivalent to |
| .B bclose |
| .B clri |
| .B clre |
| .BR clrp . |
| .PP |
| By default, |
| .I check |
| scans the portion of the active file system held in the write buffer, |
| avoiding blocks stored on Venti or used only in snapshots. |
| The |
| .B venti |
| option causes |
| .I check |
| to scan the portion of the file system stored on Venti, |
| and the |
| .B snapshot |
| option causes |
| .I check |
| to scan old snapshots. |
| Specifying |
| .B snapshot |
| causes |
| .I check |
| to take a long time; |
| specifying |
| .B venti |
| or |
| (worse) |
| .B venti |
| .B snapshot |
| causes |
| .I check |
| to take a very long time. |
| .PP |
| .I Create |
| creates a file on the current file system. |
| .I Uid |
| and |
| .I gid |
| are uids |
| .RI ( not |
| unames; |
| see the discussion above, in the description |
| of the |
| .I uname |
| command). |
| .I Perm |
| is the low 9 bits of the permission mode of the file, |
| in octal. |
| The |
| .BR a , |
| .BR d , |
| and |
| .B l |
| mode prefixes |
| set the append-only, directory, and lock bits. |
| The |
| .I perm |
| is formatted as described in the |
| .I stat |
| command; |
| creating files or directories with the |
| .BR snapshot (s) |
| bit set is not allowed. |
| .PP |
| .I Df |
| prints the amount of used disk space in the write buffer. |
| .PP |
| .I Epoch |
| sets the low file system epoch. |
| Snapshots in the file system are given increasing epoch numbers. |
| The file system maintains a low and a high epoch number, |
| and only allows access to snapshots in that range. |
| The low epoch number can be moved forward to discard old snapshots |
| and reclaim the disk space they occupy. |
| (The high epoch number is always the epoch of the currently |
| active file system.) |
| .PP |
| With no argument |
| .I epoch |
| reports the current low and high epoch numbers. |
| The command |
| ``\fLepoch\fI n''\fR |
| is used to propose changing the low epoch to |
| .IR n . |
| In response, |
| .I fossil |
| scans |
| .B /archive |
| and |
| .B /snapshot |
| for snapshots that would be discarded, printing their |
| epoch numbers and the |
| .I clri |
| commands necessary to remove them. |
| The epoch is changed only if no such paths are found. |
| The usual sequence of commands is (1) run epoch to |
| print the snapshots and their epochs, (2) clri some snapshots, |
| (3) run epoch again. |
| If the file system is completely full (there are no free blocks), |
| .I clri |
| may fail because it needs to allocate blocks. |
| For this situation, |
| the |
| .B -y |
| flag to epoch forces the epoch change even when |
| it means discarding currently accessible snapshots. |
| Note that when there are still snapshots in |
| .BR /archive , |
| the archiver should take care |
| of those snapshots (moving the blocks from disk to Venti) |
| if you give it more time. |
| .PP |
| The |
| .B -r |
| flag to epoch causes it to remove any now-inaccessible |
| snapshot directories once it has changed the epoch. |
| This flag only makes sense in conjunction with the |
| .B -y |
| flag. |
| .PP |
| .I Epoch |
| is a very low-level way to retire snapshots. |
| The preferred way is by setting an automatic timer |
| with |
| .IR snaptime . |
| .PP |
| .I Halt |
| suspends all file system activity; |
| .I unhalt |
| resumes activity. |
| .PP |
| .I Label |
| displays and edits the label associated with a block. |
| When editing, a parameter of |
| .B - |
| means leave that field unchanged. |
| Editing labels is discouraged. |
| .PP |
| .I Remove |
| removes |
| .IR files . |
| .PP |
| .I Snap |
| takes a temporary snapshot of the current file system, |
| recording it in |
| .BI /snapshot/ yyyy / mmdd / hhmm \fR, |
| as described in |
| .IR fossil (4). |
| The |
| .B -a |
| flag causes |
| .I snap |
| to take an archival snapshot, recording it in |
| .BI /archive/ yyyy / mmdd \fR, |
| also described in |
| .IR fossil (4). |
| By default the snapshot is taken of |
| .BR /active , |
| the root of the active file system. |
| The |
| .B -s |
| flag specifies a different source path. |
| The |
| .B -d |
| flag specifies a different destination path. |
| These two flags are useful together for moving snapshots into |
| the archive tree. |
| .PP |
| .I Snapclean |
| immediately discards all snapshots that are more than |
| .I timeout |
| minutes old. |
| The default timeout is the one set by the |
| .I snaptime |
| command. |
| The discarding is a one-time event rather than |
| a recurring event as in |
| .IR snaptime . |
| .PP |
| .I Snaptime |
| displays and edits the times at which snapshots are automatically |
| taken. |
| An archival snapshot is taken once a day, at |
| .IR hhmm , |
| while temporary snapshots are taken at multiples of |
| .I interval |
| minutes. |
| Temporary snapshots are discarded after they are |
| .I timeout |
| minutes old. |
| The snapshot cleanup runs every |
| .I timeout |
| minutes or once a day, whichever is more frequent, |
| so snapshots may grow to an age of almost twice the timeout |
| before actually being discarded. |
| With no arguments, |
| .I snaptime |
| prints the current snapshot times. |
| The |
| .B -a |
| and |
| .B -s |
| options set the archive and snapshot times. |
| An |
| .I hhmm |
| or |
| .I interval |
| of |
| .L none |
| can be used to disable that kind of automatic snapshot. |
| The |
| .B -t |
| option sets the snapshot timeout. |
| If |
| .I timeout |
| is |
| .LR none , |
| temporary snapshots are not automatically discarded. |
| By default, all three times are set to |
| .LR none . |
| .PP |
| .I Stat |
| displays metadata for each of the named |
| .IR files , |
| in the form: |
| .IP |
| .EX |
| stat \fIfile elem uid gid perm length |
| .EE |
| .LP |
| (Replacing |
| .B stat |
| with |
| .B wstat |
| yields a valid command.) |
| The |
| .I perm |
| is an octal number less than or equal to 777, |
| prefixed with any of the following letters |
| to indicate additional bits. |
| .IP |
| .EX |
| .ta +4n |
| a \fRappend only |
| d \fRdirectory |
| l \fRexclusive use |
| s \fRis the root of a snapshot |
| t \fRtemporary bit |
| A \fRMS-DOS archive bit |
| G \fRsetgid |
| H \fRMS-DOS hidden bit |
| L \fRsymbolic link |
| S \fRMS-DOS system bit |
| U \fRsetuid |
| Y \fRsticky |
| .EE |
| .PP |
| The bits denoted by capital letters are included |
| to support non-Plan 9 systems. |
| They are not made visible by the 9P protocol. |
| .PP |
| .I Sync |
| writes dirty blocks in memory to the disk. |
| .PP |
| .I Vac |
| prints the Venti score for a |
| .IR vac (1) |
| archive containing the tree rooted |
| at |
| .IR dir , |
| which must already be archived to Venti |
| (typically |
| .IR dir |
| is a directory in the |
| .B /archive |
| tree). |
| .PP |
| .I Wstat |
| changes the metadata of the named |
| .IR file . |
| Specifying |
| .B - |
| for any of the fields means ``don't change.'' |
| Attempts to change the |
| .B d |
| or |
| .B s |
| bits in the |
| .I perm |
| are silently ignored. |
| .SH EXAMPLES |
| .IR Sources , |
| the Plan 9 distribution file server, |
| uses the following configuration file: |
| .IP |
| .EX |
| srv -p fscons.sources |
| srv -p fscons.sources.adduserd |
| srv sources |
| fsys main config /dev/sdC0/fossil.outside |
| fsys main open -c 25600 |
| fsys main |
| users /active/adm/users |
| listen tcp!*!564 |
| msg -m 40 -p 10 |
| snaptime -a 0000 -s 15 |
| .EE |
| .LP |
| The second console is used by the daemon |
| that creates new accounts. |
| .PP |
| To add a new user with |
| .I name |
| and |
| .I id |
| .B rob |
| and create his home directory: |
| .IP |
| .EX |
| uname rob rob |
| .EE |
| .PP |
| To create a new group |
| .B sys |
| (with no home directory) |
| and add |
| .B rob |
| to it: |
| .IP |
| .EX |
| uname sys :sys |
| uname sys +rob |
| .EE |
| .PP |
| To save an old (but not yet discarded) snapshot into the archive tree: |
| .IP |
| .EX |
| snap -a -s /snapshot/2003/1220/0700 -d /archive/2003/1220 |
| .EE |