On 11 Feb 2019, at 17:23, James Gritton wrote:

On 2019-02-11 08:48, Michael W. Lucas wrote:
Sadly, my google-fu has turned up thousands of man pages but no real
discussion on this.

According to init(8), you can run init inside a jail.

If init is run in a jail, the security level of the "host system" will not be affected. Part of the information set up in the kernel to support a jail is a per-jail security level. This allows running a higher security level inside of a jail than that of the host system. See
     jail(8) for more information about jails.


If you actually try, though, the jail dies:

storm~;jail -vc loghost
loghost: run command: /sbin/ifconfig jailether inet 198.51.100.225 netmask
255.255.255.255 alias
loghost: run command: /sbin/mount -t devfs -oruleset=4 . /jail/loghost/dev
loghost: run command: logger trying to start jail loghost...
loghost: jail_set(JAIL_CREATE) persist name=loghost path=/jail/loghost
host.hostname=loghost.mwl.io ip4.addr=19 8.51.100.225
loghost: created
loghost: run command in jail: /sbin/init
jail: loghost: /sbin/init: failed
loghost: removed
loghost: run command: /sbin/umount /jail/loghost/dev
loghost: run command: /sbin/ifconfig jailether inet 198.51.100.225 netmask
255.255.255.255 -alias

Is that init(8) text left over from an earlier jail incarnation? Or is
there some other way to run init in a jail?

And WHY would you run init in a jail?

Interesting - I wonder how long it's been since init worked inside jails. From the look of your error messages, probably not since devfs started being used. I wasn't even aware the init(8) had anything to say on the matter, but it's clearly erroneous.

Ken Smith added that message to init(8) 15 years ago and from the sounds of it, I think it was more related to securelevels.



AS to why it would be good to have a per-jail init, there would be a few advantages. Orphaned processes could then reparent to the jail's init instead of the real init, and the jail root could easily reboot jails. Doing it right would require presenting jailed init as pid 1, but that's not really very hard.

It’s not just PID 1 but yeah; I have open reviews (which I should update) from the vps branch to do a virtualised pid space, real init to jails along with it, console, and then init would also manage ttys, .. I need to work on the management bits from the host side to make it a real thing (ps, kill, etc. to work with a (jid, pid) combination as jexec won’t work anymore (possible collisions etc). But that’s unrelated to this thread.


/bz
_______________________________________________
freebsd-jail@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-jail
To unsubscribe, send any mail to "freebsd-jail-unsubscr...@freebsd.org"

Reply via email to