Fix "Whoami: Can't Find Name for User ID" Inside Chroot

Tags: January 8, 2013 7:46 PM

Jika perintah whoami pada lingkungan chroot memunculkan pesan error seperti berikut:

whoami: cannot find name for user ID 0
Berarti ada yang salah dengan requirement yang dibutuhkan binary `whoami` entah itu shared library atau file-file konfigurasi.

Cara Memperbaiki

  1. Pastikan file /etc/passwd dan /etc/group isi dan permissionnya benar (0644).
  2. Pastikan terdapat file /etc/nsswitch.conf yang isinya kurang lebih seperti berikut:
    # /etc/nsswitch.conf
    #
    # Example configuration of GNU Name Service Switch functionality.
    # If you have the `glibc-doc-reference' and `info' packages installed, try:
    # `info libc "Name Service Switch"' for information about this file.
    
    passwd:         compat
    group:          compat
    shadow:         compat
    
    hosts:          files dns
    networks:       files
    
    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files
    
    netgroup:       nis
  3. Pastikan terdapat file-file konfigurasi PAM auth di /etc/pam.d/.
  4. Cek library apa saja yang diload ketika runtime dengan menggunakan program strace.
  5. Copy library-library tersebut dari Host ke lingkungan chroot. Dari observasi penulis, file-file yang perlu dicopy adalah:
    /lib/tls/i686/cmov/libnss_nis.so.2
    /lib/tls/i686/cmov/libnss_files.so.2
    /lib/tls/i686/cmov/libnss_compat.so.2
    /lib/tls/i686/cmov/libnsl.so.1
    
Reference

Share on Facebook Twitter

0 comments:

Post a Comment