Repository navigation
Replies: 3 comments 2 replies
|
I don't know about a heap about the kernel keyring, and don't have much time right now but wanted to give an answer quickly now while I have a few minutes. I'm pretty sure turnstile doesn't create the dinit user-instance daemon in the login session, but then, I don't think it could (you want one dinit per user, not one per session). The problem is that kernel concept of sessions don't really correspond to user sessions; they're tied to terminals/logins, i.e. each time you login it's a new session; this doesn't match common usage where people log in multiple times on different virtual terminals.
I think this still isolates keys at the user-id level, so it's not really weakening security in any significant way, especially if you only use one session anyway. But I'm not 100% sure about this. |
|
It's an attack surface thing. "More secure" doesn't mean "perfect", it just means "better." The user session key space closes an avenue of attack. Viruses, worms, and remote hacks would have to intentionally attack a user session by being launched by the user, instead of starting a background worker which snoops. Many of the worms we see for Linux attack system services -- root, if they can get it. Anyhoo, this is getting off topic and isn't anything dinit can do anything about. Thanks for the answer. |
Yep, I understand that. My point was about the utility trade-off. But, I'm coming at it from the perspective that I want a single user session manager instance shared between multiple logins, which is probably not your position (fair enough).
Unfortunately, yes. |
Uh oh!
There was an error while loading. Please reload this page.
The context is the kernel keyring.
I am running Artix, so dinit is running as root. Session management is via turnstiled and the user dinit is hooked in through Artix's(?) turnstile-dinit package. Everything seems to work fine, and the user dinit's being launched.
However, I have an issue in that the user dinit services are not in the same session as the X session, which means they don't share the same kernel keyring session. This means some of my secret-service software doesn't work. Because the dinit daemon is in a different session, starting a service via dinitctl from the right session doesn't help.
I have a desktop which is Arch, and so systemd; on that, I start dinit from the window manager. I could uninstall (or figure out how to disable) turnstile-dinit, as a work-around. I could also weaken my security and set my system up to use the kernel keyring user space (instead of the session). So I have work-arounds. They both feel kind of hacky (or icky, in the second case), and I'm curious if there's a better way to do this.
I suspect this may be a turnstile or seatd question, but I also suspect the answer is going to be that if I want to access the session key ring, I'm going to have to fork the user dinit from the window manager. I am asking because I'm hoping there's an answer which allows the seat manager to fork the user dinit.
All reactions