X-Git-Url: https://git.saurik.com/apple/file_cmds.git/blobdiff_plain/40558d9b2b11b6edb660cce88544ef25d2f5a589..refs/heads/master:/chmod/chmod.1 diff --git a/chmod/chmod.1 b/chmod/chmod.1 index 9cafe9c..0e89f26 100644 --- a/chmod/chmod.1 +++ b/chmod/chmod.1 @@ -1,3 +1,4 @@ +.\"- .\" Copyright (c) 1989, 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" @@ -12,11 +13,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" @@ -33,44 +30,44 @@ .\" SUCH DAMAGE. .\" .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 -.\" $FreeBSD: src/bin/chmod/chmod.1,v 1.33 2002/10/01 20:32:59 trhodes Exp $ +.\" $FreeBSD$ .\" -.Dd July 08, 2004 +.Dd January 7, 2017 .Dt CHMOD 1 .Os .Sh NAME .Nm chmod .Nd change file modes or Access Control Lists .Sh SYNOPSIS -.Nm +.Nm chmod .Op Fl fv .Op Fl R Op Fl H | L | P .Ar mode .Ar -.Nm +.Nm chmod .Op Fl fv -.Op Fl R Op Fl H | L | P +.Op Fl R Op Fl H | L | P .Op -a | +a | =a .Ar ACE .Ar -.Nm -.Op Fl fv -.Op Fl R Op Fl H | L | P +.Nm chmod +.Op Fl fhv +.Op Fl R Op Fl H | L | P .Op Fl E .Ar -.Nm -.Op Fl fv -.Op Fl R Op Fl H | L | P +.Nm chmod +.Op Fl fhv +.Op Fl R Op Fl H | L | P .Op Fl C .Ar .Nm chmod -.Op Fl fv +.Op Fl fhv .Op Fl R Op Fl H | L | P .Op Fl N .Ar .Sh DESCRIPTION The -.Nm +.Nm chmod utility modifies the file mode bits of the listed files as specified by the .Ar mode @@ -78,13 +75,22 @@ operand. It may also be used to modify the Access Control Lists (ACLs) associated with the listed files. .Pp The generic options are as follows: -.Bl -tag -width Ds +.Bl -tag -width indent +.It Fl f +Do not display a diagnostic message if +.Nm chmod +could not modify the mode for +.Va file , +nor modify the exit status to reflect such failures. .It Fl H If the .Fl R -option is specified, symbolic links on the command line are followed. -(Symbolic links encountered in the tree traversal are not followed by -default.) +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during tree traversal are not followed.) +.It Fl h +If the file is a symbolic link, change the mode of the link itself +rather than the file that the link points to. .It Fl L If the .Fl R @@ -95,16 +101,15 @@ If the option is specified, no symbolic links are followed. This is the default. .It Fl R -Change the modes of the file hierarchies rooted in the files +Change the modes of the file hierarchies rooted in the files, instead of just the files themselves. -.It Fl f -Do not display a diagnostic message if -.Nm -could not modify the mode for -.Va file . +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . .It Fl v Cause -.Nm +.Nm chmod to be verbose, showing filenames as the mode is modified. If the .Fl v @@ -123,9 +128,19 @@ option is specified. In addition, these options override each other and the command's actions are determined by the last one specified. .Pp +If +.Nm chmod +receives a +.Dv SIGINFO +signal (see the +.Cm status +argument for +.Xr stty 1 ) , +then the current filename as well as the old and new modes are displayed. +.Pp Only the owner of a file or the super-user is permitted to change the mode of a file. -.Sh DIAGNOSTICS +.Sh EXIT STATUS .Ex -std .Sh MODES Modes may be absolute or symbolic. @@ -134,26 +149,28 @@ one or more of the following values: .Pp .Bl -tag -width 6n -compact -offset indent .It Li 4000 -(the set-user-ID-on-execution bit) Executable files with this bit set +(the setuid bit). +Executable files with this bit set will run with effective uid set to the uid of the file owner. -Directories with the set-user-id bit set will force all files and +Directories with this bit set will force all files and sub-directories created in them to be owned by the directory owner and not by the uid of the creating process, if the underlying file system supports this feature: see .Xr chmod 2 and the -.Ar suiddir +.Cm suiddir option to .Xr mount 8 . .It Li 2000 -(the set-group-ID-on-execution bit) Executable files with this bit set +(the setgid bit). +Executable files with this bit set will run with effective gid set to the gid of the file owner. .It Li 1000 -(the sticky bit) +(the sticky bit). See .Xr chmod 2 and -.Xr sticky 8 . +.Xr sticky 7 . .It Li 0400 Allow read by owner. .It Li 0200 @@ -247,6 +264,8 @@ If no value is supplied for each permission bit specified in .Ar perm , for which the corresponding bit in the file mode creation mask +(see +.Xr umask 2 ) is clear, is set. Otherwise, the mode bits represented by the specified .Ar who @@ -262,7 +281,7 @@ If no value is supplied for each permission bit specified in .Ar perm , for which the corresponding bit in the file mode creation mask -is clear, is cleared. +is set, is cleared. Otherwise, the mode bits represented by the specified .Ar who and @@ -271,7 +290,9 @@ values are cleared. .It = The mode bits specified by the .Ar who -value are cleared, or, if no who value is specified, the owner, group +value are cleared, or, if no +.Ar who +value is specified, the owner, group and other mode bits are cleared. Then, if no value is supplied for .Ar who , @@ -296,6 +317,10 @@ Operations upon the other permissions only (specified by the symbol ``o'' by itself), in combination with the .Ar perm symbols ``s'' or ``t'', are ignored. +.Pp +The ``w'' permission on directories will permit file creation, relocation, +and copy into that directory. +Files created within the directory itself will inherit its group ID. .Sh EXAMPLES OF VALID MODES .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 @@ -328,6 +353,12 @@ ACLs are manipulated using extensions to the symbolic mode grammar. Each file has one ACL, containing an ordered list of entries. Each entry refers to a user or group, and grants or denies a set of permissions. +In cases where a user and a group exist with the same name, the +user/group name can be prefixed with "user:" or "group:" in order to +specify the type of name. +.Pp +If the user or group name contains spaces you can use ':' as the delimiter +between name and permission. .Pp The following permissions are applicable to all filesystem objects: .Bl -tag -width 6n -compact -offset indent @@ -335,7 +366,7 @@ The following permissions are applicable to all filesystem objects: Delete the item. Deletion may be granted by either this permission on an object or the delete_child right on the containing directory. .It readattr -Read an objects basic attributes. This is implicitly granted if +Read an object's basic attributes. This is implicitly granted if the object can be looked up and not explicitly denied. .It writeattr Write an object's basic attributes. @@ -423,6 +454,13 @@ two entries are combined. owner: juser 1: guest deny read 2: admin allow write,delete + # chmod +a "User 1:allow:read" file + # ls -le + -rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1 + owner: juser + 1: guest deny read + 2: User 1 allow read + 3: admin allow write,delete .Pp The +a mode strives to maintain correct canonical form for the ACL. local deny @@ -443,7 +481,7 @@ allow lists. Inherited entries are added by using the +ai mode. 4: admin inherited allow delete 5: backup inherited deny read 6: admin inherited allow write-security - # chmod +ai "others allow write" file1 + # chmod +ai "others allow read" file1 # ls -le -rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1 owner: juser @@ -500,6 +538,11 @@ removed. Entries may also be deleted by index using the -a# mode. .Pp Inheritance is not considered when processing the -a mode; rights and entries will be removed regardless of their inherited state. +.Pp +If the user or group name contains spaces you can use ':' as the delimiter +.Pp +\fBExample\fR + # chmod +a "User 1:allow:read" file .It \fB=a#\fR Individual entries are rewritten using the =a# mode. .Pp @@ -515,7 +558,7 @@ Individual entries are rewritten using the =a# mode. 1: admin allow write,chown .Pp This mode may not be used to add new entries. -.It Fl E +.It Fl E Reads the ACL information from stdin, as a sequential list of ACEs, separated by newlines. If the information parses correctly, the existing information is replaced. @@ -540,13 +583,13 @@ option is non-standard and its use in scripts is not recommended. .Xr umask 2 , .Xr fts 3 , .Xr setmode 3 , +.Xr sticky 7 , .Xr symlink 7 , .Xr chown 8 , -.Xr mount 8 , -.Xr sticky 8 +.Xr mount 8 .Sh STANDARDS The -.Nm +.Nm chmod utility is expected to be .St -p1003.2 compatible with the exception of the @@ -556,6 +599,6 @@ symbol which is not included in that standard. .Sh HISTORY A -.Nm +.Nm chmod command appeared in .At v1 .