Verschil tussen su en sudo en hoe sudo te configureren in Linux

Linux-systeem is veel veiliger dan een van zijn tegenhangers. Een manier om beveiliging in Linux te implementeren is het gebruikersbeheerbeleid en de gebruikersmachtigingen, waarbij normale gebruikers niet gemachtigd zijn om systeemhandelingen uit te voeren.

Als een normale gebruiker wijzigingen op systeemniveau moet uitvoeren, moet hij het commando ‘‘su‘ of ‘sudo‘ gebruiken.

Linux: su v/s sudo

OPMERKING – Dit artikel is meer van toepassing op op Ubuntu gebaseerde distributies, maar is ook van toepassing op de meeste populaire Linux-distributies.

‘su’ versus ‘sudo’

su‘ dwingt je om je rootwachtwoord te delen met andere gebruikers, terwijl ‘sudo‘ het mogelijk maakt systeemcommando’s uit te voeren zonder root-wachtwoord. ‘sudo‘ stelt je in staat je eigen wachtwoord te gebruiken om systeemcommando’s uit te voeren, dus taken delegeren zonder root-wachtwoord.

Wat is ‘sudo’?

sudo‘ is een root-binair setuid, dat rootcommando’s namens gemachtigde gebruikers uitvoert en de gebruikers moeten hun eigen wachtwoord invoeren om het systeemcommando uit te voeren gevolgd door ‘sudo‘.

Wie kan ‘sudo’ uitvoeren?

We kunnen ‘/usr/sbin/visudo‘ uitvoeren om de lijst van gebruikers toe te voegen/verwijderen die ‘sudo‘ kunnen uitvoeren.

$ sudo /usr/sbin/visudo

A screen shot of ‘/usr/sbin/visudo‘ file, looks something like this:

De sudo lijst ziet er standaard uit als de onderstaande string:

root ALL=(ALL) ALL

Let op: U moet root zijn om het /usr/sbin/visudo bestand te bewerken.

Toegang verlenen tot sudo

In vele situaties vinden Systeembeheerders, met name degenen die nieuw zijn in het vak, de string “root ALL=(ALL) ALL” als een sjabloon en verlenen onbeperkte toegang aan anderen wat potentieel zeer schadelijk kan zijn.

Het bewerken van het ‘/usr/sbin/visudo’ bestand naar iets zoals het onderstaande patroon kan echt zeer gevaarlijk zijn, tenzij u volledig vertrouwen hebt in alle genoemde gebruikers.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Parameters van sudo

A properly configured ‘sudo‘ is very flexible and number of commands that needs to be run may be precisely configured.

De syntaxis van geconfigureerde ‘sudo‘ regel is:

User_name Machine_name=(Effective_user) command

De bovenstaande syntaxis kan worden verdeeld in vier delen:

  1. Gebruikersnaam: Dit is de naam van de ‘sudo‘ gebruiker.
  2. Machine-naam: Dit is de hostnaam waarin het ‘sudo‘ commando geldig is. Handig wanneer u veel hostmachines hebt.
  3. (Effectieve gebruiker): De ‘Effectieve gebruiker’ die is toegestaan om de opdrachten uit te voeren. Deze kolom stelt u in staat gebruikers toe te staan System Commands uit te voeren.
  4. Commando: opdracht of een reeks opdrachten die de gebruiker mag uitvoeren.

Aanbevolen Lezen: 10 Handige Sudoers-configuraties voor het instellen van ‘sudo’ in Linux

Enkele situaties en hun overeenkomstige ‘sudo‘ lijn:

Q1. Je hebt een gebruiker mark die een Databasebeheerder is. Je moet hem alle toegang geven op de Database Server (beta.database_server.com) alleen, en niet op enige andere host.

Voor de bovenstaande situatie kan de ‘sudo‘ regel als volgt worden geschreven:

mark beta.database_server.com=(ALL) ALL

Q2. Je hebt een gebruiker ‘tom‘ die systeemcommando’s moet uitvoeren als een andere gebruiker dan root op dezelfde Database Server, zoals hierboven uitgelegd.

Voor de bovenstaande situatie kan de ‘sudo‘ regel als volgt worden geschreven:

mark beta.database_server.com=(tom) ALL

Q3. Je hebt een sudo-gebruiker ‘cat‘ die alleen het commando ‘dog‘ mag uitvoeren.

Om de bovenstaande situatie te implementeren, kunnen we ‘sudo’ als volgt schrijven:

mark beta.database_server.com=(cat) dog

Q4. Wat als de gebruiker toestemming moet krijgen voor meerdere commando’s?

Als het aantal commando’s dat de gebruiker mag uitvoeren minder is dan 10, kunnen we alle commando’s naast elkaar plaatsen, met witruimte ertussen, zoals hieronder weergegeven:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Als deze lijst van opdrachten varieert in bereik, waar het letterlijk niet mogelijk is om elke opdracht handmatig in te typen, moeten we aliassen gebruiken. Aliassen! Ja, de Linux-tool waar een lang-verkorte opdracht of een lijst van opdrachten kan worden aangeduid met een kleine en eenvoudige trefwoord.

A few alias Examples, which can be used in place of entry in ‘sudo‘ configuration file.

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

Het is mogelijk om een Systeemgroep op te geven, in plaats van gebruikers, die bij die groep horen door simpelweg ‘%’ toe te voegen zoals hieronder:

%apacheadmin WEBSERVERS=(www) APACHE

V5. Hoe voer je een ‘sudo‘-opdracht uit zonder wachtwoord in te voeren?

We kunnen een ‘sudo‘-opdracht uitvoeren zonder wachtwoord in te voeren door de ‘NOPASSWD‘-vlag te gebruiken.

adam ALL=(ALL) NOPASSWD: PROCS

Hier kan gebruiker ‘adam‘ alle opdrachten uitvoeren die worden gealiasd onder “PROCS”, zonder wachtwoord in te voeren.

Aanbevolen Lezen: Laat Sudo Je Beledigen Als Je Het Verkeerde Wachtwoord Invoert

sudo” biedt je een robuuste en veilige omgeving met veel flexibiliteit in vergelijking met ‘su‘. Bovendien is de configuratie van “sudo” eenvoudig. Sommige Linux-distributies hebben “sudo” standaard ingeschakeld, terwijl de meeste distributies van vandaag vereisen dat je het als een Beveiligingsmaatregel inschakelt.

Voeg een gebruiker (bob) toe aan sudo door de onderstaande opdracht als root uit te voeren.

adduser bob sudo

Dat is alles voor nu. Ik zal hier weer zijn met een ander interessant artikel. Tot dan, blijf afgestemd en verbonden met Tecmint. Vergeet niet om ons waardevolle feedback te geven in onze opmerkingensectie.

Source:
https://www.tecmint.com/su-vs-sudo-and-how-to-configure-sudo-in-linux/