Forskjellen mellom su og sudo og hvordan konfigurere sudo i Linux


Linux-systemet er mye sikret enn noen av sine motparter. En av måtene å implementere sikkerhet i Linux på er brukeradministrasjonspolicyen og brukertillatelsen, og vanlige brukere er ikke autorisert til å utføre noen systemoperasjoner.

Hvis en normal bruker trenger å utføre systemomfattende endringer, må han enten bruke «su»- eller «sudo»-kommandoen.

MERK – Denne artikkelen er mer anvendelig for Ubuntu-baserte distribusjoner, men også for de fleste populære Linux distribusjoner.

"su" kontra "sudo"

«su» tvinger deg til å dele rootpassordet med andre brukere, mens «sudo» gjør det mulig å utføre systemkommandoer uten root-passord. 'sudo' lar deg bruke ditt eget passord til å utføre systemkommandoer, dvs. delegerer systemansvar uten root passord.

Hva er "sudo"?

'sudo' er en root binær setuid, som utfører root-kommandoer på vegne av autoriserte brukere og brukerne må angi sitt eget passord for å utføre systemkommando etterfulgt av 'sudo'.

Hvem kan utføre "sudo"?

Vi kan kjøre '/usr/sbin/visudo' for å legge til/fjerne listen over brukere som kan utføre 'sudo'.

sudo /usr/sbin/visudo

Et skjermbilde av '/usr/sbin/visudo'-filen ser omtrent slik ut:

sudo-listen ser ut som strengen nedenfor, som standard:

root ALL=(ALL) ALL

Merk: Du må være root for å redigere /usr/sbin/visudo fil.

Gir sudo-tilgang

I mange situasjoner finner Systemadministrator, spesielt ny i feltet, strengen "root ALL=(ALL) ALL" som en mal og gir ubegrenset tilgang til andre som kan være potensielt svært skadelig.

Å redigere «/usr/sbin/visudo»-filen til noe som mønsteret nedenfor kan virkelig være veldig farlig, med mindre du tror alle de oppførte brukerne fullstendig.

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

Parametre for sudo

En riktig konfigurert 'sudo' er veldig fleksibel og antall kommandoer som må kjøres kan være nøyaktig konfigurert.

Syntaksen til den konfigurerte «sudo»-linjen er:

User_name Machine_name=(Effective_user) command

Syntaksen ovenfor kan deles inn i fire deler:

  1. Brukernavn: Dette er navnet på «sudo»-brukeren.
  2. Maskinnavn: Dette er vertsnavnet der «sudo»-kommandoen er gyldig. Nyttig når du har mange vertsmaskiner.
  3. (Effective_user): Den "Effektive brukeren" som har tillatelse til å utføre kommandoene. Denne kolonnen lar deg tillate brukere å utføre systemkommandoer.
  4. Kommando: kommando eller et sett med kommandoer som brukeren kan kjøre.

Foreslått lesing: 10 nyttige Sudoers-konfigurasjoner for å sette 'sudo' i Linux

Noen av situasjonene og deres tilsvarende «sudo»-linje:

Q1. Du har et bruker merke som er en databaseadministrator. Du skal bare gi ham all tilgang på databaseserver (beta.database_server.com), og ikke på noen vert.

For situasjonen ovenfor kan 'sudo'-linjen skrives som:

mark beta.database_server.com=(ALL) ALL

Q2. Du har en bruker «tom» som skal utføre systemkommando som en annen bruker enn root på samme databaseserver, forklart ovenfor.

For situasjonen ovenfor kan 'sudo'-linjen skrives som:

mark beta.database_server.com=(tom) ALL

Q3. Du har en sudo-bruker «cat» som skal kjøre kommandoen « bare hund'.

For å implementere situasjonen ovenfor, kan vi skrive "sudo" som:

mark beta.database_server.com=(cat) dog

Q4. Hva om brukeren må gis flere kommandoer?

Hvis antallet kommandoer som brukeren skal kjøre er under10, kan vi plassere alle kommandoene ved siden av, med mellomrom mellom dem, som vist nedenfor:

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

Hvis denne kommandolisten varierer i forhold til området, der det bokstavelig talt ikke er mulig å skrive hver kommando manuelt, må vi bruke aliaser. Aliaser! Ja, Linux-verktøyet der en lang kommando eller en liste med kommandoer kan refereres til som et lite og enkelt nøkkelord.

Noen få alias eksempler, som kan brukes i stedet for oppføring i konfigurasjonsfilen «sudo».

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

Det er mulig å spesifisere en systemgrupper, i stedet for brukere, som tilhører den gruppen bare ved å suffikse « som nedenfor:

%apacheadmin WEBSERVERS=(www) APACHE

Sp5. Hva med å utføre en «sudo»-kommando uten å angi passord?

Vi kan utføre en «sudo»-kommando uten å skrive inn passord ved å bruke «NOPASSWD»-flagget.

adam ALL=(ALL) NOPASSWD: PROCS

Her kan brukeren ‘adam’ utføre alle kommandoenealiased under “PROCS ”, uten å skrive inn passord.

Foreslått lesing: La Sudo fornærme deg når du skriver inn feil passord

«sudo» gir deg et robust og trygt miljø med massevis av fleksibilitet sammenlignet med «su». Dessuten er «sudo»-konfigurasjonen enkel. Noen Linux-distribusjoner har «sudo» aktivert som standard, mens de fleste av dagens distroer krever at du aktiverer det som et sikkerhetstiltak.

For å legge til en bruker (bob) til sudo, kjør kommandoen nedenfor som root.

adduser bob sudo

Det er alt for nå. Jeg vil være her igjen med en annen interessant artikkel. Inntil da følg med og koblet til Tecmint. Ikke glem å gi oss din verdifulle tilbakemelding i kommentarfeltet.