¿Qué haría que ps informara uid en lugar de nombre de usuario?


28

Tengo Eucalyptus instalado en mi máquina Linux, y he notado que para los procesos propiedad del usuario de eucalipto, ps informa el ID de usuario en lugar del nombre de usuario. Por ejemplo:

$ 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

¿Qué causaría que esto suceda?

Tenga en cuenta que hay una entrada adecuada en / etc / passwd:

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

También tenga en cuenta que ls property informa la propiedad de los archivos de la cuenta de eucalipto:

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

Respuestas:


41

ps usa el uid cuando el nombre de usuario tiene más de 8 caracteres.


Buena llamada. Desde la página de manual: "Esta será la ID de usuario textual, si se puede obtener y el ancho del campo lo permite, o una representación decimal de lo contrario".
Michael Mrozek

O tal vez no hay forma de traducir UID a nombre.
vonbrand

12

Puedes controlar el ancho de las columnas:

ps o user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,comm

esto reproduce el uformato de ps u, pero hace que el campo de usuario tenga 12 caracteres de ancho.


0

Seguro que tiene un problema con su / etc / passwd ... lo editó manualmente, ¿no? :)

de todos modos, reproduje el problema copiando la línea del usuario en / etc / passwd y cambiando el nombre de usuario por la identificación del usuario.

Me gusta esto:

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

Tenga en cuenta que el "usuario numerado" es el primero.

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

Intenta ejecutar "whoami", seguro que devuelve 107 :)

Es un comportamiento extraño, ps devuelve el número y l es el nombre normal: -m ...

Para resolverlo:

  • solo edite / etc / passwd y elimine la entrada incorrecta
  • o use 'userdel 107', pero todos los programas de eucalipto deben ser detenidos
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.