Annotation of embedaddon/sudo/doc/visudo.pod, revision 1.1

1.1     ! misho       1: Copyright (c) 1996,1998-2005, 2007-2011
        !             2:        Todd C. Miller <Todd.Miller@courtesan.com>
        !             3: 
        !             4: Permission to use, copy, modify, and distribute this software for any
        !             5: purpose with or without fee is hereby granted, provided that the above
        !             6: copyright notice and this permission notice appear in all copies.
        !             7: 
        !             8: THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !             9: WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            10: MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            11: ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            12: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            13: ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            14: OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            15: ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            16: 
        !            17: Sponsored in part by the Defense Advanced Research Projects
        !            18: Agency (DARPA) and Air Force Research Laboratory, Air Force
        !            19: Materiel Command, USAF, under agreement number F39502-99-1-0512.
        !            20: 
        !            21: =pod
        !            22: 
        !            23: =head1 NAME
        !            24: 
        !            25: visudo - edit the sudoers file
        !            26: 
        !            27: =head1 SYNOPSIS
        !            28: 
        !            29: B<visudo> [B<-chqsV>] [B<-f> I<sudoers>]
        !            30: 
        !            31: =head1 DESCRIPTION
        !            32: 
        !            33: B<visudo> edits the I<sudoers> file in a safe fashion, analogous to
        !            34: L<vipw(8)>.  B<visudo> locks the I<sudoers> file against multiple
        !            35: simultaneous edits, provides basic sanity checks, and checks
        !            36: for parse errors.  If the I<sudoers> file is currently being
        !            37: edited you will receive a message to try again later.
        !            38: 
        !            39: There is a hard-coded list of one or more editors that B<visudo> will
        !            40: use set at compile-time that may be overridden via the I<editor> I<sudoers>
        !            41: C<Default> variable.  This list defaults to C<"@editor@">.  Normally,
        !            42: B<visudo> does not honor the C<VISUAL> or C<EDITOR> environment
        !            43: variables unless they contain an editor in the aforementioned editors
        !            44: list.  However, if B<visudo> is configured with the I<--with-env-editor>
        !            45: option or the I<env_editor> C<Default> variable is set in I<sudoers>,
        !            46: B<visudo> will use any the editor defines by C<VISUAL> or C<EDITOR>.
        !            47: Note that this can be a security hole since it allows the user to
        !            48: execute any program they wish simply by setting C<VISUAL> or C<EDITOR>.
        !            49: 
        !            50: B<visudo> parses the I<sudoers> file after the edit and will
        !            51: not save the changes if there is a syntax error.  Upon finding
        !            52: an error, B<visudo> will print a message stating the line number(s)
        !            53: where the error occurred and the user will receive the
        !            54: "What now?" prompt.  At this point the user may enter "e"
        !            55: to re-edit the I<sudoers> file, "x" to exit without
        !            56: saving the changes, or "Q" to quit and save changes.  The
        !            57: "Q" option should be used with extreme care because if B<visudo>
        !            58: believes there to be a parse error, so will B<sudo> and no one
        !            59: will be able to B<sudo> again until the error is fixed.
        !            60: If "e" is typed to edit the  I<sudoers> file after a parse error
        !            61: has been detected, the cursor will be placed on the line where the
        !            62: error occurred (if the editor supports this feature).
        !            63: 
        !            64: =head1 OPTIONS
        !            65: 
        !            66: B<visudo> accepts the following command line options:
        !            67: 
        !            68: =over 12
        !            69: 
        !            70: =item -c
        !            71: 
        !            72: Enable B<check-only> mode.  The existing I<sudoers> file will be
        !            73: checked for syntax and a message will be printed to the
        !            74: standard output detailing the status of I<sudoers>.
        !            75: If the syntax check completes successfully, B<visudo> will
        !            76: exit with a value of 0.  If a syntax error is encountered,
        !            77: B<visudo> will exit with a value of 1.
        !            78: 
        !            79: =item -f I<sudoers>
        !            80: 
        !            81: Specify and alternate I<sudoers> file location.  With this option
        !            82: B<visudo> will edit (or check) the I<sudoers> file of your choice,
        !            83: instead of the default, F<@sysconfdir@/sudoers>.  The lock file used
        !            84: is the specified I<sudoers> file with ".tmp" appended to it.
        !            85: In B<check-only> mode only, the argument to B<-f> may be "-",
        !            86: indicating that I<sudoers> will be read from the standard input.
        !            87: 
        !            88: =item -h
        !            89: 
        !            90: The B<-h> (I<help>) option causes B<visudo> to print a short help message
        !            91: to the standard output and exit.
        !            92: 
        !            93: =item -q
        !            94: 
        !            95: Enable B<quiet> mode.  In this mode details about syntax errors
        !            96: are not printed.  This option is only useful when combined with
        !            97: the B<-c> option.
        !            98: 
        !            99: =item -s
        !           100: 
        !           101: Enable B<strict> checking of the I<sudoers> file.  If an alias is
        !           102: used before it is defined, B<visudo> will consider this a parse
        !           103: error.  Note that it is not possible to differentiate between an
        !           104: alias and a host name or user name that consists solely of uppercase
        !           105: letters, digits, and the underscore ('_') character.
        !           106: 
        !           107: =item -V
        !           108: 
        !           109: The B<-V> (version) option causes B<visudo> to print its version number
        !           110: and exit.
        !           111: 
        !           112: =back
        !           113: 
        !           114: =head1 ENVIRONMENT
        !           115: 
        !           116: The following environment variables may be consulted depending on
        !           117: the value of the I<editor> and I<env_editor> I<sudoers> variables:
        !           118: 
        !           119: =over 16
        !           120: 
        !           121: =item C<VISUAL>
        !           122: 
        !           123: Invoked by visudo as the editor to use
        !           124: 
        !           125: =item C<EDITOR>
        !           126: 
        !           127: Used by visudo if VISUAL is not set
        !           128: 
        !           129: =back
        !           130: 
        !           131: =head1 FILES
        !           132: 
        !           133: =over 24
        !           134: 
        !           135: =item F<@sysconfdir@/sudoers>
        !           136: 
        !           137: List of who can run what
        !           138: 
        !           139: =item F<@sysconfdir@/sudoers.tmp>
        !           140: 
        !           141: Lock file for visudo
        !           142: 
        !           143: =back
        !           144: 
        !           145: =head1 DIAGNOSTICS
        !           146: 
        !           147: =over 4
        !           148: 
        !           149: =item sudoers file busy, try again later.
        !           150: 
        !           151: Someone else is currently editing the I<sudoers> file.
        !           152: 
        !           153: =item @sysconfdir@/sudoers.tmp: Permission denied
        !           154: 
        !           155: You didn't run B<visudo> as root.
        !           156: 
        !           157: =item Can't find you in the passwd database
        !           158: 
        !           159: Your userid does not appear in the system passwd file.
        !           160: 
        !           161: =item Warning: {User,Runas,Host,Cmnd}_Alias referenced but not defined
        !           162: 
        !           163: Either you are trying to use an undeclare {User,Runas,Host,Cmnd}_Alias
        !           164: or you have a user or host name listed that consists solely of
        !           165: uppercase letters, digits, and the underscore ('_') character.  In
        !           166: the latter case, you can ignore the warnings (B<sudo> will not
        !           167: complain).  In B<-s> (strict) mode these are errors, not warnings.
        !           168: 
        !           169: =item Warning: unused {User,Runas,Host,Cmnd}_Alias
        !           170: 
        !           171: The specified {User,Runas,Host,Cmnd}_Alias was defined but never
        !           172: used.  You may wish to comment out or remove the unused alias.  In
        !           173: B<-s> (strict) mode this is an error, not a warning.
        !           174: 
        !           175: =item Warning: cycle in {User,Runas,Host,Cmnd}_Alias
        !           176: 
        !           177: The specified {User,Runas,Host,Cmnd}_Alias includes a reference to
        !           178: itself, either directly or through an alias it includes.  This is
        !           179: only a warning by default as B<sudo> will ignore cycles when parsing
        !           180: the I<sudoers> file.
        !           181: 
        !           182: =back
        !           183: 
        !           184: =head1 SEE ALSO
        !           185: 
        !           186: L<vi(1)>, L<sudoers(5)>, L<sudo(8)>, L<vipw(8)>
        !           187: 
        !           188: =head1 AUTHOR
        !           189: 
        !           190: Many people have worked on I<sudo> over the years; this version of
        !           191: B<visudo> was written by:
        !           192: 
        !           193:  Todd Miller
        !           194: 
        !           195: See the HISTORY file in the sudo distribution or visit
        !           196: http://www.sudo.ws/sudo/history.html for more details.
        !           197: 
        !           198: =head1 CAVEATS
        !           199: 
        !           200: There is no easy way to prevent a user from gaining a root shell if 
        !           201: the editor used by B<visudo> allows shell escapes.
        !           202: 
        !           203: =head1 BUGS
        !           204: 
        !           205: If you feel you have found a bug in B<visudo>, please submit a bug report
        !           206: at http://www.sudo.ws/sudo/bugs/
        !           207: 
        !           208: =head1 SUPPORT
        !           209: 
        !           210: Limited free support is available via the sudo-users mailing list,
        !           211: see http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or
        !           212: search the archives.
        !           213: 
        !           214: =head1 DISCLAIMER
        !           215: 
        !           216: B<visudo> is provided ``AS IS'' and any express or implied warranties,
        !           217: including, but not limited to, the implied warranties of merchantability
        !           218: and fitness for a particular purpose are disclaimed.  See the LICENSE
        !           219: file distributed with B<sudo> or http://www.sudo.ws/sudo/license.html
        !           220: for complete details.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>