svn commit: r337863 - in head: sys/sys usr.sbin/jail
Alexander Leidinger
netchild at FreeBSD.org
Wed Aug 15 18:35:44 UTC 2018
Author: netchild
Date: Wed Aug 15 18:35:42 2018
New Revision: 337863
URL: https://svnweb.freebsd.org/changeset/base/337863
Log:
- Add exec hook "exec.created". This is called when the jail is
created and before exec.start is called. [1]
- Bump __FreeBSD_version.
This allows to attach ZFS datasets and various other things to be
done before any command/service/rc-script is started in the new
jail.
PR: 228066 [1]
Reviewed by: jamie [1]
Submitted by: Stefan Grönke <stefan at gronke.net> [1]
Differential Revision: https://reviews.freebsd.org/D15330 [1]
Modified:
head/sys/sys/param.h
head/usr.sbin/jail/command.c
head/usr.sbin/jail/config.c
head/usr.sbin/jail/jail.8
head/usr.sbin/jail/jail.c
head/usr.sbin/jail/jailp.h
Modified: head/sys/sys/param.h
==============================================================================
--- head/sys/sys/param.h Wed Aug 15 18:19:45 2018 (r337862)
+++ head/sys/sys/param.h Wed Aug 15 18:35:42 2018 (r337863)
@@ -60,7 +60,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1200077 /* Master, propagated to newvers */
+#define __FreeBSD_version 1200078 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
Modified: head/usr.sbin/jail/command.c
==============================================================================
--- head/usr.sbin/jail/command.c Wed Aug 15 18:19:45 2018 (r337862)
+++ head/usr.sbin/jail/command.c Wed Aug 15 18:35:42 2018 (r337863)
@@ -147,8 +147,8 @@ next_command(struct cfjail *j)
}
if (j->comstring == NULL || j->comstring->len == 0 ||
(create_failed && (comparam == IP_EXEC_PRESTART ||
- comparam == IP_EXEC_START || comparam == IP_COMMAND ||
- comparam == IP_EXEC_POSTSTART)))
+ comparam == IP_EXEC_CREATED || comparam == IP_EXEC_START ||
+ comparam == IP_COMMAND || comparam == IP_EXEC_POSTSTART)))
continue;
switch (run_command(j)) {
case -1:
Modified: head/usr.sbin/jail/config.c
==============================================================================
--- head/usr.sbin/jail/config.c Wed Aug 15 18:19:45 2018 (r337862)
+++ head/usr.sbin/jail/config.c Wed Aug 15 18:35:42 2018 (r337863)
@@ -73,6 +73,7 @@ static const struct ipspec intparams[] = {
[IP_EXEC_POSTSTOP] = {"exec.poststop", PF_INTERNAL},
[IP_EXEC_PRESTART] = {"exec.prestart", PF_INTERNAL},
[IP_EXEC_PRESTOP] = {"exec.prestop", PF_INTERNAL},
+ [IP_EXEC_CREATED] = {"exec.created", PF_INTERNAL},
[IP_EXEC_START] = {"exec.start", PF_INTERNAL},
[IP_EXEC_STOP] = {"exec.stop", PF_INTERNAL},
[IP_EXEC_SYSTEM_JAIL_USER]= {"exec.system_jail_user",
Modified: head/usr.sbin/jail/jail.8
==============================================================================
--- head/usr.sbin/jail/jail.8 Wed Aug 15 18:19:45 2018 (r337862)
+++ head/usr.sbin/jail/jail.8 Wed Aug 15 18:35:42 2018 (r337863)
@@ -706,6 +706,9 @@ The pseudo-parameters are:
.Bl -tag -width indent
.It Va exec.prestart
Command(s) to run in the system environment before a jail is created.
+.It Va exec.created
+Command(s) to run in the system environment right after a jail has been
+created, but before commands (or services) get executed in the jail.
.It Va exec.start
Command(s) to run in the jail environment when a jail is created.
A typical command to run is
Modified: head/usr.sbin/jail/jail.c
==============================================================================
--- head/usr.sbin/jail/jail.c Wed Aug 15 18:19:45 2018 (r337862)
+++ head/usr.sbin/jail/jail.c Wed Aug 15 18:35:42 2018 (r337863)
@@ -98,6 +98,7 @@ static const enum intparam startcommands[] = {
IP_MOUNT_PROCFS,
IP_EXEC_PRESTART,
IP__OP,
+ IP_EXEC_CREATED,
IP_VNET_INTERFACE,
IP_EXEC_START,
IP_COMMAND,
Modified: head/usr.sbin/jail/jailp.h
==============================================================================
--- head/usr.sbin/jail/jailp.h Wed Aug 15 18:19:45 2018 (r337862)
+++ head/usr.sbin/jail/jailp.h Wed Aug 15 18:35:42 2018 (r337863)
@@ -88,6 +88,7 @@ enum intparam {
IP_EXEC_POSTSTOP, /* Commands run outside jail after removing */
IP_EXEC_PRESTART, /* Commands run outside jail before creating */
IP_EXEC_PRESTOP, /* Commands run outside jail before removing */
+ IP_EXEC_CREATED, /* Commands run outside jail right after it was started */
IP_EXEC_START, /* Commands run inside jail on creation */
IP_EXEC_STOP, /* Commands run inside jail on removal */
IP_EXEC_SYSTEM_JAIL_USER,/* Get jail_user from system passwd file */
More information about the svn-src-head
mailing list