Passwd (soubor)
Soubor /etc/passwd
je v Unixu 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 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ů. 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, [email protected]:/home/pnovak:/bin/sh
Jednotlivá pole zleva označují:
- 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.
- 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*“, jenž odkazuje validaci hesla na použití NIS serveru. - Třetí pole uchovává uživatelský identifikátor (UID, z angl. user identifier), číslo, jenž používá operační systém pro interní potřeby. Toto číslo nemusí být unikátní.
- Čtvrté pole uchovává skupinový identifikátor (GID, z angl. group identifier). Skupina s tímto číslem se stává primární skupinou uživatele a všechny soubory vytvořené tímto uživatelem jsou 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 nicméně může být později změněno superuživatelem pomocí příkazu
chgrp
(z angl. change group). - 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.
- Šesté pole uchovává cestu k uživatelovu domácímu adresáři.
- 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).