Nobody is forcing SELinux on you, you can turn it off and that's that.
If you're on a Red Hat based system most of policy is there out of the box, providing you with pretty nice additional protection without too much tinkering.
Nobody is forcing SELinux on you, you can turn it off and that's that.
If you're on a Red Hat based system most of policy is there out of the box, providing you with pretty nice additional protection without too much tinkering.
Maybe I'm just getting old and change is starting to grate on me. But systemd does feel like everything-and-the-kitchen-sink.
As for SELinux, sure, you can turn it off. At which point it's useless. The pain begins when you actually want to use it and existing policies aren't enough. It is hugely complex. Tooling (like ausearch and audit2allow) is, erhm, not very good. Want to allow something non standard? Better be prepared to spend a couple of hours. Don't forget to turn your new policy into a module file. And then compile that into a pp file, which is another kind of module? And then don't forget to install that file. I remember administering Windows NT and 2K boxen and really hating how its policies worked, well, SELinux now makes me feel the same.
Both of these tools make a lot assumptions about how things should be done, and they're pushing these assumptions onto the user, whether or not they agree.
And hey, I get it, these are complex domains, and we should be very happy that people are giving us Free (both sense) Software in the first place. But boy, if I could pay €100 to have a sensible operating system, I would. Just not €100 per machine -_-
systemd-as-init is/was not the problem. systemd-as-kitchen-sink is where people started getting annoyed.
It needs journald (which can't ship logs off-host like rsyslog, so you needed to run rsyslog anyway), it pulled in udevd, it's doing DNS, it's doing time syncing, it's doing DHCP/IP and VXLAN(!), it has a boot manager (formerly gummiboot), it's tracking user logins, it's ….
Too. Damn. Big.
See: https://www.freedesktop.org/software/systemd/man/systemd-jou...
* https://tools.ietf.org/html/rfc5424
* https://en.wikipedia.org/wiki/Syslog
How do I send/forward/import it into my SIEM/ELK/Splunk?
I'm already using syslog for all my networking events as well as Windows logging (via a translator).
People don't hate systemd without reason.
There are many cases where it follows some course of behavior that doesn't follow typical user patterns like the principle of least surprise. Example is the dns/resolv.conf issue.
This was a few years ago, so it is very likely that the particular bug that annoyed me was solved since then. Nevertheless, the bug was so unbelievably stupid and it was not only just a coding error but also a problem caused by the wrong architecture of systemd, so I could not accept that it is possible to trust software developers that can make such mistakes.
After that bad experience, I have never touched systemd again.
Even if this was several years ago, systemd had already been in use for several years, so the bug could not be excused by systemd being experimental or something like that.
I use mostly Gentoo Linux, which fortunately does not use systemd, so I had been shielded from its problems. I had heard about some systemd-related controversies, but I had paid no attention to them. I had seen some systemd presentations, which seemed reasonable enough.
One day I was in a hurry, but I had to install Linux on a new computer. Gentoo is nice, but if you do not have a pre-prepared customized installation image, so that you have to install it from scratch, it may need a few hours for compiling everything from sources and for editing the configuration.
So I decided to install Arch Linux, which used systemd. The installation was fast and everything seemed to work OK.
Systemd was always praised for its supposedly fast boot times, but I have seen no improvement in that, compared to my carefully configured Gentoo systems. On the other hand, the computer with systemd was the first computer that I have ever encountered, among many thousands of computers, from the days of Intel 8080 and until the new Zen 3, which was slow at shutdown.
So while the boot time of systemd was OK, the shutdown time was very long, sometimes more than a minute. What is much worse, sometimes the shutdown failed, which is something that I have never experienced before or after. This was on an Intel NUC with a Skylake CPU, so it was not some esoteric, non-standard hardware.
The shutdown failed sometimes due to a race condition, because the systemd daemons exchanged some messages between themselves through dbus, and, IIRC, sometimes it happened that some daemon died before the sender expected and the sender remained stuck in attempts to send to a non-existing recipient, or maybe the dbus daemon died, so there no longer was who to relay the message.
Race conditions may happen in concurrent programming, but to have a shutdown procedure whose success depends on the success of inter-process communication, that shows that everything was ill-conceived at the highest level.
So then I said farewell to systemd, I wiped Arch and I installed Gentoo, which worked perfectly on that hardware, without systemd, but with its much simpler and more reliable openrc.
It's infuriating when your system won't shut down due to some unknown service, which systemd gives [30 seconds remaining] to quit gracefully. OK, you think, I guess it's reasonable to wait and see if it will close cleanly, so you wait. As soon as the timer hits 0, it jumps up again: [90 seconds remaining]. How are you supposed to know how long to wait? What are you supposed to do if it continues forever? All keyboard input is disabled so there is nothing you can do but hard reset your PC and hope systemd unmounted the filesystems before getting stuck.
It's just an unpleasant software.