Cosa indurrebbe ps a segnalare uid invece di username?


28

Ho Eucalyptus installato sulla mia macchina Linux e ho notato che per i processi di proprietà dell'utente eucalyptus, ps riporta userid invece del nome utente. Per esempio:

$ 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

Cosa farebbe succedere questo?

Nota che c'è una voce corretta in / etc / passwd:

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

Si noti inoltre che ls proprietà riporta la proprietà dei file dall'account eucalyptus:

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

Risposte:


41

ps usa l'UID quando il nome utente è più lungo di 8 caratteri.


Buona chiamata. Dalla pagina man: "Questo sarà l'ID utente testuale, se può essere ottenuto e la larghezza del campo lo consente, o altrimenti una rappresentazione decimale."
Michael Mrozek

O forse non c'è modo di tradurre l'UID in nome.
vonbrand,

12

Puoi controllare la larghezza delle colonne:

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

questo riproduce il uformato di ps u, ma rende il campo utente largo 12 caratteri.


0

Sicuro di avere un problema con il tuo / etc / passwd ... l'hai modificato manualmente, vero? :)

comunque, ho riprodotto il problema copiando la riga dell'utente in / etc / passwd e cambiando il nome utente con l'id utente.

Come questo:

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

Si noti che "l'utente numerato" è il primo.

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

Prova a eseguire "whoami", sicuro che restituisca 107 :)

È un comportamento strano, ps restituisce il numero e il suo nome normale: -m ...

Per risolverlo:

  • basta modificare / etc / passwd ed eliminare la voce errata
  • oppure usa "userdel 107", ma tutti i programmi di eucalyptus devono essere fermati
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.