passwd

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání


passwd je v informatice ve většině unixových systémů název příkazu, který slouží ke změně hesla uživatele.

Popis funkce[editovat | editovat zdroj]

Z hesla zadaného uživatelem je vygenerován pomocí hashovací funkce (např. DES) otisk (hash) a pouze tento otisk je uložen do databáze informací o uživatelských účtech (např. souboru /etc/shadow). Z bezpečnostních důvodů tedy vlastní heslo uloženo není. Jakmile se uživatel do systému přihlašuje, je požádán o zadání hesla. Z tohoto hesla je taktéž vygenerován otisk, který je poté porovnán s otiskem uloženým. Jestliže se oba otisky shodují, měla by se shodovat i původní hesla a uživatel tedy může být autentizován.

Nástroj passwd může být použit nejen ke změně hesel pro lokální uživatele. Na většině systémů je jej také možno použít ke změně hesel spravovaných distribuovaným autentizačním mechanizmem jako je NIS, Kerbeos nebo LDAP. Dříve bylo nutné mít pro změnu hesla v takových autentizačních systémech rozdílné nástroje. Například příkaz yppasswd ke změně hesla v systému NIS. V současné době má však většina implementací jediný příkaz passwd, který je schopen změnit heslo v těchto rozličných systémech skrze autentizační moduly PAM.

Soubor passwd[editovat | editovat zdroj]

Soubor /etc/passwd je textová databáze obsahující informace o uživatelích, jenž se mohou přihlásit do systému, a o dalších uživatelských identitách operačního systému, jenž vlastní běžící procesy. Jméno tohoto souboru pochází z jedné jeho původní funkce, kterou bylo ukládat data k verifikaci hesel uživatelských účtů. Na moderních Unixových systémech se tyto bezpečnostně citlivá data ukládají do jiných souborů pomocí stínových hesel (shadow passwords), nebo jiných databázových implementací. Implementace ukládání informací o uživatelských účtech se liší v závislosti na operačním systému; tento soubor je pouze jedna možná implementace z mnoha, kterou může služba passwd využívat.

Soubor /etc/passwd má typicky oprávnění taková, aby byl přístupný ke čtení všem uživatelům, ale zápis umožňoval pouze superuživateli, nebo za pomoci několika speciálně privilegovaných příkazů. Soubor je konstruován jedním záznamem uživatelského účtu na každý řádek. Každý záznam obsahuje sedm polí rozdělených dvojtečkou. Seřazení jednotlivých záznamů (řádků) je obvykle nepodstatné. Například:

novakp:x:1001:1000:Pepa Novak,+420 111 111 111, pepa.novak@server.cz:/home/pnovak:/bin/sh

Jednotlivá pole zleva označují:

  1. První pole uchovává uživatelské jméno, tedy řetězec, jenž uživatel vkládá při přihlašování do systému. Tento řetězec musí být v souboru unikátní. Neměl by obsahovat velká písmena, protože to způsobuje potíže při doručování elektronické pošty (e-mailová adresa je case-insensitive, tj. není citlivá na velikost písmen a nemělo by obsahovat národní znaky.
  2. Druhé pole uchovává informace používané pro validaci uživatelského hesla; v moderních systémech je toto pole obvykle nastaveno na "x" (nebo jiný indikátor), zatímco skutečné informace o hesle jsou uloženy v souboru stínových hesel. Nastavení tohoto pole na hvězdičku ("*") je běžná metoda pro zamezení přímého přihlášení k účtu a zároveň ponechání jeho jména. Další možná hodnota je "*NP*", jenž odkazuje validaci hesla na použití NIS serveru.
  3. Třetí pole uchovává uživatelský identifikátor, číslo, jenž používá operační systém pro interní potřeby. Toto číslo nemusí být unikátní.
  4. Čtvrté pole uchovává skupinový identifikátor. Toto číslo udává primární skupinu uživatele; všechny soubory, jenž tento uživatel vytvoří jsou zpočátku přístupné této skupině. Tato vlastnost se však po vytvoření souboru dá změnit pomocí příkazu chmod.
  5. Páté pole uchovává popis uživatele nebo účtu. Typicky se jedná o čárkou rozdělené hodnoty obsahující uživatelovo celé jméno a kontaktní informace.
  6. Šesté pole uchovává cestu k uživatelovu domácímu adresáři.
  7. Sedmé pole uchovává program, jenž se má spustit po každém přihlášení tohoto účtu do systému. Pro živé uživatele se obvykle jedná o systémový příkazový terminál (shell).

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku passwd (command) na anglické Wikipedii.

Související články[editovat | editovat zdroj]