]> git.saurik.com Git - apple/file_cmds.git/blobdiff - chmod/chmod.1
file_cmds-321.100.10.0.1.tar.gz
[apple/file_cmds.git] / chmod / chmod.1
index 9cafe9cf1f1fabe98b58f3b90162e7f8b7d0b09e..0e89f26b6444367259a0dbbb774553582539f522 100644 (file)
@@ -1,3 +1,4 @@
+.\"-
 .\" Copyright (c) 1989, 1990, 1993, 1994
 .\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\" Copyright (c) 1989, 1990, 1993, 1994
 .\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\" 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.
 .\" 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.
 .\"
 .\"    may be used to endorse or promote products derived from this software
 .\"    without specific prior written permission.
 .\"
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)chmod.1     8.4 (Berkeley) 3/31/94
 .\" 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
 .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
 .Op Fl fv
 .Op Fl R Op Fl H | L | P
 .Ar mode
 .Ar
-.Nm
+.Nm chmod
 .Op Fl fv
 .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
 .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
 .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 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
 .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
 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:
 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
 .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
 .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
 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.
 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
 .It Fl v
 Cause
-.Nm
+.Nm chmod
 to be verbose, showing filenames as the mode is modified.
 If the
 .Fl v
 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
 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.
 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.
 .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
 .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.
 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
 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
 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
 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
 See
 .Xr chmod 2
 and
-.Xr sticky 8 .
+.Xr sticky 7 .
 .It Li 0400
 Allow read by owner.
 .It Li 0200
 .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
 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
 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
 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
 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
 .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 ,
 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.
 ``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
 .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.
 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
 .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
 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.
 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
    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
 .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
    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
  # 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
 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
 .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.
    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.
 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 umask 2 ,
 .Xr fts 3 ,
 .Xr setmode 3 ,
+.Xr sticky 7 ,
 .Xr symlink 7 ,
 .Xr chown 8 ,
 .Xr symlink 7 ,
 .Xr chown 8 ,
-.Xr mount 8 ,
-.Xr sticky 8
+.Xr mount 8
 .Sh STANDARDS
 The
 .Sh STANDARDS
 The
-.Nm
+.Nm chmod
 utility is expected to be
 .St -p1003.2
 compatible with the exception of the
 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
 which is not included in that standard.
 .Sh HISTORY
 A
-.Nm
+.Nm chmod
 command appeared in
 .At v1 .
 command appeared in
 .At v1 .