diff options
Diffstat (limited to 'static/netbsd/man7/sticky.7')
| -rw-r--r-- | static/netbsd/man7/sticky.7 | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/static/netbsd/man7/sticky.7 b/static/netbsd/man7/sticky.7 new file mode 100644 index 00000000..d9cda3a0 --- /dev/null +++ b/static/netbsd/man7/sticky.7 @@ -0,0 +1,112 @@ +.\" $NetBSD: sticky.7,v 1.7 2024/02/08 20:11:55 andvar Exp $ +.\" +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 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. 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. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)sticky.8 8.1 (Berkeley) 6/5/93 +.\" +.Dd May 10, 2011 +.Dt STICKY 7 +.Os +.Sh NAME +.Nm sticky +.Nd Description of the `sticky' (S_ISVTX) bit functionality +.Sh DESCRIPTION +A special file mode, called the +.Em sticky bit +(mode +.Dv S_ISVTX ) , +is used to indicate special treatment for directories. +See +.Xr chmod 2 +or the file +.Pa /usr/include/sys/stat.h +.Ss Sticky files +For regular files, the use of mode +.Dv S_ISVTX +is reserved and can be set only by the super-user. +.Nx +does not currently treat regular files that have the sticky bit set +specially, but this behavior might change in the future. +.Ss Sticky directories +A directory whose +.Dq sticky bit +is set becomes a +directory in which the deletion of files is restricted. +A file in a sticky directory may only be removed or renamed +by a user if the user has write permission for the directory and +the user is the owner of the file, the owner of the directory, +or the super-user. +This feature is usefully applied to directories such as +.Pa /tmp +which must be publicly writable but should deny users the license +to arbitrarily delete or rename each others' files. +.Pp +Any user may create a sticky directory. +See +.Xr chmod 1 +for details about modifying file modes. +.Sh HISTORY +The sticky bit first appeared in V7, and this manual page appeared +in section 8. +Its initial use was to mark shareable executables +that were frequently used so that they would stay in swap after +the process exited. +Shareable executables were compiled in a special way so their text +and read-only data could be shared amongst processes. +.Xr vi 1 +and +.Xr sh 1 +were such executables. +This is where the term +.Dq sticky +comes from - the program would stick around in swap, and it would +not have to be fetched again from the file system. +Of course as long as there was a copy in the swap area, the file +was marked busy so it could not be overwritten. +On V7 this meant that the file could not be removed either, because +busy executables could not be removed, but this restriction was +lifted in BSD releases. +.Pp +To replace such executables was a cumbersome process. +One had first to remove the sticky bit, then execute the binary so +that the copy from swap was flushed, overwrite the executable, and +finally reset the sticky bit. +.Pp +Later, on SunOS 4, the sticky bit got an additional meaning for +files that had the bit set and were not executable: read and write +operations from and to those files would go directly to the disk +and bypass the buffer cache. +This was typically used on swap files for NFS clients on an NFS +server, so that swap I/O generated by the clients on the servers +would not evict useful data from the server's buffer cache. +.Sh BUGS +Neither +.Xr open 2 +nor +.Xr mkdir 2 +will create a file with the sticky bit set. |
