Missä ja miten salasanat tallennetaan Linuxiin?

Where How Are Passwords Stored Linux

Käyttäjänimi ja vastaava salasana tietylle tilille on ensisijainen vaatimus, jonka kautta käyttäjä voi käyttää Linux -järjestelmää. Kaikkien käyttäjätilien salasana tallennetaan tiedostoon tai tietokantaan, jotta käyttäjä voidaan vahvistaa kirjautumisyrityksen aikana järjestelmään. Jokaisella käyttäjällä ei ole tarpeeksi taitoja ja asiantuntemusta paikantaa tämä tiedosto järjestelmästään. Jos kuitenkin pääset tietokantaan tai tiedostoon, joka säilyttää kaikki kirjautuneen käyttäjän salasanat, pääset helposti Linux -järjestelmään. Kun käyttäjä syöttää käyttäjätunnuksen ja salasanan Linuxiin kirjautumista varten, se tarkistaa syötetyn salasanan '/etc' -hakemiston eri tiedostojen merkintöjen perusteella.

/Etc /passwd -tiedostot säilyttävät kaikki tärkeät tiedot, joita tarvitaan käyttäjän kirjautumiseen. Selventääksesi sitä yksinkertaisemmin sanoin /etc /passwd -tiedosto tallentaa käyttäjän tilitiedot. Tämä tiedosto on pelkkä tekstitiedosto, joka sisältää täydellisen luettelon kaikista Linux -järjestelmän käyttäjistä. Se sisältää käyttäjätunnuksen, salasanan, UID: n (käyttäjätunnus), GID: n (ryhmän tunnus), kuoren ja kotihakemiston tiedot. Tällä tiedostolla pitäisi olla lukuoikeudet, koska monia komentorivityökaluja käytetään käyttäjätunnusten yhdistämiseen käyttäjänimeen. Sillä pitäisi kuitenkin olla rajoitetut kirjoitusoikeudet vain pääkäyttäjän tai pääkäyttäjän tileille.



Tämä artikkeli osoittaa, miten ja missä voit tallentaa järjestelmän käyttäjätilien salasanat Linux -jakeluun. Olemme toteuttaneet kaikki esittelyt Ubuntu 20.04 -järjestelmässä. Tiedosto /etc /passwd löytyy kuitenkin mistä tahansa Linux -jakelusta.



Edellytykset

Sinulla pitäisi olla pääkäyttäjän oikeudet hallinnollisten komentojen suorittamiseen.



Perustiedot tiedostosta /etc /passwd

Tiedosto /etc /passwd sisältää järjestelmän käyttäjätilin tiedot. Kaikki tallennetut kentät on erotettu kaksoispisteestä: merkki.
Kun suoritat seuraavan komennon, näet kaikki /etc /passwd -tiedoston tiedostomerkinnät:

$kissa /jne/passwd

Yllä oleva komento näyttää kaikki Linux -järjestelmän käyttäjät.
Päätelaitteen näytössä näkyy seuraavanlainen muoto:

Tietoja /etc /passwd -kentistä Muoto
Yllä olevasta kuvasta:

Käyttäjätunnus: Ensimmäinen kenttä edustaa käyttäjän nimeä. Käyttäjätunnuskentän pituus on 1-32 merkkiä. Tätä käytetään, kun käyttäjä kirjautuu järjestelmään. Yllä olevassa esimerkissä 'khuzdar' on käyttäjänimi.
Salasana: Yllä olevassa esimerkissä x -merkki osoittaa, että salasana on tallennettu salatussa muodossa /etc /shadow -tiedostoon.
Käyttäjätunnus (UID): Käyttäjätunnus on määritettävä erikseen kullekin käyttäjälle. Pääkäyttäjälle määritetään UID-nolla ja 1-99-käyttäjätunnukset ennalta määritetyille tai vakiotileille. Muut UID-tunnukset 100-999 määritetään järjestelmänvalvojan tileille tai ryhmille. Yllä olevassa kuvakaappauksessa käyttäjätunnus on 1001.
Ryhmän tunnus (GID): Seuraava kenttä edustaa ryhmän tunnusta. GID tallennetaan tiedostoon /etc /group. Yllä olevan esimerkin perusteella käyttäjä kuuluu ryhmätunnukseen 1001.
Tietoja käyttäjätunnuksesta: Seuraava kenttä on tarkoitettu kommentteihin. Tässä kentässä voit lisätä tiettyjä käyttäjiä koskevia lisätietoja, kuten käyttäjän koko nimen, puhelinnumeron jne. Yllä olevassa esimerkissä käyttäjä ei kuitenkaan anna puhelinnumeroa.
Kotihakemisto: Tämä kenttä näyttää nykyiselle käyttäjälle määritetyn kotihakemiston sijainnin. Jos määritettyä hakemistoa ei ole, se näyttää /. Yllä oleva kuva näyttää korostetun käyttäjän sijainnin kotihakemistossa, joka on koti/kbuzdar.
Komento // kuori: Kuoren tai komennon absoluuttinen polku on /bin /bash. Tätä kutsutaan kuoreksi. Esimerkiksi sysadmin nologin -kuoren avulla. Se toimii järjestelmän käyttäjätilien korvaavana kuorina. Jos kuori sijaitsee polulla /sbin /nologin ja käyttäjä haluaa kirjautua suoraan Linux -järjestelmään, /sbin /nologin -kuori sulkee tai poistaa yhteyden.



Hae käyttäjää tiedostosta /etc /passwd

Voit etsiä tiettyä käyttäjää tiedostolla /etc /passwd käyttämällä grep -komentoa. Haluamme esimerkiksi hakea käyttäjänimeä 'kbuzdar' /etc /passwd -tiedostosta seuraavan syntaksin avulla, jolloin voimme helposti etsiä määritettyä käyttäjää säästäen aikaa:

$pitokäyttäjänimi/jne/passwd

Yllä oleva syntaksi muuttuu seuraavaksi muotoksi:

$pitokitisevä/jne/passwd


Tai

$pito -sisään '^kbuzdar' /jne/passwd

Näytä /etc /passwd -tiedoston käyttöoikeudet

Kuten edellä mainitsimme, kaikkien muiden käyttäjien, rootia lukuun ottamatta, pitäisi pystyä lukemaan /etc /passwd -tiedoston käyttöoikeudet ja että omistajan on oltava pääkäyttäjä tai pääkäyttäjä.
Tarkista tiedoston lukuoikeudet kirjoittamalla seuraava:

$ls -he /jne/passwd

Päätelaitteessa näkyy seuraava tulosnäyte:

Luetaan /etc /passwd -tiedostoa

Voit lukea /etc /passwd -tiedoston Linux -järjestelmässäsi käyttämällä seuraavaa bash -komentosarjaa tai suorittaa suoraan alla kirjoitetut, kun päätelaitteen silmukkakomennot.
Luo tekstitiedosto ja liitä siihen seuraava koodi:

#!/bin/bash
# yhteensä seitsemän kenttää /etc /passwd tallennettu muodossa $ f1, f2 ..., $ f7

sillä aikaa IFS=:lukea -rf1 f2 f3 f4 f5 f6 f7
tehdä
heitti pois 'Käyttäjä$ f1käyttää$ f7shell ja tallentaa tiedostotf6 dollariahakemistoon. '
tehty < /jne/passwd

Käyttämällä while -silmukkaa se lukee kaikki seitsemän kenttää ja näyttää iteratiivisesti tiedoston sisällön päätelaitteessa.
Tallenna yllä oleva tiedosto nimeltä readfile.sh.

Suorita nyt yllä oleva tiedosto käyttämällä seuraavaa komentoa:

$lyödäreadfile.sh

Tutki /etc /shadow -tiedostoa

/Etc /shadow -tiedosto sisältää kaikki tähän tiedostoon tallennetut salatut salasanasi, jotka ovat vain root -käyttäjien luettavissa.
Suorita seuraava komento näyttääksesi sisällön:

$sudo kissa /jne/varjo

Näet kaikki salasanat salatussa muodossa:

Johtopäätös

Olemme nähneet yllä olevasta artikkelista kaikki käyttäjän tilitiedot ja salasanat, jotka on tallennettu /etc /passwd -tiedostoon Linux -järjestelmässä. Voit lukea tämän tiedoston, mutta vain pääkäyttäjät voivat kirjoittaa. Lisäksi olemme myös nähneet kaikki /etc /shadow -tiedostoon tallennetut salatut salasanat. Voit myös tutkia /etc /group -tiedostoa saadaksesi tietoja käyttäjän ryhmästä.