Ënnerscheed tëscht su a sudo a Wéi konfiguréieren sudo a Linux


Linux System ass vill geséchert wéi all vu senge Kollegen. Ee vun de Weeër fir Sécherheet am Linux ëmzesetzen ass d'Benotzermanagementpolitik an d'Benotzererlaabnis an normal Benotzer sinn net autoriséiert fir Systemoperatiounen auszeféieren.

Wann en normale Benotzer all Systembreet Ännerunge muss ausféieren, muss hien entweder 'su' oder 'sudo' Kommando benotzen.

NOTÉIERT - Dësen Artikel ass méi applicabel fir Ubuntu baséiert Verdeelungen, awer och applicabel fir déi meescht vun de populäre Linux Verdeelungen.

'su' forcéiert Iech Äert root Passwuert mat anere Benotzer ze deelen wärend 'sudo' et méiglech mécht Systembefehle ouni root Passwuert auszeféieren. 'sudo' léisst Iech Äert eegent Passwuert benotzen fir Systembefehle auszeféieren, dh delegéiert Systemverantwortung ouni root Passwuert.

'sudo' ass e root binäre setuid, deen root Kommandoen am Numm vun autoriséierte Benotzer ausféiert an d'Benotzer mussen hiert eegent Passwuert aginn fir de Systembefehl auszeféieren gefollegt vun 'sudo'.

Mir kënnen '/ usr/sbin/visudo' lafen fir d'Lëscht vun de Benotzer ze addéieren/ewechzehuelen déi 'sudo' ausféieren kënnen.

$ sudo /usr/sbin/visudo

E Screenshot vun der '/usr/sbin/visudo' Datei, gesäit sou eppes aus:

D'Sudo Lëscht gesäit aus wéi déi folgend String, par défaut:

root ALL=(ALL) ALL

Notiz: Dir musst root sinn fir /usr/sbin/visudo Datei z'änneren.

A ville Situatiounen fënnt de System Administrator, speziell nei am Feld, d'String \root ALL=(ALL) ALL als Schabloun a gëtt onbeschränkten Zougang zu aneren, wat potenziell ganz schiedlech ka sinn.

Änneren '/ usr/sbin/visudo' Datei op eppes wéi dat hei ënnendrënner Muster ka wierklech ganz geféierlech sinn, ausser Dir gleeft all déi opgelëscht Benotzer komplett.

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

E richteg konfiguréierten 'sudo' ass ganz flexibel an d'Zuel vun de Kommandoen, déi musse lafen, kënne präzis konfiguréiert sinn.

D'Syntax vun der konfiguréierter 'sudo' Linn ass:

User_name Machine_name=(Effective_user) command

Déi uewe genannte Syntax kann a véier Deeler opgedeelt ginn:

  1. User_name: Dëst ass den Numm vum 'sudo' Benotzer.
  2. Machine_name: Dëst ass den Hostnumm, an deem de Kommando 'sudo' valabel ass. Nëtzlech wann Dir vill Hostmaschinnen hutt.
  3. (Effektiv_Benotzer): Den 'Effektiven Benotzer' deen erlaabt ass d'Befehle auszeféieren. Dës Kolonn erlaabt Iech de Benotzer Systembefehl auszeféieren.
  4. Kommando: Kommando oder eng Rei vu Kommandoen déi de Benotzer ausféiere kann.

E puer vun de Situatiounen, an hir entspriechend 'sudo' Linn:

Q1. Dir hutt e Benotzermark deen en Datebank Administrateur ass. Dir sollt him all Zougang nëmmen um Datebankserver (beta.database_server.com) ubidden, an net op all Host.

Fir déi uewe genannte Situatioun kann d''sudo'Linn geschriwwe ginn wéi:

mark beta.database_server.com=(ALL) ALL

Q2. Dir hutt e Benotzer 'tom' dee soll Systembefehl als Benotzer anescht wéi Root um selwechten Datebankserver ausféieren, uewen Erklärt.

Fir déi uewe genannte Situatioun kann d''sudo'Linn geschriwwe ginn wéi:

mark beta.database_server.com=(tom) ALL

Q3. Dir hutt e sudo Benotzer 'cat' deen nëmmen de Kommando 'Hond' ausféiere soll.

Fir déi uewe genannte Situatioun ëmzesetzen, kënne mir 'sudo' schreiwen wéi:

mark beta.database_server.com=(cat) dog

Q4. Wat wann de Benotzer e puer Kommandoe muss kréien?

Wann d'Zuel vun de Kommandoen, de Benotzer soll lafen, ënner 10 ass, kënne mir all d'Befehle niewendrun setzen, mat wäissem Raum tëscht hinnen, wéi hei ënnendrënner:

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

Wann dës Lëscht vu Kommandoen op d'Gamme variéiert, wou et wuertwiertlech net méiglech ass all Kommando manuell ze tippen, brauche mir Aliasen ze benotzen. Aliasen! Jo, de Linux Utility wou e laange Kommando oder eng Lëscht vu Kommandoen als klengt an einfach Schlësselwuert bezeechent ka ginn.

E puer alias Beispiller, déi an der Plaz vun der Entrée an der 'sudo' Konfiguratiounsdatei benotzt kënne ginn.

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

Et ass méiglech e System Gruppen ze spezifizéieren, amplaz vun de Benotzer, déi zu där Grupp gehéiert just % wéi hei ënnendrënner:

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Wéi wier et mat engem 'sudo' Kommando auszeféieren ouni Passwuert anzeginn?

Mir kënnen e 'sudo' Kommando ausféieren ouni Passwuert anzeginn andeems Dir 'NOPASSWD' Fändel benotzt.

adam ALL=(ALL) NOPASSWD: PROCS

Hei kann de Benotzer 'adam' all Kommandoen ausféieren, déi ënner PROCS aliaséiert sinn, ouni Passwuert aginn.

\sudo bitt Iech e robust a séchert Ëmfeld mat vill Flexibilitéit am Verglach zu 'su'. Ausserdeem ass d'sudo Konfiguratioun einfach. E puer Linux Verdeelungen hunn \sudo als Standard aktivéiert, während déi meescht vun den Distros vun haut Iech brauchen fir et als Sécherheetsmoossnam z'aktivéieren.

Fir e Benotzer (bob) op sudo ze addéieren, fuert just de Kommando ënnen als Root.

adduser bob sudo

Dat ass alles fir elo. Ech wäert erëm hei mat engem aneren interessanten Artikel sinn. Bis dann bleift ofgeschloss a verbonne mat Tecmint. Vergiesst net eis Äre wäertvolle Feedback an eiser Kommentarsektioun ze ginn.