Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
_SECURE_PATH(3) 	     Library Functions Manual		 _SECURE_PATH(3)

NAME
     _secure_path -- determine if a file appears to be secure

LIBRARY
     System Utilities Library (libutil, -lutil)

SYNOPSIS
     #include <sys/types.h>
     #include <libutil.h>

     int
     _secure_path(const char *path, uid_t uid, gid_t gid);

DESCRIPTION
     This function does some basic security checking on a given path.  It is in-
     tended to be used by processes running with root privileges in order to de-
     cide  whether  or	not  to  trust	the contents of a given file.  It uses a
     method often used to detect system compromise.

     A file is considered `secure' if it meets the following conditions:

     1.   The file exists, and is a regular file (not a symlink, device  special
	  or named pipe, etc.),

     2.   Is not world writable.

     3.   Is owned by the given uid or uid 0, if uid is not -1,

     4.   Is  not  group writable or it has group ownership by the given gid, if
	  gid is not -1.

RETURN VALUES
     This function returns zero if the file exists and may be considered secure,
     -2 if the file does not exist, and -1  otherwise  to  indicate  a	security
     failure.	The  syslog(3) function is used to log any failure of this func-
     tion, including the reason, at LOG_ERR priority.

SEE ALSO
     lstat(2), syslog(3)

HISTORY
     Code from which this function was derived was contributed	to  the  FreeBSD
     project  by  Berkeley  Software  Design,  Inc.  The function _secure_path()
     first appeared in FreeBSD 2.2.5.

BUGS
     The checks carried out are rudimentary and no attempt is made to  eliminate
     race  conditions between use of this function and access to the file refer-
     enced.

FreeBSD ports 15.quarterly	  May 10, 2020			 _SECURE_PATH(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=_secure_path&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help