Apa yang menyebabkan ps melaporkan uid dan bukan nama pengguna?


28

Saya telah menginstal Eucalyptus di mesin Linux saya, dan saya perhatikan bahwa untuk proses yang dimiliki oleh pengguna eucalyptus, ps melaporkan userid bukan username. Sebagai contoh:

$ sudo -i -u eucalyptus
$ ps u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
107      29764  0.0  0.0  19376  2104 pts/2    S    11:43   0:00 -bash
107      30198  0.0  0.0  15256  1180 pts/2    R+   11:44   0:00 ps u

Apa yang menyebabkan ini terjadi?

Perhatikan bahwa ada entri yang tepat di / etc / passwd:

$ grep eucalyptus /etc/passwd
eucalyptus:x:107:115::/var/lib/eucalyptus:/bin/bash

Juga perhatikan bahwa properti ls melaporkan kepemilikan file oleh akun kayu putih:

$ touch foo
$ ls -l foo
-rw-r--r-- 1 eucalyptus eucalyptus 0 2010-09-23 11:47 foo

Jawaban:


41

ps menggunakan uid saat nama pengguna lebih dari 8 karakter.


Panggilan yang bagus. Dari halaman manual: "Ini akan menjadi ID pengguna tekstual, jika dapat diperoleh dan lebar bidang memungkinkan, atau representasi desimal sebaliknya."
Michael Mrozek

Atau mungkin tidak ada cara untuk menerjemahkan UID ke nama.
vonbrand


0

Tentu Anda memiliki masalah dengan / etc / passwd ... Anda mengeditnya secara manual, bukan? :)

Lagi pula, saya mereproduksi masalah menyalin garis pengguna di / etc / passwd dan mengubah nama pengguna dengan id pengguna.

Seperti ini:

root@juice:/etc/# grep 129 /etc/passwd
129:x:129:137:Puppet configuration management daemon,,,:/var/lib/puppet:/bin/false
puppet:x:129:137:Puppet configuration management daemon,,,:/var/lib/puppet:/bin/false

Perhatikan bahwa "pengguna bernomor" adalah yang pertama.

root@juice:/etc/# sudo -u puppet -s
129@juice:/etc/$ whoami
129

129@juice:/etc/$ touch /tmp/a
129@juice:/etc/$ ls -l /tmp/a
-rw-r--r-- 1 129 puppet 0 2010-09-23 19:12 /tmp/a

129@juice:/etc/$ ps u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
129      12443  2.2  0.1   7112  4380 pts/1    S    19:12   0:00 /bin/bash
129      12490  0.0  0.0   2716  1068 pts/1    R+   19:12   0:00 ps u

Coba jalankan "whoami", yakin itu mengembalikan 107 :)

Ini adalah perilaku aneh, ps mengembalikan nomor dan ls nama normal: -m ...

Untuk mengatasinya:

  • cukup edit /etc/ passwd dan hapus entri yang salah
  • atau gunakan 'userdel 107', tetapi semua program dari eucalyptus harus dihentikan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.