perms -- file permissions list for package installation



# comment

Keyword phrases


User and group definitions

uid user UID
gid group GID

Package definitions

#!pkg size description

File definitions

pkg typeperm owner/group nln path [vol|major/minor [target]]


Perms lists are used by SCO OpenServer products developed previous to SCO OpenServer Release 5. Later systems contain limited-function perms lists for backwards compatibility only. For verifying and fixing file attributes in SCO OpenServer systems later than 5.0, see the SCO OpenServer Handbook and custom(ADM).

An add-on software distribution is divided into a number of packages that may be installed separately or together. A perms list (permissions list) file contains an entry for each file that may be installed or created from a software distribution. 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.

custom parses the keyword phrases and description lines in a perms list to determine what files are being installed or, in the case of directories, created.

The super user can run fixperm to update file permissions, ownership, and other attributes. The specification file read by fixperm has the same format as a perms list file.

The format of a perms list file is described in the following sections.


A comment line is begun with a number character ``#'' followed by a space. (Note that fixperm treats all lines beginning with a ``#'' as comment lines.)

Keyword phrases

A keyword phrase defines global values for a product. The phrase is begun by a ``#'' followed by a keyword assigned a value. The following keywords are recognized:

Defines which installation floppies are mountable.

The product name as a lowercase string with at most eight characters. This name must be the same as the perms list filename.

The release number of the distribution.

Used for serialization of the product.

The product name to be displayed by custom.

The computer processor type.

Used for update releases.

User and group definitions

User and group definitions are used to assign user and group ownership for each file to be installed. These definitions must be specified before any packages or files.

Lines beginning with uid specify a user name and ID (UID).

Lines beginning with gid specify a group name and ID (GID).

Package definitions

A ``#'' followed by an exclamation mark ``!'' indicates the definition of a pkg within a distribution. The package size is given in 512-byte blocks followed by a description string.

All perms lists must include at least one package definition line to introduce the file definition lines.

File definitions

Only one file to be installed may be defined per line.

A file definition has the following fields:

The name of the package within a distribution.

A character indicating file type followed by an octal chmod permission specification (perm). type can be one of the following:

archive file

block device file

character device file


empty file

text file

symbolic link

turn off file type checking for data and encrypted files

named pipe

executable file

An uppercase file type indicates that the associated file is optional; custom overlooks the file in deciding whether a package is fully installed.

File permissions specified for symbolic links are ignored; a mode of 777 is always used.

The owner and group of the file selected from the list of possible owners and groups at the start of the perms list.

Owner and group specified for a symbolic link are ignored.

Number of hard links to a file. If there is more than one hard link to a file, the following lines contain the pathname of the linked file and the volume number vol only (see lines 25 through 27 of the first example in the ``Examples'' section).

Hard-linked device special files only list the name of the linked file (see lines 42 and 43).

Symbolic links always have this field set to 1.

The pathname of the file relative to the root directory (/). The pathname must begin with ``./''.

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 left blank for directories. It is set to 00 for symbolic links that are not to be extracted. Directories and symbolic links are created by custom as required (see line 21 of the first 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 43 through 45 of the first example).

(Symbolic links only.) A pathname assigned as the value of a symbolic link to be created. The pathname must be absolute or relative to the location of the symbolic link to be created. If target is not given, the symbolic link is to be extracted from a specified volume (vol). vol must be specified if a target name is given; use a volume number of 00 if the symbolic link is not on the media. See the ``Examples'' section for examples of symbolic link specification.


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 Device 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 through 6 introduce the product using the keywords prd, typ, rel, and set.

Lines 9 through 10 specify the user ID (uid) and group ID (gid) that are used to assign user and group ownership to each file being installed.

Line 12 is required to introduce the PERM package. All perms lists must include the ALL package to define the files used by all packages within the distribution. This package must never include the label file.

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 definition lines.

Examples of symbolic link specification

Create (but do not extract) a symbolic link ./etc/symLink1 to the relative pathname ./Tell_jr/apple:
   PKG	l700	bin/bin 1 ./etc/symLink1  00	./Tell_jr/apple
Create and extract a symbolic link ./etc/symLink2 to the absolute pathname /bulls/eye:
   PKG	l700	bin/bin 1 ./etc/symLink2  01	/bulls/eye
Extract (but do not create) a symbolic link ./etc/symLink3:
   PKG	l700	bin/bin 1 ./etc/symLink3  01
Do not extract or create a symbolic link ./etc/symLink4:
   PKG	L700	bin/bin 1 ./etc/symLink4


In SCO OpenServer Release 5 systems and later, perms lists are provided for certain packages for backwards compatibility. These files allow status checking at the package level only. They are not intended to function properly for any fixperm commands that list file names, check status on particular files, create files, or modify permissions on files.


/etc/perms/* package file permissions lists

See also

chmod(C), custom(ADM), fixperm(ADM)

SCO OpenServer Handbook

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003