#
272461 |
|
02-Oct-2014 |
gjb |
Copy stable/10@r272459 to releng/10.1 as part of the 10.1-RELEASE process.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256387 |
|
12-Oct-2013 |
hrs |
MFC 256385:
- Add mount.fdescfs parameter to jail(8). This is similar to mount.devfs but mounts fdescfs. The mount happens just after mount.devfs.
- rc.d/jail now displays whole error message from jail(8) when a jail fails to start.
Approved by: re (gjb)
|
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
256256 |
|
10-Oct-2013 |
hrs |
- Update rc.d/jail to use a jail(8) configuration file instead of command line options. The "jail_<jname>_*" rc.conf(5) variables for per-jail configuration are automatically converted to /var/run/jail.<jname>.conf before the jail(8) utility is invoked. This is transparently backward compatible.
- Fix a minor bug in jail(8) which prevented it from returning false when jail -r failed.
Approved by: re (glebius)
|
#
239602 |
|
22-Aug-2012 |
jamie |
Pre-separate IP addresses passed on the command line, so they can be properly parsed for interface prefixes and netmask suffixes. This was already done for the old-style (fixed) command line, but missed for the new-style.
MFC after: 1 week
|
#
237697 |
|
28-Jun-2012 |
maxim |
o Restore -u <username> getopt(3) flag somehow killed in r234712.
PR: bin/169490 Submitted by: amdmi3 MFC after: 2 weeks
|
#
236198 |
|
28-May-2012 |
jamie |
When writing the jid via the -i flag, do it right when the jail is created, before any commands run. /etc/rc.d/jail depends on this.
|
#
234988 |
|
03-May-2012 |
jamie |
Add a meta-parameter IP__NULL to enum intparam, instead of mixing enum values and zeroes. This keeps clang happy (and is just good form).
Submitted by: dim
|
#
234712 |
|
26-Apr-2012 |
jamie |
A new jail(8) with a configuration file, ultimately to replace the work currently done by /etc/rc.d/jail.
MFC after: 3 months
|
#
230495 |
|
24-Jan-2012 |
mm |
Try resolving jail path with realpath(3).
jail(8) does a chdir(2) to the given path argument. Kernel evaluates the jail path from the new cwd and not from the original cwd, which leads to undesired behavior if given a relative path.
Reviewed by: jamie MFC after: 2 weeks
|
#
222465 |
|
29-May-2011 |
bz |
Check for IPv4 or IPv6 to be available by the kernel to not provoke errors trying to query options not available. Make it possible to compile out INET or INET6 only parts.
Reviewed by: jamie Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems MFC after: 10 days
|
#
208586 |
|
27-May-2010 |
cperciva |
Change the current working directory to be inside the jail created by the jail(8) command. [10:04]
Fix a one-NUL-byte buffer overflow in libopie. [10:05]
Correctly sanity-check a buffer length in nfs mount. [10:06]
Approved by: so (cperciva) Approved by: re (kensmith) Security: FreeBSD-SA-10:04.jail Security: FreeBSD-SA-10:05.opie Security: FreeBSD-SA-10:06.nfsclient
|
#
195998 |
|
31-Jul-2009 |
jamie |
Handle kernels that don't have IPv6 by not sending an "ip6.addr" parameter unless a (numeric) IPv6 address is given. Even the default binaries built with -DINET6 will work with IPv6-less kernels. With an eye to the future, similarly handle the possibility of an IPv4-less kernel.
Approved by: re (kib), bz (mentor)
|
#
194869 |
|
24-Jun-2009 |
jamie |
Add libjail, a (somewhat) simpler interface to the jail_set and jail_get system calls and the security.jail.param sysctls.
Approved by: bz (mentor)
|
#
194708 |
|
23-Jun-2009 |
jamie |
Remove obsolete comment describing how the command line is no longer parsed.
Approved by: bz (mentor)
|
#
194494 |
|
19-Jun-2009 |
brooks |
In preparation for raising NGROUPS and NGROUPS_MAX, change base system callers of getgroups(), getgrouplist(), and setgroups() to allocate buffers dynamically. Specifically, allocate a buffer of size sysconf(_SC_NGROUPS_MAX)+1 (+2 in a few cases to allow for overflow).
This (or similar gymnastics) is required for the code to actually follow the POSIX.1-2008 specification where {NGROUPS_MAX} may differ at runtime and where getgroups may return {NGROUPS_MAX}+1 results on systems like FreeBSD which include the primary group.
In id(1), don't pointlessly add the primary group to the list of all groups, it is always the first result from getgroups(). In principle the old code was more portable, but this was only done in one of the two places where getgroups() was called to the overall effect was pointless.
Document the actual POSIX requirements in the getgroups(2) and setgroups(2) manpages. We do not yet support a dynamic NGROUPS, but we may in the future.
MFC after: 2 weeks
|
#
193929 |
|
10-Jun-2009 |
jamie |
In the old-style jail command line, explicitly set parameters from the security.jail.* sysctls since jail_set(2) doesn't do it implicitly.
Approved by: bz (mentor)
|
#
192896 |
|
27-May-2009 |
jamie |
Add support for the arbitrary named jail parameters used by jail_set(2) and jail_get(2). Jail(8) can now create jails using a "name=value" format instead of just specifying a limited set of fixed parameters; it can also modify parameters of existing jails. Jls(8) can display all parameters of jails, or a specified set of parameters. The available parameters are gathered from the kernel, and not hard-coded into these programs.
Small patches on killall(1) and jexec(8) to support jail names with jail_get(2).
Approved by: bz (mentor)
|
#
191668 |
|
29-Apr-2009 |
jamie |
With the permission of phk@ change the license on remaining jail code to a 2 clause BSD license.
Approved by: phk Approved by: bz (mentor)
|
#
185435 |
|
29-Nov-2008 |
bz |
MFp4: Bring in updated jail support from bz_jail branch.
This enhances the current jail implementation to permit multiple addresses per jail. In addtion to IPv4, IPv6 is supported as well. Due to updated checks it is even possible to have jails without an IP address at all, which basically gives one a chroot with restricted process view, no networking,..
SCTP support was updated and supports IPv6 in jails as well.
Cpuset support permits jails to be bound to specific processor sets after creation.
Jails can have an unrestricted (no duplicate protection, etc.) name in addition to the hostname. The jail name cannot be changed from within a jail and is considered to be used for management purposes or as audit-token in the future.
DDB 'show jails' command was added to aid debugging.
Proper compat support permits 32bit jail binaries to be used on 64bit systems to manage jails. Also backward compatibility was preserved where possible: for jail v1 syscalls, as well as with user space management utilities.
Both jail as well as prison version were updated for the new features. A gap was intentionally left as the intermediate versions had been used by various patches floating around the last years.
Bump __FreeBSD_version for the afore mentioned and in kernel changes.
Special thanks to: - Pawel Jakub Dawidek (pjd) for his multi-IPv4 patches and Olivier Houchard (cognet) for initial single-IPv6 patches. - Jeff Roberson (jeff) and Randall Stewart (rrs) for their help, ideas and review on cpuset and SCTP support. - Robert Watson (rwatson) for lots and lots of help, discussions, suggestions and review of most of the patch at various stages. - John Baldwin (jhb) for his help. - Simon L. Nielsen (simon) as early adopter testing changes on cluster machines as well as all the testers and people who provided feedback the last months on freebsd-jail and other channels. - My employer, CK Software GmbH, for the support so I could work on this.
Reviewed by: (see above) MFC after: 3 months (this is just so that I get the mail) X-MFC Before: 7.2-RELEASE if possible
|
#
158475 |
|
12-May-2006 |
matteo |
correct strtol(3) usage and style(9)
Reviewed by: maxim MFC after: 2 weeks
|
#
158454 |
|
11-May-2006 |
maxim |
o Style(9) the previous commit a bit.
|
#
158428 |
|
11-May-2006 |
matteo |
Add the -s option to set jail's securelevel. This is useful for jails run with non-root privileges.
PR: bin/80242 MFC after: 2 weeks
|
#
157790 |
|
16-Apr-2006 |
maxim |
o Do not mangle current session user login name with jail -u|-U.
PR: bin/94730 Submitted by: Frank Behrens MFC after: 1 month
|
#
153056 |
|
03-Dec-2005 |
philip |
Add [-J jid_file] option to write out a JidFile, similar to a PidFile, containing the jailid, path, hostname, ip and the command used to start the jail.
PR: misc/89883 Submitted by: L. Jason Godsey <lannygodsey -at- yahoo.com> Reviewed by: phk MFC after: 1 week
|
#
137808 |
|
17-Nov-2004 |
delphij |
Initialize lcap and pwd to NULL. This allows a WARNS=6 clean build, hence bump it to 6.
Note that the last commit message was not quite accurate. While the assumption exists in the code, it's not possible to have an uninitialized p there because if lflag is set when username is NULL then execution would be terminated earlier.
|
#
137807 |
|
17-Nov-2004 |
delphij |
The code path in main() dealing with lflag assumes that p was initialized with NULL, while it is not. So let's initialize it.
|
#
136051 |
|
02-Oct-2004 |
stefanf |
Pass an array of gid_t rather than an array of int to getgroups().
PR: 56646
|
#
133743 |
|
15-Aug-2004 |
maxim |
o Add -l option to jail(8) similar to su(1): before running jail'ed program under specific user's credentials, clean the environment and set only a few variables.
PR: bin/70024 Submitted by: demon MFC after: 1 month
|
#
131182 |
|
27-Jun-2004 |
pjd |
Prepare jail(8) utility for new functionality which will limit seeing status of mounted file system for jailed processes. Pass full path of jail's root directory to the kernel. mount(8) utility is doing the same thing already.
|
#
129848 |
|
29-May-2004 |
maxim |
o Implement -U flag: run command as user which exists only in jail. o getpwnam(3) returns NULL and does not set errno when the user does not exist. Bail out with "no such user" instead of "Unknown error: 0".
PR: bin/67262 Submitted by: demon (-U flag) MFC after: 3 weeks
|
#
117280 |
|
06-Jul-2003 |
charnier |
add FBSDID
|
#
113804 |
|
21-Apr-2003 |
mike |
Force output of jail ID (if necessary) before excuting the command, otherwise redirection of stdout to a file using block buffering will not complete in time.
|
#
113277 |
|
09-Apr-2003 |
mike |
o Add jls(8) for listing active jails. o Add jexec(8) to execute a command in an existing jail. o Add -j option for killall(1) to kill all processes in a specified jail. o Add -i option to jail(8) to output jail ID of newly created jail.
|
#
113206 |
|
07-Apr-2003 |
maxim |
Free login_cap(3) resources after usage.
Submitted by: demon
|
#
112972 |
|
02-Apr-2003 |
maxim |
o Fix error messages formatting, style.
Prodded by: bde Reviewed by: bde
|
#
112705 |
|
27-Mar-2003 |
maxim |
o Add -u <username> flag to jail(8): set user context before exec.
PR: bin/44320 Submitted by: Mike Matsnev <mike@po.cs.msu.su> Reviewed by: -current MFC after: 6 weeks
|
#
95258 |
|
22-Apr-2002 |
des |
Usage style sweep: spell "usage" with a small 'u'. Also change one case of blatant __progname abuse (several more remain) This commit does not touch anything in src/{contrib,crypto,gnu}/.
|
#
78723 |
|
24-Jun-2001 |
dd |
Add missing includes and sort includes.
|
#
78720 |
|
24-Jun-2001 |
dd |
Include missing header files which define functions for which gcc has builtints (e.g., exit, strcmp).
|
#
51399 |
|
19-Sep-1999 |
phk |
Add a version number field to the jail(2) argument so that future changes can be handled intelligently.
WARNING: you will need to reinstall #includes and recompile jail(8).
|
#
50479 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
46520 |
|
05-May-1999 |
phk |
Various cosmetics.
Submitted by: Rudolf Cejka <cejkar@dcse.fee.vutbr.cz> Reviewed by: phk
|
#
46432 |
|
04-May-1999 |
phk |
Fix various bogons.
Submitted by: Rudolf Cejka <cejkar@dcse.fee.vutbr.cz> Reviewed by: phk
|
#
46155 |
|
28-Apr-1999 |
phk |
This Implements the mumbled about "Jail" feature.
This is a seriously beefed up chroot kind of thing. The process is jailed along the same lines as a chroot does it, but with additional tough restrictions imposed on what the superuser can do.
For all I know, it is safe to hand over the root bit inside a prison to the customer living in that prison, this is what it was developed for in fact: "real virtual servers".
Each prison has an ip number associated with it, which all IP communications will be coerced to use and each prison has its own hostname.
Needless to say, you need more RAM this way, but the advantage is that each customer can run their own particular version of apache and not stomp on the toes of their neighbors.
It generally does what one would expect, but setting up a jail still takes a little knowledge.
A few notes:
I have no scripts for setting up a jail, don't ask me for them.
The IP number should be an alias on one of the interfaces.
mount a /proc in each jail, it will make ps more useable.
/proc/<pid>/status tells the hostname of the prison for jailed processes.
Quotas are only sensible if you have a mountpoint per prison.
There are no privisions for stopping resource-hogging.
Some "#ifdef INET" and similar may be missing (send patches!)
If somebody wants to take it from here and develop it into more of a "virtual machine" they should be most welcome!
Tools, comments, patches & documentation most welcome.
Have fun...
Sponsored by: http://www.rndassociates.com/ Run for almost a year by: http://www.servetheweb.com/
|