LWN: Comments on "Sudo and its alternatives" https://lwn.net/Articles/962588/ This is a special feed containing comments posted to the individual LWN article titled "Sudo and its alternatives". en-us Thu, 06 Nov 2025 19:01:16 +0000 Thu, 06 Nov 2025 19:01:16 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Sudo and its alternatives https://lwn.net/Articles/968019/ https://lwn.net/Articles/968019/ ssokolow <blockquote>However, sudo-rs does call out to Pluggable Authentication Modules (PAM) to authenticate the user, so it can support non-local authentication schemes such as LDAP and Kerberos via the usual Linux mechanism for that.</blockquote> Also useful for <code>libpam-u2f</code> as a way to add an unblockable blinking indicator (your U2F token's hardware 'touch me' prompt) and physical access requirement for some or all attempts to sneakily use credentials gained from wetware exploits. Tue, 02 Apr 2024 19:04:01 +0000 Sudo and its alternatives https://lwn.net/Articles/963756/ https://lwn.net/Articles/963756/ q_q_p_p <div class="FormattedComment"> OpenBSD did the right thing by not name-squatting sudo.<br> </div> Mon, 26 Feb 2024 22:28:28 +0000 Sudo and its alternatives https://lwn.net/Articles/963581/ https://lwn.net/Articles/963581/ matthias <div class="FormattedComment"> <span class="QuotedText">&gt; I would love to see a C standard variant with all UBs clearly defined to safe and intuitive values</span><br> <p> What are safe and intuitive values if you do out of bounds access, use after free, data races, etc.? Most of the UB is there because it is actually UB on the hardware level.<br> <p> Of course there is some UB in C that can be reasonably defined (e.g., signed integer overflow). But most security critical bugs are memory safety errors. And these cannot be defined away. If you want to get rid of these you need ownership tracking (the rust way), garbage collection (the java way) or some other runtime tracking (e.g., only allow reference counted pointers).<br> </div> Sun, 25 Feb 2024 21:18:36 +0000 Please https://lwn.net/Articles/963463/ https://lwn.net/Articles/963463/ tedd <div class="FormattedComment"> Would you like SystemD erotica? <a href="https://www.tiltedwindmillpress.com/product/savaged-by-systemd-gratuitously-expensive-version/">https://www.tiltedwindmillpress.com/product/savaged-by-sy...</a><br> </div> Sat, 24 Feb 2024 00:26:02 +0000 Sudo and its alternatives https://lwn.net/Articles/963417/ https://lwn.net/Articles/963417/ wtarreau <div class="FormattedComment"> I just read the sudo CVE list that sudo-rs claims wouldn't affect it. I must say that I really find it boring over time to regularly read "safe reimplementation" of whatever, that are deemed safe because all the useful features were dropped. It's as if someone wrote a web server comparing itself to Apache and saying "we don't support modules and we don't even support binding to network by the way, only CGI on stdin, but look at the many CVE that are irrelevant to us".<br> <p> For example many of CVEs listed indicate "env_reset is always enabled". There are plenty of cases where you precisely need to keep your environment and disable env_reset. It just depends on the use case. Denying users' needs is probably one of the first cause of them trying to work around the limitation with less safe tools and setups. Other funny ones are "noexec bypass" which does not affect it since it does not have noexec functionality. Strictly speaking then it should be considered permanently vulnerable, or the original CVE should not be listed as a comparison. That CVE list comparison looks like a lot of marketing, "my dishwashing liquid washes better".<br> <p> So sudo-rs may be safe and useful, it just is not a safer sudo, it's just another setuid executable that allows one to do stuff. Maybe it's an extension over "doas" in fact.<br> <p> </div> Fri, 23 Feb 2024 18:36:12 +0000 Sudo and its alternatives https://lwn.net/Articles/963416/ https://lwn.net/Articles/963416/ wtarreau <div class="FormattedComment"> <span class="QuotedText">&gt; We have to make bugs harder to happen by design.</span><br> <p> No, that's the mistake that has been done for a long time and it has not helped, it transforms language bugs into logic bugs because doing the right stuff gets more difficult.<br> <p> What is needed is to make it easier to do the right thing. Due to this, bugs will be harder.<br> <p> I would love to see a C standard variant with all UBs clearly defined to safe and intuitive values (mostly what the kernel sets with all its options in fact). *That* would make bugs less likely to happen and more detectable. But others tried in the past and it always ends up in bikeshedding.<br> <p> </div> Fri, 23 Feb 2024 18:26:32 +0000 Sudo and its alternatives https://lwn.net/Articles/963320/ https://lwn.net/Articles/963320/ smcv <div class="FormattedComment"> This seems hypocritical, given how they would react if one of their competitors announced an "Excel for Linux" that was actually an unrelated spreadsheet implementation with no code in common...<br> </div> Fri, 23 Feb 2024 12:12:53 +0000 Sudo and its alternatives https://lwn.net/Articles/963316/ https://lwn.net/Articles/963316/ farnz <p>I didn't say unaudited - you can audit your external libraries as you pull them into the system. Pulling in unaudited code to a security-relevant codebase is a fool's errand, but it's still a lot easier to audit an external library that does what you need than to write a secure version yourself taking into account all the edge cases. Fri, 23 Feb 2024 10:45:20 +0000 Sudo and its alternatives https://lwn.net/Articles/963308/ https://lwn.net/Articles/963308/ mb <div class="FormattedComment"> But for some software the "potential" is higher than for others.<br> E.g. because they are written in unsafe languages or they don't use frameworks like systemd that bring applications into a known consistent startup state.<br> Just looking at actual bugs is not enough. We have done that for decades and failed miserably.<br> We have to make bugs harder to happen by design.<br> </div> Fri, 23 Feb 2024 06:35:24 +0000 Sudo and its alternatives https://lwn.net/Articles/963297/ https://lwn.net/Articles/963297/ bluca <div class="FormattedComment"> Also every single piece of software that was ever written has "potential" for bugs. It's not a useful thing to say, as it's a tautology. The useful thing is, are there any actual bugs? If so, please point them out and we'll fix them<br> </div> Fri, 23 Feb 2024 00:31:17 +0000 Sudo and its alternatives https://lwn.net/Articles/963296/ https://lwn.net/Articles/963296/ Cyberax <div class="FormattedComment"> <span class="QuotedText">&gt; as sudo has in the past due to exploitable vulnerabilities</span><br> <p> If you look at sudo vulnerabilities ( <a href="https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=sudo">https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=sudo</a> ), a significant share of them is caused by failing to properly sanitize the environment. <br> <p> uid0 is much more resilient against these kinds of attacks, because it starts from a known-good state and then drops privileges as needed. Not vice versa.<br> <p> Is it possible that uid0 missed something? Sure. But it's far less likely.<br> </div> Fri, 23 Feb 2024 00:24:40 +0000 Sudo and its alternatives https://lwn.net/Articles/963294/ https://lwn.net/Articles/963294/ marcus0x62 <div class="FormattedComment"> <span class="QuotedText">&gt; Code for all three of those is available to be cloned, so if you want to provide some proof for that statement, now would be the ideal time to do so.</span><br> <p> If you honestly believe that there is no potential for these programs to fail open - as sudo has in the past due to exploitable vulnerabilities - or if you simply do not understand what ‘potential’ means, I cannot help you.<br> </div> Fri, 23 Feb 2024 00:06:30 +0000 Sudo and its alternatives https://lwn.net/Articles/963291/ https://lwn.net/Articles/963291/ ceplm <div class="FormattedComment"> <span class="QuotedText">&gt; eventually someone pulls in an external library that does something useful but that's not part of the base language</span><br> <p> OK, that’s a good reason why NOT to use a language which allows it. Pulling external (unaudited) libraries to your authorization toolkit is just so bad idea …<br> </div> Thu, 22 Feb 2024 23:06:12 +0000 Sudo and its alternatives https://lwn.net/Articles/963286/ https://lwn.net/Articles/963286/ bookworm <div class="FormattedComment"> you are still missing one equals sign XD<br> <p> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness">https://developer.mozilla.org/en-US/docs/Web/JavaScript/E...</a><br> </div> Thu, 22 Feb 2024 22:21:03 +0000 Sudo and its alternatives https://lwn.net/Articles/963282/ https://lwn.net/Articles/963282/ farnz <p>A place that was mostly a Microsoft shop, where they'd found a way to dump out the full GPOs as JSON via some third party tool, scripted it, and written JavaScript that read in the GPOs and applied the appropriate subset as Polkit permissions. <p>Utterly insane, but possible <em>because</em> Polkit's config system was fairly flexible - and a lot better than the suggested alternative from their IT team of porting from Linux to Windows 2000 as the then-current Windows version. Thu, 22 Feb 2024 21:34:09 +0000 Sudo and its alternatives https://lwn.net/Articles/963273/ https://lwn.net/Articles/963273/ Cyberax <div class="FormattedComment"> I've written several authz engines in my career, and my personal belief is that you need an almost Turing-complete language to express authorization rules. Systems that try to do that purely declaratively always end up being horrifying messes of ad-hoc features (AWS IAM, I'm looking at YOU!).<br> <p> And if you're going to use a Turing-complete language, then JavaScript is as good as any other choice. I personally would have chosen Lua, but whatever. JS is good enough.<br> <p> Keep in mind, that it does not need to deal with untrusted source code, because policies are shipped as a part of the packages that use them. In that regard, they are similar to /etc/sudoers.<br> </div> Thu, 22 Feb 2024 20:33:43 +0000 Sudo and its alternatives https://lwn.net/Articles/963269/ https://lwn.net/Articles/963269/ flussence <div class="FormattedComment"> I'm not sure what you think you're replying to; s6-sudo is part of the service manager.<br> </div> Thu, 22 Feb 2024 19:18:29 +0000 Sudo and its alternatives https://lwn.net/Articles/963265/ https://lwn.net/Articles/963265/ lkundrak <div class="FormattedComment"> <span class="QuotedText">&gt; it's executing JavaScript code that was written by ... the local sysadmin</span><br> <p> Hello, a local sysadmin here. As someone who has once written "=" instead of "==" I can testify that JavaScript and security policies don't mix too well.<br> </div> Thu, 22 Feb 2024 18:31:45 +0000 Sudo and its alternatives https://lwn.net/Articles/963260/ https://lwn.net/Articles/963260/ zdzichu <div class="FormattedComment"> What… what are you talking about? I have few rules and each of them is couple hundred bytes logs, with copious comments included.<br> Where did you saw multi-megabyte minified polkit rules?<br> </div> Thu, 22 Feb 2024 17:44:53 +0000 Sudo and its alternatives https://lwn.net/Articles/963256/ https://lwn.net/Articles/963256/ mchouque <div class="FormattedComment"> My experience with sudo tells me the first problem isn't necessarily sudo's code by itself but the syntax used to configure it.<br> <p> I have seen so many issues with wildcards: people thinking they're writing some kind of regexes while they're really configuring globbing. Yes, it's documented as such in man 5 sudoers but I've been able to become root so many times because of that it's not even funny.<br> <p> And if you need to use wildcards and to exclude some uses/arguments, it's often a nightmare to write exclusion rules with '!'.<br> <p> <p> </div> Thu, 22 Feb 2024 16:59:21 +0000 Sudo and its alternatives https://lwn.net/Articles/963244/ https://lwn.net/Articles/963244/ MarcB <div class="FormattedComment"> Do you really not see the major difference? With sudo, you are elevating privileges out of a potentially malicious environment. <br> Even if that is handled correctly, this still requires the kernel to implement the privilege elevation functionality in the first place - something it arguably should stop doing.<br> <p> With uid0, your are branching off of a pre-existing, clean, privileged environment. No privilege elevation is needed, making whole classes of bugs impossible.<br> <p> btw, some here argue about the complexity of Polkit and Systemd, but completely ignore the complexity that exists to implement setuid/setgid in the kernel and all the hacks in ld.so, ptrace and other places to make it not obviously insecure. There also are some constraints that would not be necessary if those mechanisms would not exist in the first place. For example, unprivileged chroot would be possible (might still break some software, but the breakage would stay within the initial user account).<br> </div> Thu, 22 Feb 2024 16:33:11 +0000 Sudo and its alternatives https://lwn.net/Articles/963245/ https://lwn.net/Articles/963245/ spacefrogg <div class="FormattedComment"> The service manager already has to do everything that sudo has, just to isolate services from each other and from the rest of the system. And I practically cannot get rid of it. First, it is natural to expose this functionality in a human interface. Second, why would I trust your sudo implementation more than the service manager I already have and already need?<br> </div> Thu, 22 Feb 2024 16:17:22 +0000 Sudo and its alternatives https://lwn.net/Articles/963241/ https://lwn.net/Articles/963241/ farnz <p>I have looked at Polkit rules in the past - if you're genuinely saying that you can navigate a multi-megabyte codebase that uses a minifier to reduce it down to one file without any tooling, well then, hats off to you. <p>Maybe it was never meant to be this complex, but I've seen it done, and it would have been done in PolKitScript instead if Polkit didn't use JavaScript, just with custom tooling instead of the tools everyone uses. Thu, 22 Feb 2024 15:27:43 +0000 Sudo and its alternatives https://lwn.net/Articles/963230/ https://lwn.net/Articles/963230/ farnz <p>The ability to copy-and-paste non-I/O functionality is, however, extremely useful; I can (to choose an example) include a "JSON database" in my rules, automatically generated from a source in an interesting fashion, and with fast programmatic queries relying on indexes that come as JavaScript code. Indeed, I may even have the code to generate this already for use in (e.g.) a web front end, and I just have to tell it that I want a bigger database than it normally sends. <p>On top of that, I have syntax highlighters, lint tools, transpilers targeting JS (e.g. I could write the rules in TypeScript and transpile) and much more available to me, none of which would exist if I used PolKitScript instead. Thu, 22 Feb 2024 15:25:33 +0000 Sudo and its alternatives https://lwn.net/Articles/963239/ https://lwn.net/Articles/963239/ sionescu <div class="FormattedComment"> Just take a look at actual rules. They're so simple that you effectively don't need any of that. Some syntax highlighting is enough.<br> </div> Thu, 22 Feb 2024 15:24:48 +0000 Sudo and its alternatives https://lwn.net/Articles/963172/ https://lwn.net/Articles/963172/ atnot <div class="FormattedComment"> There's another aspect I was thinking of, which is stuff like editor integration, language servers, linters, formatters, automated refactoring etc. JS has so many of each of these that it's arguably becoming a problem. In Lua you'd be lucky to find any of these that's maintained, works with your version and is packaged in distros, nevermind being nice to use.<br> <p> As an aside, that's not just a question of userbase, but also being a language that's used to write and maintain substantial codebases. There is an absolute ton of Lua out there in the world, but most of it is written by people who wouldn't consider coding their main job, e.g. people writing narratives/quests or designing gameplay mechanics for video games. Most of that code is written in very bespoke programming environments that don't really flow back to the community and is never touched again once it works anyway. Ditto for stuff like Cloudflare's WAF rules. There's just nobody out there who cares that much about Lua code quality.<br> </div> Thu, 22 Feb 2024 15:22:36 +0000 Sudo and its alternatives https://lwn.net/Articles/963215/ https://lwn.net/Articles/963215/ sionescu <div class="FormattedComment"> <span class="QuotedText">&gt; If you're using C library bindings, then you're effectively making everything "built-in functionality" which limits you to the "language ecosystems" that can be linked into a single executable.</span><br> <p> Yes, but in this case it's mostly the C/C++ ecosystem (or whatever can produce an ELF object).<br> <p> <span class="QuotedText">&gt; (And if you're going to alllow calling external binaries, then what exactly was your point about "disallowing the loading of external libraries"?)</span><br> <p> Because the third-party libraries that would be linked into Polkit would be strictly controlled by the upstream authors of Polkit, not under the control of sysadmins, so it would be impossible to edit a Polkit rule and load arbitrary code. A very common pattern after all: define a set of core primitives that one exports into a very limited "scripting" environment, that gets interpreted and mostly allows defining some hooks.<br> </div> Thu, 22 Feb 2024 15:17:00 +0000 Sudo and its alternatives https://lwn.net/Articles/963213/ https://lwn.net/Articles/963213/ pizza <div class="FormattedComment"> <span class="QuotedText">&gt; I'd expect the environment to expose some C library bindings, so again the language ecosystem is largely unimportant.</span><br> <p> If you're using C library bindings, then you're effectively making everything "built-in functionality" which limits you to the "language ecosystems" that can be linked into a single executable.<br> <p> (And if you're going to alllow calling external binaries, then what exactly was your point about "disallowing the loading of external libraries"?)<br> <p> <p> </div> Thu, 22 Feb 2024 15:11:19 +0000 Sudo and its alternatives https://lwn.net/Articles/963212/ https://lwn.net/Articles/963212/ sionescu <div class="FormattedComment"> <span class="QuotedText">&gt; Okay, instead of loading an external LDAP (or OATH2 or whatever) authentication library with custom hooks into your local deployment, it has to be "built in".</span><br> <p> <span class="QuotedText">&gt; That arbitrary library still has to be written either way, and it's more likely to be written (ie by someone other than the original upstream) if the language chosen has a "richer ecosystem".</span><br> <p> See my comment above: <a href="https://lwn.net/Articles/963210/">https://lwn.net/Articles/963210/</a><br> <p> I'd expect the environment to expose some C library bindings, so again the language ecosystem is largely unimportant.<br> </div> Thu, 22 Feb 2024 15:03:08 +0000 Sudo and its alternatives https://lwn.net/Articles/963210/ https://lwn.net/Articles/963210/ sionescu <div class="FormattedComment"> <span class="QuotedText">&gt; If it disallows the loading of external code, then you have a serious problem - how exactly am I supposed to configure a system that uses code to configure it, if the system won't load my code?</span><br> <span class="QuotedText">&gt; If it allows loading of external code, I can bundle the external library with my code, and the system can't tell that the external library was downloaded from the Internet rather than written by me.</span><br> <p> I invite you to take a look at the docs: <a href="https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html">https://www.freedesktop.org/software/polkit/docs/latest/p...</a><br> <p> The execution environment exposes a few objects which allow defining some very limited hooks. There doesn't seem to be any support for require(), nor I/O, perhaps not even named functions. That makes it practically impossible to use third party libraries except by doing copy-and-paste of non-I/O functionality (perhaps string manipulation, etc...). <br> </div> Thu, 22 Feb 2024 15:00:34 +0000 Sudo and its alternatives https://lwn.net/Articles/963208/ https://lwn.net/Articles/963208/ pizza <div class="FormattedComment"> <span class="QuotedText">&gt; I'd expect that such a critical component would disallow the loading of external libraries (even by the sysadmins), and only expose built-in functionality to a tightly controlled execution environment. As such, the richness of the ecosystem is entirely irrelevant.</span><br> <p> Okay, instead of loading an external LDAP (or OATH2 or whatever) authentication library with custom hooks into your local deployment, it has to be "built in".<br> <p> That arbitrary library still has to be written either way, and it's more likely to be written (ie by someone other than the original upstream) if the language chosen has a "richer ecosystem". <br> <p> </div> Thu, 22 Feb 2024 14:47:51 +0000 Sudo and its alternatives https://lwn.net/Articles/963207/ https://lwn.net/Articles/963207/ farnz <p>If it disallows the loading of external code, then you have a serious problem - how exactly am I supposed to configure a system that uses code to configure it, if the system won't load my code? <p>If it allows loading of external code, I can bundle the external library with my code, and the system can't tell that the external library was downloaded from the Internet rather than written by me. <p>And the whole reason you have a configuration language for Polkit is that there's lots of different configurations that might make sense; if I have to learn PolKitScript to configure it, then I'm stuck being "the Polkit person"; if it's JavaScript, I can tell someone outside my team to write me the JavaScript for the policy that we want to implement, and simply review it, rather than having to write it as well. Thu, 22 Feb 2024 14:44:34 +0000 Sudo and its alternatives https://lwn.net/Articles/963206/ https://lwn.net/Articles/963206/ sionescu <div class="FormattedComment"> <span class="QuotedText">&gt; Firstly, I disagree that no external libraries would be used; they'd be unusual, sure, but in every system I've worked with that allows configuration via code, eventually someone pulls in an external library that does something useful but that's not part of the base language.</span><br> <p> I'd expect that such a critical component would disallow the loading of external libraries (even by the sysadmins), and only expose built-in functionality to a tightly controlled execution environment. As such, the richness of the ecosystem is entirely irrelevant.<br> <p> <span class="QuotedText">&gt; Secondly, a language with a big ecosystem correlates well with a good supply of people who can do quick hacks in that language; at my current job over half the developers have written some JavaScript before, and could usefully write a PolKit configuration as a result, while there's only 2 of us around who have written anything in Lua before.</span><br> <p> Polkit policies would only concern a very small number of people working on system integration, and the popularity of the language wouldn't be a major requirement.<br> </div> Thu, 22 Feb 2024 14:40:25 +0000 Sudo and its alternatives https://lwn.net/Articles/963158/ https://lwn.net/Articles/963158/ farnz <p>Firstly, I disagree that no external libraries would be used; they'd be unusual, sure, but in every system I've worked with that allows configuration via code, eventually someone pulls in an external library that does something useful but that's not part of the base language. For example, you might pull in a library that can directly interpret a policy document output by another system, or that can detect out-of-policy decisions and prevent them. <p>Secondly, a language with a big ecosystem correlates well with a good supply of people who can do quick hacks in that language; at my current job over half the developers have written some JavaScript before, and could usefully write a PolKit configuration as a result, while there's only 2 of us around who have written anything in Lua before. Thu, 22 Feb 2024 14:03:32 +0000 Sudo and its alternatives https://lwn.net/Articles/963155/ https://lwn.net/Articles/963155/ sionescu <div class="FormattedComment"> Why would the size of the ecosystem be relevant ? In this application, no external libraries would be used anyway.<br> </div> Thu, 22 Feb 2024 12:45:52 +0000 What about SSH? https://lwn.net/Articles/963149/ https://lwn.net/Articles/963149/ lobachevsky <div class="FormattedComment"> Thanks for mentioning this! I hadn't noticed that polkit had been split so nicely. Now I can get rid of pkexec while keeping polkitd around.<br> </div> Thu, 22 Feb 2024 10:52:58 +0000 Please https://lwn.net/Articles/963148/ https://lwn.net/Articles/963148/ smitty_one_each <div class="FormattedComment"> As an April Fool's suggestion, consider an article wherein systemd wakes up one morning and decides to devour the kernel itself.<br> <p> No, scratch that: LWN is the great place it is because of the high signal-to-noise ratio, and the aforementioned joke article is best left as a hint to the reader's imagination if inclined.<br> </div> Thu, 22 Feb 2024 10:44:01 +0000 Sudo and its alternatives https://lwn.net/Articles/963142/ https://lwn.net/Articles/963142/ atnot <div class="FormattedComment"> I personally would much rather have javascript than whatever layers of incantations e.g. PAM is doing.<br> <p> Aside from having a bad reputation with a certain smug crowd, javascript is a pretty good choice if you're going to have a plugin system. It's widespread, well known, has a decent ecosystem (unlike e.g. lua), has many implementations and is easily sandboxed (unlike e.g. python). And using a sandboxed scripting language is just way more secure, auditable and sensible in a security critical tool than the dlopening random C DSOs or execveing bash scripts shenanigans. Or worse, that in combination with some poorly defined, ever growing, adhoc config language. Which is what we would be doing otherwise. But of course none of that matters, because JavaScript is not a cool language and it's not used by the kids at the cool table, and hence it must be expunged.<br> </div> Thu, 22 Feb 2024 10:11:04 +0000 Sudo and its alternatives https://lwn.net/Articles/963136/ https://lwn.net/Articles/963136/ chris_se <div class="FormattedComment"> <span class="QuotedText">&gt; polkit which itself needs a JavaScript interpreter.</span><br> <p> While don't like that polkit switched to JavaScript either, I think the 'attack surface' claim in this context is dramatically overstated:<br> <p> 1. Nowadays <a href="https://duktape.org/">https://duktape.org/</a> is used instead of a browser engine, so polkit itself doesn't actually have that big of a footprint anymore.<br> 2. It's not like polkit is executing JavaScript code written by a potential attacker - it's executing JavaScript code that was written by the maintainers of the distribution of by the local sysadmin.<br> <p> Would I have preferred if polkit didn't go and use JavaScript? Sure. But I have neither the time nor the energy to write something better that fulfills the same need. And I think polkit is a net positive when it comes to security, because it does allow for standardized fine-grained access control for IPC. (Want to give a service on an embedded appliance the ability to reboot the appliance without giving the service complete root privileges? Trivial with systemd + polkit. Very hard to get right with other means.)<br> </div> Thu, 22 Feb 2024 08:33:51 +0000 Sudo and its alternatives https://lwn.net/Articles/963120/ https://lwn.net/Articles/963120/ bluca <div class="FormattedComment"> <span class="QuotedText">&gt; The “rant” was about how an overly complex design for a critical security problem will inevitably lead to vulnerabilities, simply because it gets harder and harder to reason about behavior accurately (or proactively find and eliminate exploitable bugs) as complexity increases.</span><br> <p> "Overly complex design" is usually a code word for "some stuff I haven't really looked into but I know I don't like", usually because "back in my day we used to punch holes in cards with a toothpick" or something along those lines.<br> <p> <span class="QuotedText">&gt; Both the screen locker and sudo/doas/uid0 have the *potential* of failing open - that is to say, to grant more privilege than they should in a failure state.</span><br> <p> Code for all three of those is available to be cloned, so if you want to provide some proof for that statement, now would be the ideal time to do so.<br> </div> Thu, 22 Feb 2024 00:24:43 +0000