freebsd kernel with SKQ
Go to file
ian acdf044438 Limit access to system accounting files.
In 2013 the security chapter of the Handbook was updated in r42501 to
suggest limiting access to the system accounting file [*1] by creating the
initial file with a mode of 0600. This was in part based on a discussion in
the forums [*2]. Unfortunately, this advice is overridden by the fact that a
new file is created as part of periodic daily processing, and the file mode
is set by the rc.d/accounting script.

These changes update the accounting script to create the directory with mode
0750 if it doesn't already exist, and to create the daily file with mode
0640. This limits write access to root only, read access to root and members
of wheel, and eliminates world access completely. For admins who want to
prevent even members of wheel from accessing the files, the mode of the
/var/account directory can be manually changed to 0700, because the script
never creates or changes that directory if it already exists.

The accounting_rotate_log() function now also handles the error cases of no
existing log file to rotate, and attempting to rotate the file multiple
times (.0 file already exists).

Another small change here eliminates the complexity of the mktemp/chmod/mv
sequence for creating a new acct file by using install(1) with the flags
needed to directly create the file with the desired ownership and
modes. That allows coalescing two separate if checkyesno accounting_enable
blocks into one.

These changes were inspired by my investigation of PR 202203.

[1] https://www.freebsd.org/doc/handbook/security-accounting.html
[2] http://forums.freebsd.org/showthread.php?t=41059

PR:		202203
Differential Revision:	https://reviews.freebsd.org/D20876
2019-07-13 16:07:38 +00:00
bin Fix .depend files to work for build tools. 2019-06-15 17:08:13 +00:00
cddl DTrace: add a top level makefile to the new test suit 2019-06-09 22:45:07 +00:00
contrib Pull in r365760 from upstream lld trunk (by Fangrui Song): 2019-07-13 15:04:30 +00:00
crypto Complete LOCAL_PEERCRED support. Cache pid of the remote process in the 2019-05-30 14:24:26 +00:00
etc Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
gnu powerpc: Transition to Secure-PLT, like most other OSs (Toolchain part) 2019-06-25 02:35:22 +00:00
include Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
kerberos5 Fix generation of krb5-config with LC_CTYPE=*.UTF-8 2019-07-01 11:47:45 +00:00
lib Add arm_sync_icache() and arm_drain_writebuf() sysarch syscall wrappers. 2019-07-13 15:34:29 +00:00
libexec Limit access to system accounting files. 2019-07-13 16:07:38 +00:00
release picobsd: also exclude .git where we exclude .svn today 2019-06-27 13:31:55 +00:00
rescue Remove unused defines since r147075 2019-07-12 04:44:50 +00:00
sbin Add device type NVME and device type MMCSD to get_device_type 2019-07-13 03:22:28 +00:00
secure Merge OpenSSL 1.1.1c. 2019-05-28 21:54:12 +00:00
share Provide protection against starvation of the ll/sc loops when accessing userpace. 2019-07-12 18:43:24 +00:00
stand Allow efi loader to get network params from uboot 2019-07-12 00:54:20 +00:00
sys Remove a stale comment. 2019-07-13 15:53:28 +00:00
targets Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
tests Correct definitions in sys.opencrypto.runtests.main for 32bit platform 2019-07-10 01:08:08 +00:00
tools Save the last callout function executed on each CPU 2019-07-03 19:22:44 +00:00
usr.bin Fix layout. -C needs to be styled as a flag here, not as a new list item. 2019-07-12 21:19:47 +00:00
usr.sbin bhyve: Create EUI64 for NVMe namespaces 2019-07-13 12:48:28 +00:00
.arcconfig
.arclint
.cirrus.yml Cirrus-CI: pass OVMF env var to test script for upcoming changes 2019-04-11 13:01:26 +00:00
.clang-format Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore
COPYRIGHT Happy New Year 2019! 2019-01-01 00:25:25 +00:00
LOCKS
MAINTAINERS Update/reformat maintainer entries that I am a part of 2019-04-29 18:48:43 +00:00
Makefile Modernize the MAKE_JUST_KERNELS hint in the top-level makefile. 2019-05-24 15:45:43 +00:00
Makefile.inc1 Add head(1) to native-xtools so that it can be used in qemu-user jails 2019-06-20 13:24:58 +00:00
Makefile.libcompat Build lib32 libl. The library is built from usr.bin/lex/lib. It would be 2019-06-29 17:01:56 +00:00
Makefile.sys.inc
ObsoleteFiles.inc Add vm_page_hold.9 to ObsoleteFiles.inc. 2019-07-11 02:15:50 +00:00
README
README.md
UPDATING Fixup UPDATING text for r349253 2019-06-21 00:33:45 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

sys/<arch>/conf Kernel configuration files. GENERIC is the configuration
		used in release builds. NOTES contains documentation of
		all possible entries.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html