試す
getent passwd "$uid" | cut -d: -f1
あなたはこのちょっとしたことを楽しむかもしれません。
$ id -nu [number]
3.17.3-1-ARCH #1 SMP PREEMPT Fri Nov 14 22:56:01 CET 2014 i686 GNU/Linux
Arch Linux で、対応するユーザー名が存在する場合は、それが返されることを確認できます。また、スーパーユーザーとしてこれをテストしていませんが、通常のユーザーとして実行すると Ubuntu で動作しないことも確認できます。 Alpine Linux でも機能しません。セキュリティ機能により、一部のシステムでこれが機能しない可能性があります。
ls
すでにそのルックアップを実行しています。 getent passwd
を使用して、コマンド ラインからユーザー情報の検索を実行できます。 .
ls
の場合 ユーザー名の代わりにユーザー ID が表示されます。これは、その名前のユーザーが存在しないためです。ファイルシステムには、ユーザー名ではなく、ユーザー ID が保存されます。別のシステムからファイルシステムをマウントした場合、またはファイルが現在削除されているユーザーに属している場合、または数値のユーザー ID を chown
に渡した場合 、名前のないユーザー ID に属するファイルを持つことができます。
共有ホストでは、複数の仮想マシン間で共有されているいくつかのファイルにアクセスでき、それぞれにユーザー データベースがあります。これは少し奇妙です (ファイルを共有するのに、ファイルを所有するユーザーを共有しないのはなぜですか?) が、技術的には可能です。