perms(F) 06 January 1993 perms(F) Name perms - file permissions list for package installation Description An add-on software distribution is divided into a number of packages that may be installed separately or together. A permissions list (perms list) file contains an entry for each file that may be installed or created from a software distribution. The perms lists are located in the /etc/perms directory. The filename of a perms list is an abbreviation (a maximum of eight alphabetic characters) of the product; the filename must match the value of the #prd keyword in the perms list. A perms list file has the following format: + A comment line is begun with a hash character (#) followed by a space. + A special keyword phrase is begun by a hash character followed by an exclamation mark (!) (to define a package within a distribution), or a keyword. The keywords are described later in this section. + A file description line does not start with a hash character. The custom(ADM) utility parses the keyword phrases and description lines to determine what files are being installed or, in the case of direc- tories, created. Only one file to be installed may be specified on a file description line. Examples A simple example of a perms list: 1 # Small OS Perms List 2 # 3 #prd=smallos 4 #typ=ku386 5 #rel=3.2.5 6 #set="The Very Small OS Product" 7 uid root 0 8 uid bin 2 9 gid root 0 10 gid bin 2 11 # 12 #!ALL 300 Entire Product 13 # 14 PERM f644 bin/bin 1 ./etc/perms/smallos 01 15 # 16 #!BASEPKG 256 Basic Package 17 # 18 # directory that is part of the required product 19 BASEPKG d755 bin/bin 1 ./dev 20 # directory not part of the required product (signified by D) 21 BASEPKG D755 bin/bin 1 ./tmp 22 # standard file 23 BASEPKG x711 bin/bin 1 ./bin/cat 02 24 # standard file with 3 links 25 BASEPKG x711 bin/bin 3 ./bin/cp 01 26 ./bin/ln 01 27 ./bin/mv 01 28 # special chmod bit set, see chmod(S) 29 BASEPKG x2111 bin/bin 2 ./bin/df 01 30 ./bin/devnm 01 31 # shell script: note that read permissions are needed 32 BASEPKG f755 bin/bin 1 ./usr/lib/mkdev/lp 02 33 # character device node 34 BASEPKG c440 root/root 1 ./dev/auditr 21/0 35 # 36 #!DEVPKG 26 Development Package 37 # 38 # block device node 39 DEVPKG b440 root/bin 1 ./dev/root 1/40 40 # finked device node 41 DEVPKG c622 root/bin 3 ./dev/console 3/1 42 ./dev/syscon 43 ./dev/systty Lines 1 and 2 are comment lines. Lines 3 to 6 introduce the product using the following keywords: #prd The product name as a lowercase string with at most eight charac- ters. This name must be the same as the perms list filename. #typ The computer processor type. #rel The release number of the distribution. #set The product name to be displayed by custom. Lines 7 to 10 specify the user ID (uid) and group ID (gid) that are used to assign user and group ownership to each file being installed. The first field indicates the ID type (uid or gid), the second field contains the user or group name, and the third field is the corresponding numeric ID. Line 12 is required to introduce the PERM package. All perms lists must include this package to define the files used by all packages within the distribution. This package never includes the label file. Each package description contains three fields; a package name, the package size in 512-byte blocks, and a string describing the package. Line 14 defines the perms list file itself. The perms list is always assigned to the PERM package since it is needed by all packages within the distribution. Lines 16 and 36 introduce two example packages, BASEPKG and DEVPKG, included to show how a distribution may be grouped into smaller packages. Each package defines a number of files on file description lines. A file description line has the following fields: package name The name of the package within a distribution. type and permission A character indicating file type followed by an octal chmod(C) per- mission specification. The file type can be one of the following: a,A archive file b,B block device file c,C character device file d,D directory e,E empty file f,F text file o,O turn off any file type checking; used with data files p,P named pipe x,X executable file An uppercase file type indicates that the associated file is optional; custom will overlook the file in deciding whether a pack- age is fully installed. owner/group The owner and group of the file selected from the list of possible owners and groups at the start of the perms list. number of links If there is more than one link to a file, the following lines con- tain the name of the linked file and the volume number only (see lines 25 through 27 of the example). Linked device special files only list the name of the linked file (see lines 41 through 43 of the example). pathname The pathname of the file relative to the root directory (/). The pathname must be relative and begin with ``./''. volume or major/minor number The number of the media volume on which the file exists. The volume number has the same value as the vol= entry in the label file. Allowed volume numbers are in the range 01 to 99. This field is blank for directories which are created as needed by custom (see lines 19 and 21 of the example). Special files use this field to specify the major and minor device numbers separated by a slash. Device files are created as necessary by custom. Linked device special files leave this field blank (see lines 41 through 43 of the example). Files /etc/perms/* package file permissions lists See also custom(ADM)