sbase/chmod.1
FRIGN aea256c288 Audit chmod(1)
1) Update manpage, refactor the HLP-section and other wordings.
2) BUGFIX: If chmod() fails, don't recurse.
3) Rewrite the arg-loop, fixing several issues:
   BUGFIX: Handle multi-flags (e.g. -RH)
   BUGFIX: Properly handle the termination flag --, error on e.g. --x
   BUGFIX: Error out on an empty flag -.
4) Refactor logic after the arg-loop, which is now simpler thanks
   to argv-incremention.
2015-03-05 19:08:28 +01:00

85 lines
1.1 KiB
Groff

.Dd March 5, 2015
.Dt CHMOD 1
.Os sbase
.Sh NAME
.Nm chmod
.Nd change file modes
.Sh SYNOPSIS
.Nm
.Oo
.Fl R
.Op Fl H | L | P
.Oc
.Ar mode
.Ar file ...
.Sh DESCRIPTION
.Nm
changes the file mode of each
.Ar file
to
.Ar mode .
.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.
.It Fl H
Dereference
.Ar file
if it is a symbolic link.
.It Fl L
Dereference all symbolic links.
.It Fl P
Preserve symbolic links. This is the default.
.El
.Sh SEE ALSO
.Xr chgrp 1 ,
.Xr umask 1
.Sh STANDARDS
The
.Nm
utility is compliant with the
.St -p1003.1-2008
specification.
.Pp
The
.Op Fl HLP
flags are an extension to that specification.