Що може викликати ps повідомляти про uid замість імені користувача?


28

У мене на моїй машині Linux встановлений евкаліпт , і я помітив, що для процесів, що належать користувачеві евкаліпта, ps повідомляє userid замість імені користувача. Наприклад:

$ 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

Що може спричинити це?

Зауважте, що в / etc / passwd є правильний запис:

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

Також зауважте, що властивість ls повідомляє про право власності на файли в обліковому записі евкаліпта:

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

Відповіді:


41

ps використовує uid, коли ім'я користувача більше 8 символів.


Гарний дзвінок. Зі сторінки man: "Це буде текстовий ідентифікатор користувача, якщо його можна отримати і ширина поля дозволить, або десяткове представлення в іншому випадку."
Майкл Мрозек

Або, можливо, немає способу перевести UID на ім’я.
фонбранд


0

Звичайно, у вас є проблема з вашим / etc / passwd ... ви редагували це вручну, чи не так? :)

у будь-якому випадку, я відтворив проблему копіювання рядка користувача в / etc / passwd та змінити ім’я користувача за ідентифікатором користувача.

Подобається це:

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

Зауважте, що "пронумерований користувач" є першим.

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

Спробуйте виконати "whoami", переконайтеся, що це повертає 107 :)

Це дивна поведінка, ps повертає число і ls звичайне ім'я: -m ...

Щоб вирішити це:

  • просто відредагуйте / etc / passwd та видаліть неправильний запис
  • або використовувати "userdel 107", але всі програми з евкаліпта повинні бути зупинені
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.