Verwalte Benotzer & Gruppen, Datei Permissiounen & Attributer a Sudo Zougang op Konten aktivéieren - Deel 8


Am leschte August huet d'Linux Foundation d'LFCS Zertifizéierung (Linux Foundation Certified Sysadmin) gestart, e fuschneie Programm, deem säin Zweck ass et Individuen iwwerall an iwwerall ze erlaben en Examen ze maachen fir zertifizéiert ze ginn a Basis bis Mëttelbetriber Ënnerstëtzung fir Linux Systemer, déi enthält ënnerstëtzen Lafen Systemer a Servicer, zesumme mat allgemeng Iwwerwachung an Analyse, plus intelligent Entscheedungsprozess eng Roll ze entscheeden wann et néideg ass Problemer ze eskaléieren op méi héich Niveau Support Teams.

Kuckt w.e.g. e schnelle Bléck op de folgende Video deen eng Aféierung an de Linux Foundation Certification Program beschreift.

Dësen Artikel ass Deel 8 vun enger 10-Tutorial laang Serie, hei an dëser Sektioun wäerte mir Iech guidéieren wéi Dir Benotzer a Gruppen Permissiounen am Linux System verwalten, déi fir den LFCS Zertifizéierungsexamen erfuerderlech sinn.

Zënter Linux ass e Multi-User Betriebssystem (an deem et e puer Benotzer op verschiddene Computeren oder Terminaler erlaabt Zougang zu engem eenzege System ze kréien), musst Dir wësse wéi Dir effektiv Benotzerverwaltung ausféiert: wéi Dir addéiert, ännert, suspendéiert oder läscht Benotzerkonten, zesumme mat hinnen déi néideg Permissiounen ze ginn fir hir zougewisen Aufgaben ze maachen.

Benotzerkonten dobäizemaachen

Fir en neie Benotzerkont ze addéieren, kënnt Dir entweder vun den folgenden zwee Kommandoen als Root lafen.

# adduser [new_account]
# useradd [new_account]

Wann en neie Benotzerkont un de System bäigefüügt gëtt, ginn déi folgend Operatiounen ausgefouert.

1. Säi Heemverzeichnis gëtt erstallt (/home/username par défaut).

2. Déi folgend verstoppt Dateien ginn an den Heemverzeichnis vum Benotzer kopéiert, a gi benotzt fir Ëmweltvariablen fir seng Benotzersëtzung ze bidden.

.bash_logout
.bash_profile
.bashrc

3. E Mail Spool gëtt fir de Benotzer op /var/spool/mail/Benotzernumm erstallt.

4. E Grupp gëtt erstallt an dee selwechten Numm kritt wéi den neie Benotzerkont.

Déi komplett Kontinformatioun gëtt an der /etc/passwd Datei gespäichert. Dëse Fichier enthält e Rekord pro System Benotzerkont an huet de folgende Format (Felder sinn vun engem Colon ofgrenzt).

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]

  1. Felder [Benotzernumm] an [Kommentar] si selbstverständlech.
  2. Den x am zweete Feld weist datt de Kont geschützt ass mat engem schwaache Passwuert (an /etc/shadow), dat gebraucht gëtt fir als umellen [Benotzernumm].
  3. D'Felder [UID] an [GID] sinn ganz Zuelen déi d'Benotzer-IDentifikatioun an déi primär Gruppe-IDentifikatioun duerstellen, op déi [Benotzernumm] gehéiert respektiv.
  4. Den [Hausverzeechnes] weist den absolute Wee op [Benotzernumm] säin Heemverzeechnes un, an
  5. D'[Standard-Shell] ass d'Shell, déi dëse Benotzer zur Verfügung gestallt gëtt wann hien oder hatt um System aloggen.

Gruppinformatioun gëtt an der /etc/group Datei gespäichert. All Rekord huet de folgende Format.

[Group name]:[Group password]:[GID]:[Group members]

  1. [Gruppnumm] ass den Numm vun der Grupp.
  2. En x an [Grupppasswuert] weist datt d'Grupppasswierder net benotzt ginn.
  3. [GID]: selwecht wéi an /etc/passwd.
  4. [Grupp Memberen]: eng kommagetrennt Lëscht vu Benotzer déi Member vun [Grupp Numm] sinn.

Nodeems Dir e Kont bäigefüügt hutt, kënnt Dir déi folgend Informatioun änneren (fir e puer Felder ze nennen) mam Kommando usermod, deem seng Basissyntax vum usermod wéi follegt ass.

# usermod [options] [username]

Benotzt de –expiredate Fändel gefollegt vun engem Datum am Format JJJJ-MM-DD.

# usermod --expiredate 2014-10-30 tecmint

Benotzt déi kombinéiert -aG, oder –append –groups Optiounen, gefollegt vun enger kommagetrennter Lëscht vu Gruppen.

# usermod --append --groups root,users tecmint

Benotzt d'Optiounen -d, oder –home, gefollegt vum absolute Wee an den neien Heemverzeichnis.

# usermod --home /tmp tecmint

Benotzt –Shell, gefollegt vum Wee op déi nei Shell.

# usermod --shell /bin/sh tecmint
# groups tecmint
# id tecmint

Loosst eis all déi uewe genannte Kommandoen an engem Go ausféieren.

# usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh tecmint

Am Beispill hei uewen wäerte mir den Verfallsdatum vum tecmint Benotzerkont op den 30. Oktober 2014 setzen. Mir addéieren de Kont och an d'Root- a Benotzergrupp. Schlussendlech wäerte mir sh als Standard Shell setzen an de Standuert vum Heemverzeechnes op /tmp änneren:

Liest och:

  1. 15 Useradd Kommando Beispiller am Linux
  2. 15 Usermod Kommando Beispiller am Linux

Fir bestehend Konte kënne mir och folgend maachen.

Benotzt d'-L (Groussbuch L) oder d'–lock Optioun fir e Benotzer säi Passwuert ze spären.

# usermod --lock tecmint

Benotzt d'Optioun –u oder d'–unlock Optioun fir e Benotzer säi Passwuert ze spären dat virdru blockéiert war.

# usermod --unlock tecmint

Run déi folgend Serie vu Kommandoen fir d'Ziel z'erreechen.

# groupadd common_group # Add a new group
# chown :common_group common.txt # Change the group owner of common.txt to common_group
# usermod -aG common_group user1 # Add user1 to common_group
# usermod -aG common_group user2 # Add user2 to common_group
# usermod -aG common_group user3 # Add user3 to common_group

Dir kënnt e Grupp mat dem folgenden Kommando läschen.

# groupdel [group_name]

Wann et Dateie gëtt, déi vum group_name gehéiert, ginn se net geläscht, mä de Gruppbesëtzer gëtt op d'GID vum Grupp gesat, dee geläscht gouf.

Linux Datei Permissiounen

Nieft der Basis Liesen, Schreiwen an Ausféieren Permissiounen, déi mir an Archiving Tools an Astellung Datei Attributer diskutéiert - Deel 3 vun dëser Serie, ginn et aner manner benotzt (awer net manner wichteg) Permissiounen Astellungen, heiansdo als bezeechent. speziell Permissiounen.

Wéi d'Basis Permissiounen, déi virdru diskutéiert goufen, gi se mat enger oktal Datei gesat oder duerch e Bréif (symbolesch Notatioun) déi d'Zort vun der Erlaabnis ugeet.

Dir kënnt e Kont läschen (zesumme mat sengem Heemverzeichnis, wann et vum Benotzer am Besëtz ass, an all d'Dateien, déi do wunnen, an och de Mail Spool) mam Kommando userdel mam –remove Optioun.

# userdel --remove [username]

All Kéier wann en neie Benotzerkont an de System bäigefüügt gëtt, gëtt e Grupp mam selwechten Numm mat dem Benotzernumm als eenzege Member erstallt. Aner Benotzer kënne spéider an de Grupp bäigefüügt ginn. Ee vun den Zwecker vu Gruppen ass eng einfach Zougangskontrolle fir Dateien an aner Systemressourcen ëmzesetzen andeems Dir déi richteg Permissiounen op dës Ressourcen setzt.

Zum Beispill, ugeholl datt Dir déi folgend Benotzer hutt.

  1. Benotzer1 (primär Grupp: Benotzer1)
  2. Benotzer2 (primär Grupp: Benotzer2)
  3. Benotzer3 (Primärgrupp: Benotzer3)

Si all brauchen liesen an schreiwen Zougang zu engem Fichier mam Numm common.txt iergendwou op Ärem lokalen System, oder vläicht op engem Netzdeel deen Benotzer1 huet erstallt. Dir kënnt gebass gin eppes ze maachen wéi,

# chmod 660 common.txt
OR
# chmod u=rw,g=rw,o= common.txt [notice the space between the last equal sign and the file name]

Dëst gëtt awer nëmmen Lies an Schreif Zougang zum Besëtzer vun der Datei an de Benotzer déi Member vum Gruppbesëtzer vun der Datei sinn (user1 an dësem Fall). Nach eng Kéier, Dir kënnt versicht ginn user2 an user3 an d'Grupp user1 derbäi ze ginn, awer dat gëtt hinnen och Zougang zu de Rescht vun de Fichieren am Besëtz vum Benotzer Benotzer1 a Grupp Benotzer1.

Dëst ass wou Gruppen praktesch kommen, an hei ass wat Dir an engem Fall wéi dësem maache sollt.

Wann d'setuid Erlaabnis op eng ausführbar Datei applizéiert gëtt, ierft e Benotzer deen de Programm leeft déi effektiv Privilegien vum Proprietaire vum Programm. Well dës Approche raisonnabel Sécherheetsbedéngunge kann erhéijen, muss d'Zuel vun de Fichiere mat setuid Erlaabnis op e Minimum gehale ginn. Dir wäert wahrscheinlech Programmer mat dëser Erlaabnes-Set fannen wann e System Benotzer Zougang zu enger Datei am Besëtz vun der Root muss kréien.

Zesummefaassend ass et net nëmmen datt de Benotzer déi binär Datei ausféiere kann, awer och datt hien dat mat de Privilegien vun der Root kann. Zum Beispill, loosst eis d'Permissiounen vun /bin/passwd iwwerpréiwen. Dëse Binär gëtt benotzt fir d'Passwuert vun engem Kont z'änneren, a ännert d'/etc/shadow Datei. De Superuser kann jidderengem säi Passwuert änneren, awer all aner Benotzer sollten nëmmen hir eege änneren.

Also soll all Benotzer d'Erlaabnis hunn /bin/passwd ze lafen, awer nëmmen root kann e Kont uginn. Aner Benotzer kënnen nëmmen hir entspriechend Passwierder änneren.

Wann de setgid Bit agestallt ass, gëtt den effektiven GID vum richtege Benotzer dee vum Gruppbesëtzer. Also kann all Benotzer Zougang zu enger Datei ënner de Privilegien, déi dem Gruppbesëtzer vun esou enger Datei ginn. Zousätzlech, wann de Setgid Bit op engem Verzeechnes gesat ass, ierwen nei erstallt Dateien déiselwecht Grupp wéi de Verzeechnes, an nei erstallt Ënnerverzeechnungen ierwen och de Setgid Bit vum Elterendeel. Dir wäert héchstwahrscheinlech dës Approche benotzen wann Membere vun enger bestëmmter Grupp Zougang zu all Dateien an engem Verzeechnes brauchen, onofhängeg vun der primärer Grupp vum Dateiebesëtzer.

# chmod g+s [filename]

Fir den setgid op oktal Form ze setzen, setzt d'Nummer 2 op déi aktuell (oder gewënschte) Basisrechter vir.

# chmod 2755 [directory]

Wann de \sticky bit op Dateien gesat ass, ignoréiert Linux et just, woubäi et fir Verzeichnisser den Effekt huet datt d'Benotzer verhënnert hunn d'Dateien ze läschen oder souguer ëmbenennen, ausser de Benotzer huet de Verzeichnis, de Fichier, oder ass root.

# chmod o+t [directory]

Fir de Sticky Bit op oktal Form ze setzen, setzt d'Zuel 1 op déi aktuell (oder gewënschte) Basisrechter vir.

# chmod 1755 [directory]

Ouni de Sticky Bit, jiddereen deen an de Verzeechnes schreiwen kann kann Dateien läschen oder ëmbenennen. Aus deem Grond gëtt de Sticky Bit allgemeng an Verzeichnisser fonnt, wéi /tmp, déi weltwäit schreiwen.

Special Linux Datei Attributer

Et ginn aner Attributer déi weider Limiten op d'Operatiounen erlaben, déi op Dateien erlaabt sinn. Zum Beispill, verhënneren datt d'Datei ëmbenannt, geréckelt, geläscht oder souguer geännert gëtt. Si gi mat dem Chattr Kommando gesat a kënne mat dem lsattr Tool gekuckt ginn, wéi follegt.

# chattr +i file1
# chattr +a file2

Nodeems Dir dës zwee Kommandoen ausgeführt hutt, ass Datei1 onverännerbar (wat heescht datt et net geplënnert, ëmbenannt, geännert oder geläscht ka ginn) wärend Datei2 an den Anhang-Modus kënnt (kann nëmme ginn) oppen am Append Modus fir ze schreiwen).

Zougang zum Root Account a Sudo benotzen

Ee vun de Weeër wéi d'Benotzer Zougang zum Rootkonto kréien ass duerch Tippen.

$ su

an dann d'Root Passwuert aginn.

Wann d'Authentifikatioun geléngt, sidd Dir als root mat dem aktuellen Aarbechtsverzeichnis ageloggt wéi Dir virdru war. Wann Dir amplaz am root Heemverzeichnis plazéiert wëllt, lafen.

$ su -

a gitt dann d'Root Passwuert.

Déi uewe genannte Prozedur erfuerdert datt en normale Benotzer d'Root Passwuert kennt, wat e seriöse Sécherheetsrisiko duerstellt. Aus deem Grond kann de Sysadmin de Kommando sudo konfiguréieren fir e gewéinleche Benotzer Kommandoen als en anere Benotzer (normalerweis de Superuser) op eng ganz kontrolléiert a limitéiert Manéier auszeféieren. Also kënnen Restriktiounen op e Benotzer gesat ginn, sou datt hien et erlaabt een oder méi spezifesch privilegiéiert Kommandoen auszeféieren an keng aner.

Liest Och: Ënnerscheed tëscht su an sudo Benotzer

Fir mat sudo ze authentifizéieren, benotzt de Benotzer säin eegent Passwuert. Nodeems Dir de Kommando aginn hutt, gi mir gefrot fir eist Passwuert (net dat vum Superuser) a wann d'Authentifikatioun geléngt (a wann de Benotzer Privilegien kritt huet fir de Kommando auszeféieren), gëtt de spezifizéierte Kommando ausgefouert.

Fir Zougang zu sudo ze ginn, muss de Systemadministrator d'Datei /etc/sudoers änneren. Et ass recommandéiert dës Datei mat dem Kommando visudo z'änneren anstatt se direkt mat engem Texteditor opzemaachen.

# visudo

Dëst mécht d'/etc/sudoers Datei op mat vim (Dir kënnt d'Instruktioune verfollegen, déi an Installéieren a benotzen vim als Editor - Deel 2 vun dëser Serie fir d'Datei z'änneren).

Dëst sinn déi relevant Linnen.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin"
root        ALL=(ALL) ALL
tecmint     ALL=/bin/yum update
gacanepa    ALL=NOPASSWD:/bin/updatedb
%admin      ALL=(ALL) ALL

Loosst eis se méi no kucken.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin"

Dës Linn léisst Iech d'Verzeichnisser spezifizéieren, déi fir sudo benotzt ginn, a gëtt benotzt fir ze verhënneren datt Benotzerspezifesch Verzeichnisser benotzt ginn, wat de System schueden kann.

Déi nächst Zeilen gi benotzt fir Permissiounen ze spezifizéieren.

root        ALL=(ALL) ALL

  1. Dat éischt ALL Schlësselwuert weist datt dës Regel fir all Hosten gëlt.
  2. Den zweeten ALL weist datt de Benotzer an der éischter Kolonn Kommandoe mat de Privilegien vun all Benotzer ausféiere kann.
  3. Den drëtte ALL heescht datt all Kommando ausgefouert ka ginn.

tecmint     ALL=/bin/yum update

Wa kee Benotzer nom = Zeechen uginn ass, iwwerhëlt sudo de Root Benotzer. An dësem Fall wäert de Benotzer tecmint fäeg sinn yum Update als root auszeféieren.

gacanepa    ALL=NOPASSWD:/bin/updatedb

D'NOPASSWD Direktiv erlaabt de Benotzer gacanepa /bin/updatedb ze lafen ouni säi Passwuert aginn ze mussen.

%admin      ALL=(ALL) ALL

D'Zeeche % weist datt dës Linn fir e Grupp admin gëllt. D'Bedeitung vum Rescht vun der Zeil ass identesch mat deem vun engem normale Benotzer. Dat heescht datt Membere vun der Grupp \admin all Kommandoe wéi all Benotzer op all Hosten ausféieren.

Fir ze kucken wéi eng Privilegien Iech vum sudo ginn, benotzt d'Optioun \-l fir se opzelëschten.

PAM (Plugbar Authentifizéierungsmodule)

Pluggable Authentication Modules (PAM) bidden d'Flexibilitéit fir e spezifescht Authentifikatiounsschema op enger pro Applikatioun an/oder per Service Basis mat Moduler ze setzen. Dëst Tool, deen op all modernen Linux Verdeelungen präsent ass, huet de Problem iwwerwonnen, deen dacks vun den Entwéckler an de fréie Deeg vu Linux konfrontéiert ass, wann all Programm, deen d'Authentifikatioun erfuerdert, speziell kompiléiert muss ginn fir ze wëssen wéi een déi néideg Informatioun kritt.

Zum Beispill, mat PAM, ass et egal ob Äert Passwuert an /etc/shadow oder op engem separaten Server an Ärem Netz gespäichert ass.

Zum Beispill, wann de Loginprogramm e Benotzer muss authentifizéieren, liwwert PAM dynamesch d'Bibliothéik déi d'Funktioune fir de richtege Authentifikatiounsschema enthält. Also, d'Authentifikatiounsschema fir d'Login-Applikatioun z'änneren (oder all anere Programm mat PAM) ass einfach, well et nëmmen d'Ännerung vun enger Konfiguratiounsdatei implizéiert (wahrscheinlech eng Datei no der Applikatioun benannt, bannent /etc/pam.d , a manner wahrscheinlech am /etc/pam.conf).

Dateien bannent /etc/pam.d weisen op wéi eng Applikatiounen PAM native benotzen. Zousätzlech kënne mir soen ob eng bestëmmte Applikatioun PAM benotzt andeems Dir iwwerpréift ob et d'PAM-Bibliothéik (libpam) ugeschloss ass:

# ldd $(which login) | grep libpam # login uses PAM
# ldd $(which top) | grep libpam # top does not use PAM

Am uewe genannte Bild kënne mir gesinn datt de Libpam mat der Loginapplikatioun verlinkt ass. Dëst mécht Sënn well dës Applikatioun an der Operatioun vun der System Benotzer Authentifikatioun involvéiert ass, wärend Top net.

Loosst eis d'PAM Konfiguratiounsdatei fir passwd ënnersichen - jo, de bekannten Utility fir d'Passwuert vum Benotzer z'änneren. Et ass op /etc/pam.d/passwd:

# cat /etc/passwd

Déi éischt Kolonn weist den Typ vun der Authentifikatioun un, déi mam Modulwee (drëtt Kolonn) benotzt gëtt. Wann e Bindestrich virum Typ erschéngt, wäert PAM net an de Systemprotokoll ophuelen, wann de Modul net gelueden ka ginn, well et net am System fonnt ka ginn.

Déi folgend Authentifikatiounstypen sinn verfügbar:

  1. Konto: Dëse Modultyp kontrolléiert ob de Benotzer oder de Service gëlteg Umeldungsinformatioune geliwwert huet fir ze authentifizéieren.
  2. auth: Dëse Modultyp verifizéiert datt de Benotzer ass wien hien/si behaapt ze sinn a gëtt all néideg Privilegien.
  3. Passwuert: Dëse Modultyp erlaabt dem Benotzer oder dem Service säi Passwuert z'aktualiséieren.
  4. Sessioun: Dëse Modultyp weist un wat virun an/oder no der Authentifikatioun geschéie soll.

Déi zweet Kolonn (genannt Kontroll) weist un wat geschitt wann d'Authentifikatioun mat dësem Modul klappt:

  1. requisite: Wann d'Authentifikatioun iwwer dëse Modul klappt, gëtt d'allgemeng Authentifikatioun direkt ofgeleent.
  2. erfuerderlech ass ähnlech wéi erfuerderlech, obwuel all aner opgelëscht Moduler fir dëse Service opgeruff ginn ier d'Authentifikatioun ofgeleent gëtt.
  3. genuch: Wann d'Authentifikatioun iwwer dëse Modul klappt, gëtt PAM nach ëmmer d'Authentifikatioun, och wann e virdrun als obligatoresch markéiert ausgefall ass.
  4. optional: Wann d'Authentifikatioun iwwer dëse Modul klappt oder erfollegräich ass, geschitt näischt ausser dëst ass deen eenzege Modul vu sengem Typ deen fir dëse Service definéiert ass.
  5. include heescht datt d'Zeilen vum bestëmmten Typ aus engem anere Fichier gelies solle ginn.
  6. Substack ass ähnlech wéi enthält awer Authentifikatiounsfehler oder Erfolleger verursaachen net den Ausgang vum komplette Modul, awer nëmmen vum Substack.

Déi véiert Kolonn, wann et existéiert, weist d'Argumenter déi un de Modul weidergeleet ginn.

Déi éischt dräi Zeilen an /etc/pam.d/passwd (uewe gewisen), lued de System-Auth-Modul fir ze kontrolléieren ob de Benotzer gëlteg Umeldungsinformatiounen (Kont) geliwwert huet. Wa jo, erlaabt et him/hatt d'Authentifikatiounstoken (Passwuert) z'änneren andeems Dir d'Erlaabnis gëtt fir passwd (auth) ze benotzen.

Zum Beispill, wann Dir appendéiert

remember=2

op déi folgend Linn

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

an /etc/pam.d/system-auth:

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2

déi lescht zwee hashed Passwierder vun all Benotzer ginn an /etc/security/opasswd gespäichert sou datt se net erëmbenotzt kënne ginn:

Resumé

Effektiv Benotzer- an Dateiverwaltungsfäegkeeten si wesentlech Tools fir all Systemadministrator. An dësem Artikel hu mir d'Grondlage ofgedeckt an hoffen datt Dir et als e gudde Start benotze kënnt fir op ze bauen. Fillt gratis Är Kommentaren oder Froen hei drënner ze hannerloossen, a mir äntweren séier.