Omdat ik mijn gedachten niet terug vind in de andere reacties, wil ik ze toch neerzetten.
1) Waarom mag Jan en Alleman inloggen op systemen en scripts runnen. Stap 1 bij beveiliging is het limiteren van toegang. Als niemand toegang heeft, is er ook geen probleem met sudo
Jan en alleman kan en mag inloggen op het systeem om zaken en taken uit te voeren. Dat is de essentie van een computer systeem. Als je toegang nodig hebt voor andere zaken en andere taken dan zijn daar andere protocollen voor om toegang te krijgen. Elk met een passende beveiliging. Voor informatie op halen: http en omstreken. Om bestanden op te halen: ftp/nfs/samba. En zo voorts en zo voorts.
2) Waarom lopen we op Linux en Unix nog steeds to kloten met een archaisch systeem dat maar 2 niveaus kent: alles (root) of niks (de rest). In plaats van de zeuren over de merits van sudo en doas of vv, zou er geinvesteerd moeten worden in een fatsoenlijk systeem rond het beheer van rechten.
Er zijn voor de meeste systemen, functies en protocollen maar 2 niveaus van toegang: Gebruiker en beheerder. Voor een website is er de gebruiker en de beheerder. Voor een operating systeem is er de gebruiker en de beheerder.
Bij het unix rechten systeem zijn overigens 3 niveaus aan te geven: De gebruiker, de groep en de wereld. Met daarbij de mogelijkheid om gecontroleerd tussen de groepen te bewegen. Dit kan/mag een basis zijn om role-based access of hoe dat ook genoemd word, in te richten, al stelt dat eisen aan hoe de basis daar word ingericht. Helaas is dan een matrix rechten structuur lastig in te richten.
Aan de andere kant zie ik met het gebruik van compartimentering zoals bij docker en ook bij systeem-virtualsiatie ook een scheiding van rechten ontstaan op basis van de functionaliteit: Je kan en mag in de ene docker container wel alles maar daar buiten niet.
Het nadeel van de implementaties zoals Novel die ooit heeft opgezet is dat daar best veel administatie bij komt kijken. Net zoals bij het gebruik van acl-s en dergelijke toegevoegde rechten systemen. Als je role-based-access gaat toepassen moet je beginnen met het definieren van de rollen en de bijgaande rechten en plichten. Daarbij moet je er vooral voor zorgen welke andere rol de binnen een rol geblokkeerde taken wel kan uitvoeren. Zolang niet elke taak in een rol is opgenomen of niet duidelijk is welke rol een geblokkeerde taak wel kan uitvoeren, zal er een 'do-all' root/administrator account nodig zijn. Daarbij als het rechten/plichten systeem ergens hapert, zal de rest vooral welk moeten kunnen blijven doorgaan om een kip-ei probleem te voorkomen.
Al met al heeft het rechten en plichten systeem zoals ik dat ooit bij unix en minix heb leren kennen mij nog nooit in de steek gelaten. OOk heeft het andere systemen op 1 of andere manier overleefd omdat het praktisch inzetbaar is. Misschien ook wel omdat het de beheerder in haar/zijn waarde laat zonder het onnodig te beperken.
Overigens, de keuze tussen 'inloggen als root', het gebruik van 'su', 'sudo' of 'doas' is naar mijn idee niet alleen aan het os maar ook aan de beheerder. Het account 'root' hoeft al jaren niet meer in te loggen. Het gebruik van 'su' en 'sudo' stel ik gelijk. Waarbij voor mij de betekenis "Set User" prefereert boven "SuperUser". Met beide commando's kan je namelijk ook wisselen naar een ander account, het gebruik van 'root' is slechts de default.
Toegegeven, 'doas' kende ik niet tot dit artikel. Op basis van de naam stel ik het gelijk met 'sudo' waarbij de naam netjes aangeeft dat het is om naar een andere (beperkte) gebruiker te wisselen. Als het gebruik (en vooral de configuratie) eenvoudiger is dan die van sudo dan kunnen ze wat mij betreft naast elkaar bestaan, liefst naast elkaar kunnen draaien en hoop ik dat er vertaal-scripts worden ontwikkeld om de instellingen (binnen de mogelijkheden) om te zetten.