Zoeken op website

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


Linux-systeem is beter beveiligd dan zijn tegenhangers. Een van de manieren om beveiliging in Linux te implementeren is het gebruikersbeheerbeleid en de gebruikerstoestemming, en normale gebruikers zijn niet geautoriseerd om systeembewerkingen uit te voeren.

Als een normale gebruiker systeembrede wijzigingen moet uitvoeren, moet hij de opdracht ‘su‘ of ‘sudo‘ gebruiken.

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

'su' versus 'sudo'

'su' dwingt je om je rootwachtwoord met andere gebruikers te delen, terwijl 'sudo' het mogelijk maakt om het uit te voeren systeemopdrachten zonder root wachtwoord. Met ‘sudo‘ kunt u uw eigen wachtwoord gebruiken om systeemopdrachten uit te voeren, dat wil zeggen dat u systeemverantwoordelijkheid delegeert zonder root wachtwoord.

Wat is ‘sudo’?

'sudo' is een root binair setuid, dat root-opdrachten uitvoert namens geautoriseerde gebruikers en de gebruikers moeten hun eigen wachtwoord invoeren om deze uit te voeren systeemopdracht gevolgd door 'sudo'.

Wie kan ‘sudo’ uitvoeren?

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

sudo /usr/sbin/visudo

Een schermafdruk van het ‘/usr/sbin/visudo‘ bestand ziet er ongeveer zo uit:

De sudo-lijst ziet er standaard uit als de onderstaande reeks:

root ALL=(ALL) ALL

Opmerking: je moet root zijn om /usr/sbin/visudo te kunnen bewerken bestand.

Sudo-toegang verlenen

In veel situaties vindt Systeembeheerder, die speciaal nieuw is in dit veld, de tekenreeks “root ALL=(ALL) ALL ” als een sjabloon en verleent onbeperkte toegang aan anderen, wat mogelijk potentieel zeer schadelijk.

Het bewerken van het bestand ‘/usr/sbin/visudo’ naar iets als het onderstaande patroon kan erg gevaarlijk zijn, tenzij u alle vermelde gebruikers volledig gelooft.

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

Parameters van sudo

Een goed geconfigureerde ‘sudo‘ is zeer flexibel en het aantal opdrachten dat moet worden uitgevoerd, kan nauwkeurig worden geconfigureerd.

De syntaxis van de geconfigureerde regel ‘sudo’ is:

User_name Machine_name=(Effective_user) command

De bovenstaande syntaxis kan in vier delen worden verdeeld:

  1. Gebruikersnaam: dit is de naam van de ‘sudo’-gebruiker.
  2. Machinenaam: Dit is de hostnaam, waarin de opdracht ‘sudo’ geldig is. Handig als u veel hostmachines heeft.
  3. (Effectieve_gebruiker): de ‘Effectieve gebruiker’ die de opdrachten mag uitvoeren. In deze kolom kunt u gebruikers toestaan systeemopdrachten uit te voeren.
  4. Opdracht: opdracht of een reeks opdrachten die de gebruiker kan uitvoeren.

Voorgesteld lezen: 10 nuttige Sudoers-configuraties voor het instellen van ‘sudo’ in Linux

Enkele situaties en de bijbehorende ‘sudo’ regel:

Q1. U heeft een markering als gebruiker: Databasebeheerder. Het is de bedoeling dat u hem alleen toegang geeft tot de Database Server (beta.database_server.com), en niet tot welke host dan ook.

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

mark beta.database_server.com=(ALL) ALL

Q2. Je hebt een gebruiker 'tom' die de systeemopdracht moet uitvoeren als een andere gebruiker dan root op dezelfde databaseserver, hierboven uitgelegd.

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

mark beta.database_server.com=(tom) ALL

Q3. Je hebt een sudo-gebruiker 'cat' die de opdracht ' moet uitvoeren alleen hond'.

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

mark beta.database_server.com=(cat) dog

Q4. Wat moet ik doen als de gebruiker meerdere opdrachten moet krijgen?

Als het aantal opdrachten dat de gebruiker moet uitvoeren minder dan 10 is, kunnen we alle opdrachten ernaast 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 met opdrachten varieert binnen het bereik, waarbij het letterlijk niet mogelijk is om elke opdracht handmatig te typen, moeten we aliassen gebruiken. Aliassen! Ja, het Linux-hulpprogramma waar naar een lange opdracht of een lijst met opdrachten kan worden verwezen als een klein en gemakkelijk trefwoord.

Een paar alias voorbeelden, die kunnen worden gebruikt in plaats van invoer in het ‘sudo‘ configuratiebestand.

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 in plaats van gebruikers een Systeemgroep op te geven die tot die groep behoort, met als achtervoegsel ‘%’, zoals hieronder:

%apacheadmin WEBSERVERS=(www) APACHE

V5. Wat dacht je van het uitvoeren van een 'sudo'-opdracht zonder het wachtwoord in te voeren?

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

adam ALL=(ALL) NOPASSWD: PROCS

Hier kan de gebruiker ‘adam‘ alle opdrachten uitvoeren alias onder “PROCS”, zonder een wachtwoord in te voeren.

Voorgesteld lezen: Laat Sudo je beledigen als je een verkeerd wachtwoord invoert

sudo ” biedt u een robuuste en veilige omgeving met veel flexibiliteit in vergelijking met ‘su‘. Bovendien is de configuratie van “sudo” eenvoudig. Bij sommige Linux-distributies is “sudo” standaard ingeschakeld, terwijl bij de meeste distributies van vandaag je dit als veiligheidsmaatregel moet inschakelen.

Om een gebruiker (bob) aan sudo toe te voegen, voert u gewoon de onderstaande opdracht uit als root.

adduser bob sudo

Dat is het voor nu. Ik ben hier weer met een ander interessant artikel. Blijf tot die tijd op de hoogte en verbonden met Tecmint. Vergeet niet om ons uw waardevolle feedback te geven in onze commentaarsectie.