Ps, kullanıcı adı yerine kullanıcı kimliğini bildirmesine neden olur?


28

Ben Okaliptüs benim Linux makine yüklü ve ben okaliptüs kullanıcının sahibi işlemleri için, fark ettik ps yerine kullanıcı adının kimliği bildirir. Örneğin:

$ 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

Bunun olmasına ne sebep olabilir?

/ Etc / passwd dosyasına uygun bir giriş olduğunu unutmayın:

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

Ayrıca, ls özelliğinin okaliptüs hesabı tarafından dosyaların sahipliğini bildirdiğini unutmayın :

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

Yanıtlar:


41

ps kullanıcı adı 8 karakterden uzun olduğunda kullanıcı kimliğini kullanır.


İyi arama. Man sayfasından: "Bu, elde edilebiliyorsa ve alan genişliği izin veriyorsa metinsel kullanıcı kimliği veya aksi takdirde ondalık bir temsil olacaktır."
Michael Mrozek

Veya belki de UID'yi isme çevirmenin bir yolu yoktur.
von 23:13 de

12

Sütunların genişliğini kontrol edebilirsiniz:

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

bu, ubiçimini çoğaltır ps uancak kullanıcı alanını 12 karakter genişliğinde yapar.


0

/ Etc / passwd ile ilgili bir sorununuz olduğundan emin olun ... el ile düzenlediniz, değil mi? :)

Yine de, / etc / passwd içindeki kullanıcının satırını kopyalamak ve kullanıcı adını kullanıcı kimliğine göre değiştirmek problemini yeniden ürettim.

Bunun gibi:

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

"Numaralı kullanıcı" ilk olduğuna dikkat edin.

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" yi çalıştırmayı deneyin, 107 döndürdüğünden emin olun :)

Bu garip bir davranış, ps sayıyı döndürür ve normal addır: -m ...

Bunu çözmek için:

  • sadece / etc / passwd dosyasını düzenleyin ve hatalı girişi silin
  • veya 'userdel 107' kullanın, ancak okaliptüsün tüm programları durdurulmalı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.