Forskellen mellem su og sudo og hvordan man konfigurerer sudo i Linux


Linux System er meget sikret end nogen af dets modstykker. En af måderne til at implementere sikkerhed i Linux er brugerstyringspolitikken og brugertilladelsen, og normale brugere er ikke autoriserede til at udføre nogen systemhandlinger.

Hvis en normal bruger har brug for at foretage ændringer i hele systemet, skal han bruge kommandoen enten 'su' eller 'sudo'.

BEMÆRK - Denne artikel er mere anvendelig til Ubuntu-baserede distributioner, men gælder også for de fleste af de populære Linux-distributioner.

'Su' tvinger dig til at dele din rodadgangskode til andre brugere, mens 'sudo' gør det muligt at udføre systemkommandoer uden root adgangskode. 'Sudo' lader dig bruge din egen adgangskode til at udføre systemkommandoer, dvs. delegerer systemansvar uden root adgangskode.

'Sudo' er en rod binær setuid , der udfører rodkommandoer på vegne af autoriserede brugere, og brugerne skal indtaste deres egen adgangskode for at udføre systemkommando efterfulgt af 'sudo'.

Vi kan køre '/ usr/sbin/visudo' for at tilføje/fjerne listen over brugere, der kan udføre 'sudo'.

$ sudo /usr/sbin/visudo

Et skærmbillede af '/ usr/sbin/visudo' fil ser sådan ud:

Sudo-listen ligner som standard nedenstående streng:

root ALL=(ALL) ALL

Bemærk: Du skal være root for at redigere/usr/sbin/visudo-fil.

I mange situationer finder systemadministratoren, specielt ny i feltet, strengen “root ALL = (ALL) ALL” som en skabelon og giver ubegrænset adgang til andre, som potentielt kan være meget skadelige.

Redigering af '/ usr/sbin/visudo' -fil til noget som nedenstående mønster kan virkelig være meget farligt, medmindre du tror på alle de anførte brugere fuldstændigt.

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

En korrekt konfigureret 'sudo' er meget fleksibel, og antallet af kommandoer, der skal køres, kan konfigureres nøjagtigt.

Syntaksen for konfigureret 'sudo' linje er:

User_name Machine_name=(Effective_user) command

Ovenstående syntaks kan opdeles i fire dele:

  1. Brugernavn: Dette er navnet på 'sudo' bruger.
  2. Machine_name: Dette er værtsnavnet, hvor kommandoen 'sudo' er gyldig. Nyttigt, når du har mange værtsmaskiner.
  3. (Effektiv_bruger): Den 'Effektive bruger', der har tilladelse til at udføre kommandoerne. Denne kolonne giver dig mulighed for at brugere udfører systemkommandoer.
  4. Kommando: kommando eller et sæt kommandoer, som brugeren kan køre.

Nogle af situationerne og deres tilsvarende 'sudo' linje:

Q1. Du har et brugermærke, der er en databaseadministrator. Du formodes kun at give ham al adgang på databaseserver (beta.database_server.com) og ikke på nogen vært.

I ovenstående situation kan 'sudo' -linjen skrives som:

mark beta.database_server.com=(ALL) ALL

Q2. Du har en bruger ‘tom’, der formodes at udføre systemkommandoen som anden bruger end root på den samme databaseserver ovenfor forklaret.

I ovenstående situation kan 'sudo' -linjen skrives som:

mark beta.database_server.com=(tom) ALL

Q3. Du har en sudo-bruger 'kat', som kun skal køre kommando 'hund'.

For at implementere ovenstående situation kan vi skrive 'sudo' som:

mark beta.database_server.com=(cat) dog

Q4. Hvad hvis brugeren skal have flere kommandoer?

Hvis antallet af kommandoer, som brugeren skal køre, er under 10, kan vi placere alle kommandoerne ved siden af, med hvidt mellemrum imellem dem, som vist nedenfor:

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

Hvis denne liste over kommandoer varierer fra rækkevidde, hvor det bogstaveligt talt ikke er muligt at skrive hver kommando manuelt, skal vi bruge alias . Aliaser! Ja Linux-værktøjet, hvor en langvarig kommando eller en kommandoliste kan henvises til som et lille og let nøgleord.

Et par alias eksempler, som kan bruges i stedet for indtastning i 'sudo' konfigurationsfil.

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 muligt at specificere en systemgruppe i stedet for brugere, der hører til den gruppe, der bare tilføjes med '%' som nedenfor:

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Hvad med at udføre en 'sudo' -kommando uden at indtaste adgangskode?

Vi kan udføre en 'sudo' kommando uden at indtaste adgangskoden ved hjælp af 'NOPASSWD' flag.

adam ALL=(ALL) NOPASSWD: PROCS

Her kan brugeren 'adam' udføre alle kommandoer, der er alias under "PROCS" uden at indtaste adgangskode.

"Sudo" giver dig et robust og sikkert miljø med masser af fleksibilitet sammenlignet med 'su'. Desuden er "sudo" konfiguration let. Nogle Linux-distributioner har "sudo" aktiveret som standard, mens de fleste distroer i dag har brug for dig for at aktivere det som et sikkerhedsmål.

For at tilføje en bruger (bob) til sudo skal du bare køre nedenstående kommando som root.

adduser bob sudo

Det er alt for nu. Jeg kommer her igen med en anden interessant artikel. Indtil da hold dig opdateret og tilsluttet Tecmint. Glem ikke at give os din værdifulde feedback i vores kommentarsektion.