Passwd (soubor)

Soubor /etc/passwd je v Unixu textová databáze obsahující informace o uživatelích, již se mohou přihlásit do systému, a o dalších uživatelských identitách operačního systému, jež 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 z pohledu bezpečnosti citlivá data ukládají do jiného souboru pomocí systému stínových hesel (shadow passwords), nebo jiných databázových implementací. Jméno tohoto souboru je většinou /etc/shadow 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ů.

Struktura souboru

Soubor je textová databáze obsahující záznam o jednom uživatelském účtu na jednom řádku. Každý záznam obsahuje sedm polí rozdělených dvojtečkou. Pořadí jednotlivých záznamů (řádků) není podstatné. Příklad řádku:

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

Hodnoty polí

Jednotlivá pole zleva označují:

  1. První pole uchovává uživatelské jméno, tedy řetězec, jejž 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. V druhém poli se historicky nacházelo zahashované heslo. Vzhledem k tomu, že soubor musí být přístupný alespoň pro čtení všem uživatelům, tato možnost se s časem ukázala jako ne zcela bezpečná. V moderních systémech je proto 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 (většinou /etc/shadow. Nastavení tohoto pole na hvězdičku („*“) je běžná metoda pro zamezení přímého přihlášení k účtu (při ponechání jeho existence). Další možná hodnota je „*NP*“, jež odkazuje validaci hesla na použití NIS serveru.
  3. Třetí pole uchovává uživatelský identifikátor (UID, z angl. user identifier), číslo, jež používá operační systém pro interní potřeby. Toto číslo nemusí být unikátní.
  4. Čtvrté pole uchovává identifikátor skupiny (GID, z angl. group identifier). Skupina s tímto číslem bude primární skupinou uživatele a všechny soubory vytvořené tímto uživatelem budou vlastněny touto skupinou. Nemusí být však jejím členům nutně přístupné, to záleží na nastavení masky souborů. Toto vlastnictví skupinou může být změněno příkazem chgrp (z angl. change group).
  5. Páté pole uchovává popis uživatele nebo účtu. Typicky se jedná o čárkami oddělené hodnoty obsahující celé jméno uživatele a kontaktní informace.
  6. Šesté pole uchovává cestu k uživatelovu domovské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).