Zkuste
getent passwd "$uid" | cut -d: -f1
Možná se vám bude líbit tato malá maličkost.
$ id -nu [number]
3.17.3-1-ARCH #1 SMP PREEMPT Pá 14. listopadu 22:56:01 CET 2014 i686 GNU/Linux
Mohu potvrdit, že vrací odpovídající uživatelské jméno, pokud nějaké existuje, na Arch Linuxu. Mohu také potvrdit, že na Ubuntu nefunguje při spuštění jako normální uživatel, i když jsem to jako superuživatel netestoval. Také to nefunguje na Alpine Linux. V některých systémech tomu možná brání bezpečnostní funkce.
ls
již toto vyhledávání provádí. Vyhledávání informací o uživateli můžete provést z příkazového řádku pomocí getent passwd
.
Pokud ls
zobrazuje ID uživatele místo uživatelského jména, je to proto, že žádný uživatel s tímto jménem neexistuje. Souborové systémy ukládají ID uživatelů, nikoli jména uživatelů. Pokud připojíte souborový systém z jiného systému nebo pokud soubor patří nyní smazanému uživateli nebo pokud jste předali číselné ID uživatele chown
, můžete mít soubor, který patří k uživatelskému ID, které nemá jméno.
Na sdíleném hostiteli můžete mít přístup k některým souborům, které sdílí několik virtuálních počítačů, každý se svou uživatelskou databází. To je trochu divné (proč sdílet soubory, ale ne uživatelé, kteří je vlastní?), ale je to technicky možné.