FreeBSD development seems lost

In addition to what you listed don't forget the importance of code reviews, all open at reviews.freebsd.org. That's where quite a bit of detail is effectively decided. On actual already existing code, not theorizing.
Yes, reviews.freebsd.org is also quite important and me, too, using it.
So as bugzilla.freebsd.org.

But I didn't listed in my previous post as it's basically in "details" as you mentioned, and usually not for "discussing directions of whole bunch of FreeBSD developements".
 
I have only been on the forum for a short time and I see a lot of threads like this: "FreeBSD development is going poorly" or "I am switching to another operating system."
Very pertinent point... If you're annoyed by that, the Forums do offer a way to ignore that user. There's also ways to report to mods and explain the behavior with concrete details and links.

Unfortunately, there are people that like to stir up shit instead of doing something useful. The aim of these Forums is basically "Users of FreeBSD helping other users with FreeBSD technicalities" (my words/summary, BTW).
 
I will not be surprised if 16.0 adds some sort of Flatpak-type system, or Wayland, or a systemd-style init nightmare.
Funny, considering that "Flatpak" support will bring many good mechanisms:
  • Rootless Jails (because Flatpak uses user namespaces)
  • Rootless mounts (how will you actually setup the "jail" environment and have access to user data)
  • Portals -- aka dynamic access to resources when user agrees to allow an app something (for example, Telegram Flatpak doesnt have any FS permissions at all, however when i use the file picker, only the file i select to upload goes visible to Telegram)
About Wayland -- Wayland is actually better on FreeBSD for the simple reason being the inability to run X11 without root on FreeBSD. Fun fact -- Xlibre repository had some pull requests for allowing libseat support, but whatever.

Flatpak's portability "soluition" is mostly redundant on FreeBSD due to the fact that we dont have distros, meaning one of the core advantages of Flatpak (same runtime userland) is irrelevant. However, Flatpak also utilizes portal system for resource access and provides the end-user with mechanisms to control resource access. It is very convenient to have means to control network or filesystem access using config file or even GUI. And it all runs without root.
Also you could install apps in user scope, meaning the whole app will be installed somewhere in $HOME.
pkg(8) can do that too, and we have rootless chroots, which ive tried, you can run an entire FreeBSD userland inside your homedir and install packages in it with some pkg environment variables dark magic and with chroot -n, however there are no means to control network access or to connect your user data without root.

I saw somewhere that some mech behind Flatpak (bubblewrap?) could be ran as suid on systems with user namespaces disabled, but eh......

Also would be funny and cool if someone actually ported Flatpak and used it with Linuxlator. If we throw the task of actually running apps (again, we dont have user namespaces or any other means of managing jails and their mounts without root), the whole fetch+install process of Flatpak is doable even now (look at sysutils/podman).

It will actually be a big win -- compatibility with Linux desktop stack routines is a net positive for everyone. A dumb way to migrate to FreeBSD -- users might think "oh, it supports Flatpak too, I better check it out". Imagine the moment when they realize later that FreeBSD is not some Linux distro and some program that uses low-level stuff actually fails on them after spending so much time using the system😁.

As a (if you could say that) Flatpak user ( flatpak list --app | wc -l will show 37 apps installed on my desktop) I understand the frustrations and controversy -- but please, give me a tool that can do things i wrote about. If this tool will be more minimal and easy to tweak like everything FreeBSD -- thatd be awesome, besides we can just hypothetically sandbox stuff using the host userland and some nullfs magic, a thing that I am currently trying to implement. pkg(8) will be more than enough for actually aquiring software. Flatpak is a great piece of technology, and all the weird stuff with it was actually a collection of (sometimes very clever) solutions to Linux userspace fragmentation and software installation methods. I am actually dying to use FreeBSD as a daily desktop system because it is easy to set up, maintain and understand the parts of the sytsem. I mean that when you start setting up networking, disks, whatever -- it is so easy to do i was shocked the first time i did it. On Linux its literally unbearable to do something advanced except using it as desktop system. Dont believe me? Install Fedora Server and try setting up DNS for it to resolve .local addresses in your work environment, i dare you😡. Another example -- GRUB settings. I love how FreeBSD does things, but I wish it did more things, because when FreeBSD does something -- it does it just right.

All I am saying is, instead of bashing some piece of tech because the implementation was weird, ask yourself, what problem did it actually solve in the end and how you can solve the problem better. Can't defend systemd like that though😁.

I just wish rooless jails were a thing :). Actually the whole post i wrote i wrote for saying two things -- flatpak isnt bad and i am obsessed with lack of rootless magic in FreeBSD.
 
All I am saying is, instead of bashing some piece of tech because the implementation was weird, ask yourself, what problem did it actually solve in the end and how you can solve the problem better. Can't defend systemd like that though😁.

And you should thoroughly understand FreeBSD before suggesting the project adopts useless/broken Linux cruft. Because it’s apparent you don’t.
 
I just wish rooless jails were a thing :). Actually the whole post i wrote i wrote for saying two things -- flatpak isnt bad and i am obsessed with lack of rootless magic in FreeBSD.
I use rootless containers a lot for developing but I'm not a fan of flatpaks and don't use rootless containers in production. I don't like the idea of userspace networking for production, unless we import the NetBSD rump kernel concept to reuse the same kernel code in userspace and any performance issues are ironed out.
 
And you should thoroughly understand FreeBSD before suggesting the project adopts useless/broken Linux cruft. Because it’s apparent you don’t.
I am not telling FreeBSD should adopt these exact technologies. I am telling that people behind it should evaluate why these technologies exist and what problem they had to solve. For the record here -- I dont like how Flatpak handles things such as storing runtimes and app dependencies, but it actually works in cohesive maner enough to be a flagship technology of "Desktop Linux" that i can recommend to people and not troubleshoot stuff, or for me -- again, easy and reliable sandboxing. While Linux has something, we dont have anything at all. We dont really need big userspace tools -- we just need the platform to provide these capabilities -- jail(8) utility is a perfect example, it is very usable and very minimal at the same time, rootless operation aside its the most flexible and adaptable solution out there, considering the new tech such as pkgbase and existing tech such as ZFS. Again, what I am trying to say is that Linux as a platform (kernel) has the means to solve a subset of problems that are impossible to solve on FreeBSD in its current state without resorting to insecure hacks. I want (sounds selfish :) ) to live in a perfect world, where this subset of problems can be also solved with FreeBSD the FreeBSD way.

I use rootless containers a lot for developing but I'm not a fan of flatpaks and don't use rootless containers in production. I don't like the idea of userspace networking for production, unless we import the NetBSD rump kernel concept to reuse the same kernel code in userspace and any performance issues are ironed out.
Rootless podman was sometimes a lifesaver, i should say that simple passthrough networking for rootless environments will be more than enough -- noone talks about using them in production. They are perfect for developing something or isolating user applications. User applications, not daemons or important services:). Fun fact -- systemd has podman support, right? However, they've changed the podman service file specifications, now its called "quadlet", and this "quadlet" can't be enabled for user containers, meaning you cant autostart them. Old format supports enabling though. Typical oversight of overengineered Linux userland😁.
I for one hate Flatpaks, snaps and all sorts of that cuisine on Linux.
Why can't you just give me a fat binary?
Considering portability across systems isn't a problem -- FreeBSD is FreeBSD, there are no different flavours of it, what about sandboxing:)? We have Capsicum, yes, but it requires patching the software you are running, whereas you can turn any app into Flatpak without it knowing its a Flatpak. I believe Mac OS X has a more clever solution with MAC (Mandatory Acess Control) for resources -- meaning an app is an app and not an entire system in a bottle that sometimes gets poked.
 
Funny, considering that "Flatpak" support will bring many good mechanisms:
Yeah, exactly all the abstraction I'm looking to avoid with an OS running apps! :p

All I am saying is, instead of bashing some piece of tech because the implementation was weird, ask yourself, what problem did it actually solve in the end and how you can solve the problem better. Can't defend systemd like that though😁.
I'm thinking it's solving issues of security that could be better-solved with user-side education, or delegated elsewhere (Fedora with SELinux-default apparently doesn't use it for Firefox/unconfined but would sooner seek Flatpak sandbox support for it on-top of Firefox's own sandbox, general Linux permissions... and SELinux). It's bulking up and slowing down my base installs for stuff tailored for cloud and users afraid of booting from USB and disk wipes.
 
Rootless podman was sometimes a lifesaver, i should say that simple passthrough networking for rootless environments will be more than enough -- noone talks about using them in production. They are perfect for developing something or isolating user applications. User applications, not daemons or important services:). Fun fact -- systemd has podman support, right? However, they've changed the podman service file specifications, now its called "quadlet", and this "quadlet" can't be enabled for user containers, meaning you cant autostart them. Old format supports enabling though. Typical oversight of overengineered Linux userland😁.
It's the other way around: Podman supports systemd. I myself don't use quadlets and prefer docker-compose, which podman can use.

Userspace networking is a mess. At first podman relied on the CNI plugins but CNI decided to do stuff for Kubernetes only and podman had to migrate to passt. You tell me if you can understand this hipster salad: https://passt.top/passt/about/

FreeBSD doesn't need Flatpaks. Rootless containers would be cool but only if there are no aberrations like the above.
 
I agree. At the point you are running untrusted, malicious software on your system, you have a personal issue related to your tech-savvyness. No packaging system can prevent malware from overtaking a system.
It depends if the packaging system contains a sandboxing solution. Jails in FreeBSD are nice because they're first-class citizens in the OS. Containers in Linux, OTOH, are abstractions based on namespaces & cgroups that are hardened later with SELinux/Apparmor + Seccomp + Capabilities, etc. Jails are hardened out of the box.
 
It depends if the packaging system contains a sandboxing solution. Jails in FreeBSD are nice because they're first-class citizens in the OS. Containers in Linux, OTOH, are abstractions based on namespaces & cgroups that are hardened later with SELinux/Apparmor + Seccomp + Capabilities, etc. Jails are hardened out of the box.
Even if it can protect you, it still isn't best practice to be running weird crap on your system.
 
It's the other way around: Podman supports systemd. I myself don't use quadlets and prefer docker-compose, which podman can use.

Userspace networking is a mess. At first podman relied on the CNI plugins but CNI decided to do stuff for Kubernetes only and podman had to migrate to passt. You tell me if you can understand this hipster salad: https://passt.top/passt/about/

FreeBSD doesn't need Flatpaks. Rootless containers would be cool but only if there are no aberrations like the above.
FreeBSD doesnt need Flatpaks, what I mean is that FreeBSD need some tech that made Flatpaks possible -- the only missing piece being rootless jails. We did conquer the layered nature of container stuff on Linux.
Yeah, exactly all the abstraction I'm looking to avoid with an OS running apps! :p
Look, we have www/firefox without any sandboxing, and this is very important in the day and age of bloated and potentionally dangerous Javascript, jailing the firefox to mitigate some subset of issues would mean two things:
  1. You need to launch firefox in some kind of wrapper, which utilize root atleast on two stages -- mounting stuff and actually creating the jail.
  2. You cannot dynamically attach and detach filesystem goodies to it... without root.
Fun fact -- OpenBSD has a patchset for their notorious unveil and pledge sandboxing capabilities, while they are not supported by upstream -- at least its something.

Also -- I actively use Flatpak isolation for Steam, because god knows what modern day AAA publishers do, so they have access only for my game directories, I am that paranoid, sorry. I am obsessed with software isolation -- music players should only have access to music, game launchers should only have access to games, document editors should only have access to documents (and probably no internet). Not that i want to run separate VMs for that though, moderation is key 😁 . Modern desktop software is very big, and I believe it is up to modern desktop platforms to manage all that.
I agree. At the point you are running untrusted, malicious software on your system, you have a personal issue related to your tech-savvyness. No packaging system can prevent malware from overtaking a system.
Software can be malicious not because it was designed as that, again -- Firefox and Javascript. On Windows, there were literal RCEs in farily simple messenger Telegram. Was it interntional? Not really. Can you think of Telegram as literal malware? Not really too.

It's the other way around: Podman supports systemd. I myself don't use quadlets and prefer docker-compose, which podman can use.

Userspace networking is a mess. At first podman relied on the CNI plugins but CNI decided to do stuff for Kubernetes only and podman had to migrate to passt. You tell me if you can understand this hipster salad: https://passt.top/passt/about/

FreeBSD doesn't need Flatpaks. Rootless containers would be cool but only if there are no aberrations like the above.
Yeah, Linux's "under the hood" implementations are usually very messy and hard to maintain without some arcane knowledge of tool-specific syntax and conventions. But who can rival it?
Yeah, exactly all the abstraction I'm looking to avoid with an OS running apps! :p


I'm thinking it's solving issues of security that could be better-solved with user-side education, or delegated elsewhere (Fedora with SELinux-default apparently doesn't use it for Firefox/unconfined but would sooner seek Flatpak sandbox support for it on-top of Firefox's own sandbox, general Linux permissions... and SELinux). It's bulking up and slowing down my base installs for stuff tailored for cloud and users afraid of booting from USB and disk wipes.
Thanks to FreeBSD jail(8) magic and it's limitless nature, you can actually isolate the software without resorting to having another copy of OS stored somewhere, and said software could be installed with pkg(8). I've done that, and I should probably write about it on forums. You can literally use your host / as jail root (though nullfs-moutned somewhere else) and then nullfs/tmpfs to allow/deny acess to filesystem. Everything else is standart jail magic -- networking, securelevel, whatever. I should probably finish writing the script i made just for that and publish it somewhere 👽 .

I'm thinking it's solving issues of security that could be better-solved with user-side education, or delegated elsewhere (Fedora with SELinux-default apparently doesn't use it for Firefox/unconfined but would sooner seek Flatpak sandbox support for it on-top of Firefox's own sandbox, general Linux permissions... and SELinux).
Actually we have another potentional solution for isolation and all that -- Capsicum. In it's current form it requires patching the application, but what if Capsicum could be used externally without app's knowledge about sandboxing at at all... There was a project like this (link), but it's development stopped and it had some issues, if I remember correctly. Also, again, modern MacOS -- uses its own MAC-based solution (SELinux is MAC-based solution) to manage app permissions. Rootless jails are still my wet dream though -- they are just for user app isolation, but whatever 🤪.

I come from not a position of literally wanting Flatpak or namespaces on FreeBSD (namespaces feel mostly reduntant to me), but from a position of deep passion for FreeBSD and how it makes things possible, and from a position where i want FreeBSD to rival Linux in areas only Linux (and in some cases, modern Mac OS X) is currently proficient.

If some smart dude will actually make rootless jails possible, Flatpak support is a matter of time -- just look at podman, all they had to do its to replace the linux namespaces heavy lifting to jail mechanism... and some stuff with vfs but that's my ignorance speaking...

Fun fact -- the day i was writing these posts i went to upgrade my Flatpak stuff -- and i had an error "dbus: yada yada" 🤣. And after some time it wanted $DISPLAY set in a TTY session, what an insane state of things -- just to fetch and unpack a bunch of files it is required to have dbus session set up properly. What kind of package manager is this 😂.

By the way, now FreeBSD can properly rival Linux tech in terms of running small(!) "containers" -- with pkgbase you can create OCI/Docker-like jail environments with only an app and it's dependencies without doing heavy work with recompiling the OS or resorting to hacks like it was usually done in FreeBSD land.
Problems that were solved by Docker now can be solved on FreeBSD in superior and more manageable FreeBSD way. Docker's way of doing things is insane to me, but it had a solution. Now we have it too. And there are no speicial tools for that -- same old pkg(8) and jail(8), it's just the platform gave the new ability to the user -- now its up to us to utilize it. And i wrote a guide for that :what:.

I am very eager to see usage of chroot without root ( chroot -n) and new mac_do() platform capabilities, by the way.
 
I come from not a position of literally wanting Flatpak or namespaces on FreeBSD (namespaces feel mostly reduntant to me), but from a position of deep passion for FreeBSD and how it makes things possible, and from a position where i want FreeBSD to rival Linux in areas only Linux (and in some cases, modern Mac OS X) is currently proficient.

This is the right attitude. I feel the same.

By the way, now FreeBSD can properly rival Linux tech in terms of running small(!) "containers" -- with pkgbase you can create OCI/Docker-like jail environments with only an app and it's dependencies without doing heavy work with recompiling the OS or resorting to hacks like it was usually done in FreeBSD land.

Agree.

Problems that were solved by Docker now can be solved on FreeBSD in superior and more manageable FreeBSD way. Docker's way of doing things is insane to me, but it had a solution. Now we have it too. And there are no speicial tools for that -- same old pkg(8) and jail(8),

We have podman. We only need the rootless capability part.
 
We have podman. We only need the rootless capability part
Oh yeah, I mean you now have two ways of doing jailed applications:
  • Jails made with pkgbase
  • Podman, if you need compatibility with OCI stuff
I dont remember if I mentioned this or not, Podman containers on FreeBSD arent some dark magic -- they just ported OCI layering stuff for providing the container runtime-userland-root-hierarchy, and adapted networking stack. The running part uses the same standard jail capabilities -- just launch a podman container on FreeBSD -- it's a jail, visible by jls(8) utility and you can run stuff with jexec(8). Again -- the only special sauce things that Podman has on FreeBSD are networking and managing OCI layers, they are the same jails as with jails managed by iocage, ezjail, jail(8) utility, and many other tools. May someone correct me if I am wrong though about Podman on FreeBSD internals -- maybe theres something else to it besides gluing together OCI layers into a chrootable environment and doing magic with networking. They are still jails 👽 .

We only need the rootless capability part.
From what i've seen there are multiple things that should be implemented for that:
  • Somehow allowing users to use nullfs(-like) mounts
  • UID transformation -- on jail system files would have ownership of UID 0, however on host these files should have some special, mapped UID to users' UID. Essentially each user a pool of usable range of "fake" UIDs that they could use.
By the way, it is fully possible to do three things as normal user for rootless chroots:
  • Extract the base.txz somewhere in your homedir
  • Manipulate /etc/password and his friends inside that chroot to create your own user
  • Manipulate packages with INSTALL_AS_USER environment variable on host and pkg -r $our_chroot
  • chroot -n into the new chroot (providing you enabled the necesary sysctl for it)
You can probably make pkgbase chroots too, but I didn't test that.
 
the only missing piece being rootless jails. We did conquer the layered nature of container stuff on Linux.
Just try Poudriere sometime (if you have enough metal to play with something like Poudriere). Once you get a handle on how it works, it may answer a LOT of your opinions and questions about pkg on FreeBSD.
 
Oh yeah, I mean you now have two ways of doing jailed applications:
  • Jails made with pkgbase
  • Podman, if you need compatibility with OCI stuff
I dont remember if I mentioned this or not, Podman containers on FreeBSD arent some dark magic -- they just ported OCI layering stuff for providing the container runtime-userland-root-hierarchy, and adapted networking stack. The running part uses the same standard jail capabilities -- just launch a podman container on FreeBSD -- it's a jail, visible by jls(8) utility and you can run stuff with jexec(8). Again -- the only special sauce things that Podman has on FreeBSD are networking and managing OCI layers, they are the same jails as with jails managed by iocage, ezjail, jail(8) utility, and many other tools. May someone correct me if I am wrong though about Podman on FreeBSD internals -- maybe theres something else to it besides gluing together OCI layers into a chrootable environment and doing magic with networking. They are still jails 👽 .

Of course they're jails. They must be jails. Some kind of OS primitive is needed for this. We can look at containerization as chroot on steroids or lightweight virtualization. Neither is precise.

The advantage of Podman is that you can use other OCI runtimes that do real virtualization like Kata Containers using the same command line, just replacing the OCI runtime.

From what i've seen there are multiple things that should be implemented for that:
  • Somehow allowing users to use nullfs(-like) mounts
  • UID transformation -- on jail system files would have ownership of UID 0, however on host these files should have some special, mapped UID to users' UID. Essentially each user a pool of usable range of "fake" UIDs that they could use.
By the way, it is fully possible to do three things as normal user for rootless chroots:
  • Extract the base.txz somewhere in your homedir
  • Manipulate /etc/password and his friends inside that chroot to create your own user
  • Manipulate packages with INSTALL_AS_USER environment variable on host and pkg -r $our_chroot
  • chroot -n into the new chroot (providing you enabled the necesary sysctl for it)
You can probably make pkgbase chroots too, but I didn't test that.

A lot more is needed like rootless networking.
 
Funny, considering that "Flatpak" support will bring many good mechanisms:
  • Rootless Jails (because Flatpak uses user namespaces)
  • Rootless mounts (how will you actually setup the "jail" environment and have access to user data)
  • Portals -- aka dynamic access to resources when user agrees to allow an app something (for example, Telegram Flatpak doesnt have any FS permissions at all, however when i use the file picker, only the file i select to upload goes visible to Telegram)
About Wayland -- Wayland is actually better on FreeBSD for the simple reason being the inability to run X11 without root on FreeBSD. Fun fact -- Xlibre repository had some pull requests for allowing libseat support, but whatever.

Flatpak's portability "soluition" is mostly redundant on FreeBSD due to the fact that we dont have distros, meaning one of the core advantages of Flatpak (same runtime userland) is irrelevant. However, Flatpak also utilizes portal system for resource access and provides the end-user with mechanisms to control resource access. It is very convenient to have means to control network or filesystem access using config file or even GUI. And it all runs without root.
Also you could install apps in user scope, meaning the whole app will be installed somewhere in $HOME.
pkg(8) can do that too, and we have rootless chroots, which ive tried, you can run an entire FreeBSD userland inside your homedir and install packages in it with some pkg environment variables dark magic and with chroot -n, however there are no means to control network access or to connect your user data without root.

I saw somewhere that some mech behind Flatpak (bubblewrap?) could be ran as suid on systems with user namespaces disabled, but eh......

Also would be funny and cool if someone actually ported Flatpak and used it with Linuxlator. If we throw the task of actually running apps (again, we dont have user namespaces or any other means of managing jails and their mounts without root), the whole fetch+install process of Flatpak is doable even now (look at sysutils/podman).

It will actually be a big win -- compatibility with Linux desktop stack routines is a net positive for everyone. A dumb way to migrate to FreeBSD -- users might think "oh, it supports Flatpak too, I better check it out". Imagine the moment when they realize later that FreeBSD is not some Linux distro and some program that uses low-level stuff actually fails on them after spending so much time using the system😁.

As a (if you could say that) Flatpak user ( flatpak list --app | wc -l will show 37 apps installed on my desktop) I understand the frustrations and controversy -- but please, give me a tool that can do things i wrote about. If this tool will be more minimal and easy to tweak like everything FreeBSD -- thatd be awesome, besides we can just hypothetically sandbox stuff using the host userland and some nullfs magic, a thing that I am currently trying to implement. pkg(8) will be more than enough for actually aquiring software. Flatpak is a great piece of technology, and all the weird stuff with it was actually a collection of (sometimes very clever) solutions to Linux userspace fragmentation and software installation methods. I am actually dying to use FreeBSD as a daily desktop system because it is easy to set up, maintain and understand the parts of the sytsem. I mean that when you start setting up networking, disks, whatever -- it is so easy to do i was shocked the first time i did it. On Linux its literally unbearable to do something advanced except using it as desktop system. Dont believe me? Install Fedora Server and try setting up DNS for it to resolve .local addresses in your work environment, i dare you😡. Another example -- GRUB settings. I love how FreeBSD does things, but I wish it did more things, because when FreeBSD does something -- it does it just right.

All I am saying is, instead of bashing some piece of tech because the implementation was weird, ask yourself, what problem did it actually solve in the end and how you can solve the problem better. Can't defend systemd like that though😁.

I just wish rooless jails were a thing :). Actually the whole post i wrote i wrote for saying two things -- flatpak isnt bad and i am obsessed with lack of rootless magic in FreeBSD.

OK, I'll bite.

What does "rootless" mean?
 
OK, I'll bite.

What does "rootless" mean?
Hi 🤪 !
By "rootless" I mean that a regular user can
  • Download FreeBSD in some form (base.txz or pkgbase)
  • Create a jail out of it, with its own local root
  • Connect his data (like ~/development or ~/downloads) to the jailed environment.
And all this without any root capabilities. The jail will be limited, yes (networking comes to mind first). If root is required to set up something once, say, switch some kernel option and edit pf.conf and add a whitelist of UNIX users and groups to have access to those capabilities, not that they grant any real power -- that'll be more than alright.

On platform that has, well, "rootless" stuff it works like this:
I, using Fedora, can run podman run -v -it ~/development:/mnt:Z almalinux:10 bash and ill have a "jailed" environment with AlmaLinux, in which i can install packages, set up users, I can even access the internet (my ethernet interface is shared with the container). Now, even if i mount /etc/ssh/ into that container that i ran as root, i still cant read stuff in it -- root inside the container and root on the host arent the same thing. On the host, dnf install mariadb or even cat /etc/ssh/sshd_config commands will be seen in top(1) utility to have my user, not root or whoever else. To the host, all the processes inside this "jail" are mine, not root's or anyone elses, no matter the top(1) output inside that "jail".
Sadly, most podman functionality is glued around OCI and launching each app in its own "jail".

Theres another way I could explain it -- a regular user (provided the network bridges or NAT were set up previously by root and all that stuff) can start a VM, inside this VM theres its own root. Somehow user could passthrough directories from his homedir. This "root" inside a VM cant do anything to the host outside of users' homedir. Now, imagine if instead of emulating an entire hardware stack and managing virtual disk images with partitioning inside it could be replaced by jail mechanism. Networking? Just have an option to either share it with the host or just outright disable it (that's my personal view). Again -- a user can launch a VM, how about we strip all the extra steps and orange peel with overhead.

Say someone actually implements that -- users could use jail(8), here's how I can see it being utilized:
  • Users could have their own entire OS environments for their their potentionally breaking experiments (I tend to use this to test some software suite or system setting)
  • It would be an easy way to turn off networking for user applications -- just run it in a jail with "path" option set to '/', set no UID transformation(?), its networking set to off and "command" option set to the program's path. it's actually possible as-is as root. I am not 100% sure its OK to do that in modern day, so dont take my advice.
  • Users could isolate parts of filesystem just by jailing applications, provided nullfs-like capabilities will be available to users (otherwise without them it could be kinda pointless?). Maybe I dont want my browser to have access to my ~/Documents/books for some reason 🤪
  • For sane people that use jails for running services that help earn their salary -- An argument can be made (hypothetically, plz dont beat me, I might be wrong) that after so-called "jail escape" the attacker would be left confined by standard UNIX model of users.
Why I am saying that -- I (me) think, after countless experience with jail(8) utility and jail.conf and how you do things on FreeBSD, that rootless jails would be outright nuclear, even surpassing the (currently) only platform that has it. Nothing beats jail.conf in my opinion, skip the jail.conf part -- the jail(8) utility is just something magic.

There are many questions like "mount.devfs" implementation and how would it be managed. Also, one could say that "namespaces" concept in Linux might be redundant and over-enginereed. If i remember correctly, there was a class of security issues based around actually getting root access from a user namespace due to kernel bugs, oops.

I know that there were some recent discussions about that in mailing lists, and Podman's appearance in the FreeBSD ecosystem for better or worse kinda warmed up the regularly appearing interest even more.

I think the best way to understand it would be for people to spin up a Fedora VM and just try to run different containers (apps, entire distros) as user, it just kinda works.

Kata Containers
Thank you, didnt know that. I knew that Podman is just a manager of many things, and I even saw some QEMU emulation and libvirt(?). Didn't know there was another player on the market.
Just try Poudriere sometime (if you have enough metal to play with something like Poudriere). Once you get a handle on how it works, it may answer a LOT of your opinions and questions about pkg on FreeBSD.
I am not sure how this relates to the topic of software confinement. Please, explain in response to what statement of mine you offer me to try Poudriere.
 
As unprivileged, non-root user.
You mean cascaded (stacked) jails, that bottommost one is created by root for specific non-root user (or group) and the user(s in the group) creates jails in it by him/her self?

Not sure it can be now and not sure it's worth considered or not, though.
Just trying to clarify for further meaningful discussions for anyone interested.
 
I've been around here long enough, my word as just a user carries no more weight than a newbie, so take these as my opinions only.

As cracauer@ says "code rules". What actually gets built is the only truth
These forums. I think of them as akin to "Community Support" (netgate/pfsense, opnsense, plus a billion other things) marginally "official" but more users helping users with occasional input from actual developers. I think is "by design" or at least "by the way it's evolved". Developers spending a lot of time on the forums are not "developing".

Sometimes users get things wrong, but even mistakes help other users as "don't do this".

Mailing Lists This is the best place to see where things may be going (as T-Aoki points out), a good place to interact with developers (not instant communications, but starting conversations) "-arch and -hackers" can be very enlightening to follow if you can keep up with the technical details.

"This path is wrong/I am leaving" Every forum I've ever been involved with gets these (flyfishing, gardening, curling forums even). I have never understood the why of these. Project that is costing you nothing but a little effort periodically is not taking the direction YOU want? Well get more involved, try and change. If not, fork and do your own thing (XLibre and DragonFlyBSD good examples of this). If you can't do that, just find what satisifies you and leave.

My bottom line/opinion:
An OpenSource/Free-as-in-beer project is only worth what you are willing to put into it.
 
As unprivileged, non-root user.
I think we'd need some kind of design document to discuss the concept. For instance, in Linux rootless podman is an approach to set up systemd to allow users to interact directly with systemd without root privileges. I think what we need here is to review what kind of exposures might there be should we choose to make /usr/sbin/bhyve* setuid root or better, capsicumize bhyve.

As we have no complexity of systemd -- systemd creates user contexts which users must notify systemd of their intention to run services at boot -- our users could instead automatically start their services (like RHEL users) using the @reboot crontab entry. Normally when a user logs into a Linux box systemd creates a context but if a user su's or sudo's to a service account no such context is created. Hence they must "tell" systemd to create a context for them. We have no such BS in FreeBSD. Adding end-user support to bhyve should be relatively simple. It would depend on how we'd want to do it: my vote being using capsicum.
 
Back
Top