GRAYBYTE WORDPRESS FILE MANAGER4309

Server IP : 68.65.123.43 / Your IP : 216.73.216.162
System : Linux server266.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
PHP Version : 8.0.30
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/include/bind9/isc/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/include/bind9/isc//fsaccess.h
/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */


#ifndef ISC_FSACCESS_H
#define ISC_FSACCESS_H 1

/*! \file isc/fsaccess.h
 * \brief The ISC filesystem access module encapsulates the setting of file
 * and directory access permissions into one API that is meant to be
 * portable to multiple operating systems.
 *
 * The two primary operating system flavors that are initially accommodated
 * are POSIX and Windows NT 4.0 and later.  The Windows NT access model is
 * considerable more flexible than POSIX's model (as much as I am loathe to
 * admit it), and so the ISC API has a higher degree of complexity than would
 * be needed to simply address POSIX's needs.
 *
 * The full breadth of NT's flexibility is not available either, for the
 * present time.  Much of it is to provide compatibility with what Unix
 * programmers are expecting.  This is also due to not yet really needing all
 * of the functionality of an NT system (or, for that matter, a POSIX system)
 * in BIND9, and so resolving how to handle the various incompatibilities has
 * been a purely theoretical exercise with no operational experience to
 * indicate how flawed the thinking may be.
 *
 * Some of the more notable dumbing down of NT for this API includes:
 *
 *\li   Each of FILE_READ_DATA and FILE_READ_EA are set with #ISC_FSACCESS_READ.
 *
 * \li  All of FILE_WRITE_DATA, FILE_WRITE_EA and FILE_APPEND_DATA are
 *     set with #ISC_FSACCESS_WRITE.  FILE_WRITE_ATTRIBUTES is not set
 *     so as to be consistent with Unix, where only the owner of the file
 *     or the superuser can change the attributes/mode of a file.
 *
 * \li  Both of FILE_ADD_FILE and FILE_ADD_SUBDIRECTORY are set with
 *     #ISC_FSACCESS_CREATECHILD.  This is similar to setting the WRITE
 *     permission on a Unix directory.
 *
 * \li  SYNCHRONIZE is always set for files and directories, unless someone
 *     can give me a reason why this is a bad idea.
 *
 * \li  READ_CONTROL and FILE_READ_ATTRIBUTES are always set; this is
 *     consistent with Unix, where any file or directory can be stat()'d
 *     unless the directory path disallows complete access somewhere along
 *     the way.
 *
 * \li  WRITE_DAC is only set for the owner.  This too is consistent with
 *     Unix, and is tighter security than allowing anyone else to be
 *     able to set permissions.
 *
 * \li  DELETE is only set for the owner.  On Unix the ability to delete
 *     a file is controlled by the directory permissions, but it isn't
 *     currently clear to me what happens on NT if the directory has
 *     FILE_DELETE_CHILD set but a file within it does not have DELETE
 *     set.  Always setting DELETE on the file/directory for the owner
 *     gives maximum flexibility to the owner without exposing the
 *     file to deletion by others.
 *
 * \li  WRITE_OWNER is never set.  This too is consistent with Unix,
 *     and is also tighter security than allowing anyone to change the
 *     ownership of the file apart from the superu..ahem, Administrator.
 *
 * \li  Inheritance is set to NO_INHERITANCE.
 *
 * Unix's dumbing down includes:
 *
 * \li  The sticky bit cannot be set.
 *
 * \li  setuid and setgid cannot be set.
 *
 * \li  Only regular files and directories can be set.
 *
 * The rest of this comment discusses a few of the incompatibilities
 * between the two systems that need more thought if this API is to
 * be extended to accommodate them.
 *
 * The Windows standard access right "DELETE" doesn't have a direct
 * equivalent in the Unix world, so it isn't clear what should be done
 * with it.
 *
 * The Unix sticky bit is not supported.  While NT does have a concept
 * of allowing users to create files in a directory but not delete or
 * rename them, it does not have a concept of allowing them to be deleted
 * if they are owned by the user trying to delete/rename.  While it is
 * probable that something could be cobbled together in NT 5 with inheritance,
 * it can't really be done in NT 4 as a single property that you could
 * set on a directory.  You'd need to coordinate something with file creation
 * so that every file created had DELETE set for the owner but no one else.
 *
 * On Unix systems, setting #ISC_FSACCESS_LISTDIRECTORY sets READ.
 * ... setting either #ISC_FSACCESS_CREATECHILD or #ISC_FSACCESS_DELETECHILD
 *      sets WRITE.
 * ... setting #ISC_FSACCESS_ACCESSCHILD sets EXECUTE.
 *
 * On NT systems, setting #ISC_FSACCESS_LISTDIRECTORY sets FILE_LIST_DIRECTORY.
 * ... setting #ISC_FSACCESS_CREATECHILD sets FILE_CREATE_CHILD independently.
 * ... setting #ISC_FSACCESS_DELETECHILD sets FILE_DELETE_CHILD independently.
 * ... setting #ISC_FSACCESS_ACCESSCHILD sets FILE_TRAVERSE.
 *
 * Unresolved:							XXXDCL
 * \li  What NT access right controls the ability to rename a file?
 * \li  How does DELETE work?  If a directory has FILE_DELETE_CHILD but a
 *      file or directory within it does not have DELETE, is that file
 *	or directory deletable?
 * \li  To implement isc_fsaccess_get(), mapping an existing Unix permission
 * 	mode_t back to an isc_fsaccess_t is pretty trivial; however, mapping
 *	an NT DACL could be impossible to do in a responsible way.
 * \li  Similarly, trying to implement the functionality of being able to
 *	say "add group writability to whatever permissions already exist"
 *	could be tricky on NT because of the order-of-entry issue combined
 *	with possibly having one or more matching ACEs already explicitly
 *	granting or denying access.  Because this functionality is
 *	not yet needed by the ISC, no code has been written to try to
 * 	solve this problem.
 */

#include <inttypes.h>

#include <isc/lang.h>
#include <isc/types.h>

/*
 * Trustees.
 */
#define ISC_FSACCESS_OWNER	0x1 /*%< User account. */
#define ISC_FSACCESS_GROUP	0x2 /*%< Primary group owner. */
#define ISC_FSACCESS_OTHER	0x4 /*%< Not the owner or the group owner. */
#define ISC_FSACCESS_WORLD	0x7 /*%< User, Group, Other. */

/*
 * Types of permission.
 */
#define ISC_FSACCESS_READ		0x00000001 /*%< File only. */
#define ISC_FSACCESS_WRITE		0x00000002 /*%< File only. */
#define ISC_FSACCESS_EXECUTE		0x00000004 /*%< File only. */
#define ISC_FSACCESS_CREATECHILD	0x00000008 /*%< Dir only. */
#define ISC_FSACCESS_DELETECHILD	0x00000010 /*%< Dir only. */
#define ISC_FSACCESS_LISTDIRECTORY	0x00000020 /*%< Dir only. */
#define ISC_FSACCESS_ACCESSCHILD	0x00000040 /*%< Dir only. */

/*%
 * Adding any permission bits beyond 0x200 would mean typedef'ing
 * isc_fsaccess_t as uint64_t, and redefining this value to
 * reflect the new range of permission types, Probably to 21 for
 * maximum flexibility.  The number of bits has to accommodate all of
 * the permission types, and three full sets of them have to fit
 * within an isc_fsaccess_t.
 */
#define ISC__FSACCESS_PERMISSIONBITS 10

ISC_LANG_BEGINDECLS

void
isc_fsaccess_add(int trustee, int permission, isc_fsaccess_t *access);

void
isc_fsaccess_remove(int trustee, int permission, isc_fsaccess_t *access);

isc_result_t
isc_fsaccess_set(const char *path, isc_fsaccess_t access);

ISC_LANG_ENDDECLS

#endif /* ISC_FSACCESS_H */

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
February 21 2025 04:13:15
root / root
0755
aes.h
1.055 KB
February 20 2025 09:05:24
root / root
0644
app.h
10.232 KB
February 20 2025 09:05:24
root / root
0644
assertions.h
2.839 KB
February 20 2025 09:05:24
root / root
0644
atomic.h
4.07 KB
February 20 2025 09:05:24
root / root
0644
backtrace.h
3.8 KB
February 20 2025 09:05:24
root / root
0644
base32.h
4.349 KB
February 20 2025 09:05:24
root / root
0644
base64.h
2.799 KB
February 20 2025 09:05:24
root / root
0644
bind9.h
0.811 KB
February 20 2025 09:05:24
root / root
0644
boolean.h
0.58 KB
February 20 2025 09:05:24
root / root
0644
buffer.h
25.652 KB
February 20 2025 09:05:24
root / root
0644
bufferlist.h
1.418 KB
February 20 2025 09:05:24
root / root
0644
cmocka.h
1.351 KB
February 20 2025 09:05:24
root / root
0644
commandline.h
1.673 KB
February 20 2025 09:05:24
root / root
0644
condition.h
1.443 KB
February 20 2025 09:05:24
root / root
0644
counter.h
1.881 KB
February 20 2025 09:05:24
root / root
0644
crc64.h
0.975 KB
February 20 2025 09:05:24
root / root
0644
deprecated.h
0.608 KB
February 20 2025 09:05:24
root / root
0644
dir.h
1.561 KB
February 20 2025 09:05:24
root / root
0644
endian.h
4.666 KB
February 20 2025 09:05:24
root / root
0644
entropy.h
10.13 KB
February 20 2025 09:05:24
root / root
0644
errno.h
0.644 KB
February 20 2025 09:05:24
root / root
0644
errno2result.h
0.881 KB
February 20 2025 09:05:37
root / root
0644
error.h
1.396 KB
February 20 2025 09:05:24
root / root
0644
event.h
2.981 KB
February 20 2025 09:05:24
root / root
0644
eventclass.h
1.349 KB
February 20 2025 09:05:24
root / root
0644
file.h
11.394 KB
February 20 2025 09:05:24
root / root
0644
formatcheck.h
0.872 KB
February 20 2025 09:05:24
root / root
0644
fsaccess.h
7.268 KB
February 20 2025 09:05:24
root / root
0644
hash.h
7.482 KB
February 20 2025 09:05:24
root / root
0644
heap.h
5.141 KB
February 20 2025 09:05:24
root / root
0644
hex.h
2.74 KB
February 20 2025 09:05:24
root / root
0644
hmacmd5.h
1.745 KB
February 20 2025 09:05:24
root / root
0644
hmacsha.h
4.405 KB
February 20 2025 09:05:24
root / root
0644
ht.h
4.293 KB
February 20 2025 09:05:24
root / root
0644
httpd.h
2.264 KB
February 20 2025 09:05:24
root / root
0644
int.h
1.063 KB
February 20 2025 09:05:24
root / root
0644
interfaceiter.h
3.047 KB
February 20 2025 09:05:24
root / root
0644
iterated_hash.h
1.021 KB
February 20 2025 09:05:24
root / root
0644
json.h
1.425 KB
February 20 2025 09:05:24
root / root
0644
keyboard.h
0.966 KB
February 20 2025 09:05:24
root / root
0644
lang.h
0.622 KB
February 20 2025 09:05:24
root / root
0644
lex.h
9.542 KB
February 20 2025 09:05:24
root / root
0644
lfsr.h
2.889 KB
February 20 2025 09:05:24
root / root
0644
lib.h
1.043 KB
February 20 2025 09:05:24
root / root
0644
likely.h
0.799 KB
February 20 2025 09:05:24
root / root
0644
list.h
5.616 KB
February 20 2025 09:05:24
root / root
0644
log.h
28.061 KB
February 20 2025 09:05:24
root / root
0644
magic.h
0.971 KB
February 20 2025 09:05:24
root / root
0644
md5.h
2.324 KB
February 20 2025 09:05:24
root / root
0644
mem.h
20.615 KB
February 20 2025 09:05:24
root / root
0644
meminfo.h
0.693 KB
February 20 2025 09:05:24
root / root
0644
msgcat.h
2.662 KB
February 20 2025 09:05:24
root / root
0644
msgs.h
8.225 KB
February 20 2025 09:05:24
root / root
0644
mutex.h
3.441 KB
February 20 2025 09:05:24
root / root
0644
mutexblock.h
1.343 KB
February 20 2025 09:05:24
root / root
0644
net.h
10.287 KB
February 20 2025 09:05:24
root / root
0644
netaddr.h
4.482 KB
February 20 2025 09:05:24
root / root
0644
netdb.h
0.843 KB
February 20 2025 09:05:24
root / root
0644
netscope.h
0.944 KB
February 20 2025 09:05:24
root / root
0644
offset.h
0.684 KB
February 20 2025 09:05:24
root / root
0644
once.h
0.96 KB
February 20 2025 09:05:24
root / root
0644
ondestroy.h
2.733 KB
February 20 2025 09:05:24
root / root
0644
os.h
0.655 KB
February 20 2025 09:05:24
root / root
0644
parseint.h
1.506 KB
February 20 2025 09:05:24
root / root
0644
platform.h
9.489 KB
February 20 2025 09:05:24
root / root
0644
pool.h
3.42 KB
February 20 2025 09:05:24
root / root
0644
portset.h
3.218 KB
February 20 2025 09:05:24
root / root
0644
print.h
2.417 KB
February 20 2025 09:05:24
root / root
0644
queue.h
5.082 KB
February 20 2025 09:05:24
root / root
0644
quota.h
2.383 KB
February 20 2025 09:05:24
root / root
0644
radix.h
6.339 KB
February 20 2025 09:05:24
root / root
0644
random.h
3.498 KB
February 20 2025 09:05:24
root / root
0644
ratelimiter.h
3.415 KB
February 20 2025 09:05:24
root / root
0644
refcount.h
8.001 KB
February 20 2025 09:05:24
root / root
0644
regex.h
0.749 KB
February 20 2025 09:05:24
root / root
0644
region.h
1.986 KB
February 20 2025 09:05:24
root / root
0644
resource.h
2.795 KB
February 20 2025 09:05:24
root / root
0644
result.h
4.865 KB
February 20 2025 09:05:24
root / root
0644
resultclass.h
1.562 KB
February 20 2025 09:05:24
root / root
0644
rwlock.h
3.718 KB
February 20 2025 09:05:24
root / root
0644
safe.h
1.32 KB
February 20 2025 09:05:24
root / root
0644
serial.h
1.336 KB
February 20 2025 09:05:24
root / root
0644
sha1.h
1.52 KB
February 20 2025 09:05:24
root / root
0644
sha2.h
5.599 KB
February 20 2025 09:05:24
root / root
0644
siphash.h
0.717 KB
February 20 2025 09:05:24
root / root
0644
sockaddr.h
5.897 KB
February 20 2025 09:05:24
root / root
0644
socket.h
35.796 KB
February 20 2025 09:05:24
root / root
0644
stat.h
0.787 KB
February 20 2025 09:05:24
root / root
0644
stats.h
3.622 KB
February 20 2025 09:05:24
root / root
0644
stdatomic.h
5.127 KB
February 20 2025 09:05:24
root / root
0644
stdio.h
1.745 KB
February 20 2025 09:05:24
root / root
0644
stdlib.h
0.688 KB
February 20 2025 09:05:24
root / root
0644
stdtime.h
1.04 KB
February 20 2025 09:05:24
root / root
0644
strerror.h
0.759 KB
February 20 2025 09:05:24
root / root
0644
string.h
5.878 KB
February 20 2025 09:05:24
root / root
0644
symtab.h
4.225 KB
February 20 2025 09:05:24
root / root
0644
syslog.h
0.824 KB
February 20 2025 09:05:24
root / root
0644
task.h
21.039 KB
February 20 2025 09:05:24
root / root
0644
taskpool.h
3.622 KB
February 20 2025 09:05:24
root / root
0644
thread.h
1.471 KB
February 20 2025 09:05:24
root / root
0644
time.h
8.668 KB
February 20 2025 09:05:24
root / root
0644
timer.h
10.542 KB
February 20 2025 09:05:24
root / root
0644
tm.h
0.874 KB
February 20 2025 09:05:24
root / root
0644
types.h
5.645 KB
February 20 2025 09:05:24
root / root
0644
utf8.h
0.906 KB
February 20 2025 09:05:24
root / root
0644
util.h
10.29 KB
February 20 2025 09:05:24
root / root
0644
version.h
0.673 KB
February 20 2025 09:05:24
root / root
0644
xml.h
1.068 KB
February 20 2025 09:05:24
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF