อะไรจะทำให้ ps รายงาน uid แทนที่จะเป็นชื่อผู้ใช้


28

ฉันติดตั้งยูคาลิปตัสบนเครื่องลีนุกซ์และฉันสังเกตเห็นว่ากระบวนการที่ผู้ใช้ยูคาลิปตัสเป็นเจ้าของนั้นpsรายงานรหัสผู้ใช้แทนชื่อผู้ใช้ ตัวอย่างเช่น:

$ 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 property รายงานการเป็นเจ้าของไฟล์โดยบัญชียูคาลิปตัส:

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

คำตอบ:


41

ps ใช้ uid เมื่อชื่อผู้ใช้ยาวกว่า 8 ตัวอักษร


โทรดีมาก จาก man page: "นี่จะเป็น ID ผู้ใช้ที่เป็นข้อความหากสามารถรับได้และความกว้างของฟิลด์จะอนุญาตหรือแสดงเป็นทศนิยมก็ได้"
Michael Mrozek

หรืออาจไม่มีวิธีแปล UID ให้เป็นชื่อ
vonbrand


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 ส่งคืนตัวเลขและชื่อปกติ: -m ...

เพื่อแก้ปัญหา:

  • เพียงแค่แก้ไข / etc / passwd และลบรายการที่ไม่ถูกต้อง
  • หรือใช้ 'userdel 107' แต่ต้องหยุดโปรแกรมทั้งหมดจากยูคาลิปตัส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.