Add mandoc-manpage for chmod(1)

and mark it as finished in README.

One small rationale on the way the manpage is set up: Looking at
the coreutils manpage, it does not invite to be a quick reference
guide, whereas I wrote this manpage to be short and concise in regard
to the information the advanced user needs.
No one needs to explain what an octal number is. That's not part of
the scope of this manpage.
Also, nobody wants to read a block of text just to find out how
to build an octal mode string.
This commit is contained in:
FRIGN 2015-01-17 22:33:19 +01:00 committed by sin
parent eff58b5531
commit b55de3d1a2
3 changed files with 68 additions and 76 deletions

2
README
View File

@ -12,7 +12,7 @@ The following tools are implemented (* == finished):
* cal yes none
* cat yes none
chgrp no -h, -H, -L, -P
chmod yes none
* chmod yes none
chown no -h, -H, -L, -P
chroot non-posix none
cksum yes none

140
chmod.1
View File

@ -1,74 +1,66 @@
.TH CHMOD 1 sbase\-VERSION
.SH NAME
chmod \- change file mode
.SH SYNOPSIS
.B chmod
.RB [ \-r ]
.I octal
.RI [ file ...]
.P
.B chmod
.RB [ \-r ]
.RB [ ugoa ]*[ +-= ][ rwxst ]*
.RI [ file ...]
.SH DESCRIPTION
.B chmod
changes the file mode for the given files.
.P
If the mode is an
.I octal
number, the modes are set according to that number's comprising bits. The first
digit defines the setuid (4), setgid (2), and sticky (1) attributes. The second digit
defines the owner's permissions: read (4), write (2), and execute (1); the third
defines permissions for others in the file's group; and the fourth for all other
users. Leading zeroes may be omitted.
.P
Alternatively the mode may be symbolic. The symbol meanings are:
.TP
.B u
modifies owner permissions.
.PD 0
.TP
.B g
modifies group permissions.
.TP
.B o
modifies other user permissions.
.TP
.B a
modifies all user permissions.
.PD
.TP
.B +
adds the given permissions to the mode.
.PD 0
.TP
.B -
removes the given permissions from the mode.
.TP
.B =
sets the mode to the given permissions.
.PD
.TP
.B r
read permissions.
.PD 0
.TP
.B w
write permissions.
.TP
.B x
execute permissions.
.TP
.B s
setuid and setgid attributes.
.TP
.B t
sticky attribute.
.PD
.SH OPTIONS
.TP
.B \-r
change directory mode recursively.
.SH SEE ALSO
.IR chmod (2)
.Dd January 17, 2015
.Dt CHMOD 1 sbase\-VERSION
.Sh NAME
.Nm chmod
.Nd change file mode
.Sh SYNOPSIS
.Nm chmod
.Op Fl R
.Ar mode
.Op Ar file ...
.Sh DESCRIPTION
.Nm
changes the file mode of the given files.
.Pp
If
.Ar mode
is
.Em octal
"[sog]e"
.Bl -tag -width Ds
.It s
.Xr sticky 1 => s += 1
.Pp
.Xr setgid 2 => s += 2
.Pp
.Xr setuid 4 => s += 4
.It o|g|e
owner | group | everyone
.Pp
.Xr execute 1 => o|g|e += 1
.Pp
.Xr write 2 => o|g|e += 2
.Pp
.Xr read 4 => o|g|e += 4
.El
.Pp
Leading zeroes may be omitted.
.Pp
If
.Ar mode
is
.Em symbolic
"[ugoa]*[+-=][rwxst]*"
.Bl -tag -width Ds
.It u|g|o|a
owner | group | other (non-group) | everyone
.It +|-|=
add | remove | set
.It r|w|x|s|t
read | write | execute | setuid and setgid | sticky
.El
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl R
Change modes recursively
.El
.Sh STANDARDS
The
.Nm
utility is compliant with the
.St -p1003.1-2008
specification.
.Pp
The
.Op Fl R
flag is an extension to that specification.

View File

@ -35,7 +35,7 @@ chmodr(const char *path)
static void
usage(void)
{
eprintf("usage: %s [-R] mode [file...]\n", argv0);
eprintf("usage: %s [-R] mode [file ...]\n", argv0);
}
int