Команда ps показывает идентификатор пользователя, а не имя пользователя

Что лучше всего сработало для меня, так это то, как для предложения cbaumhardt, сопоставление поиска и замены в vi:

: map =:% s / \ n / и запись его в ~ / .vimrc .

Добавление в конце команды сохраняет нажатие клавиши Enter, поэтому для удаления всех eols требуется всего одно нажатие клавиши.

Если вам не нравится '=' в качестве ярлыка, проверьте полный список привязок клавиш vi и выберите любой другой доступный символ или комбинацию.

2
06.06.2017, 18:05
2 ответа

Если идентификатор не находится внутри пароля (grep 506 /etc/passwd), имя пользователя не отображается.

В этом случае добавьте соответствующую запись внутри /etc/passwd.

РЕДАКТИРОВАТЬ Как упоминалось Джеффом Шаллером и Кевином О:

Этот ответ не совсем полный! Лучше найти эти строки в файле /etc/passwd, третье поле которого ($3, разделенное двоеточием -F:), содержит точное значение 506. См. первый комментарий Джеффа . В моем простом примере выше будут показаны строки, содержащие имя пользователя yx506, идентификатор 123506 и так далее.

Но в любом случае :если идентификатор пользователя отсутствует внутри /etc/passwd, этот ответ может быть решением.

В дальнейшем постараюсь быть более конкретным...

1
27.01.2020, 22:03

К сожалению, ps по умолчанию не отображает имя пользователя, если оно длиннее 8 символов. Если в вашей системе работает sssd с LDAP, вы можете использовать «getent passwd userid », чтобы найти пользователя, если он находится в базе данных LDAP или в файле паролей. Мое имя пользователя «tvb» почти всегда появляется. Однако имя пользователя «flonglastname » в большинстве случаев не будет. Другие команды, такие как «w », будут отображать первые 8 символов «flonglas » и обрезать оставшиеся. В приведенном выше примере @KevinO «haldaemon » состоит из 9 символов, поэтому в ps он отображается не как имя пользователя, а как идентификатор пользователя.

% getent passwd haldaemon
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

Кроме того, ответ на blog.dbi -services.com помогает определить длину поля имени пользователя даже в формате ps вывода BSD. Немного упрощая их предложение, получаем:

env PS_FORMAT='user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command' ps ax | grep haldaemon
haldaemon     2032  0.0  0.0  53100  2020 ?        Ssl    Aug 12 00:01:10 hald

Что обеспечивает желаемый результат.

3
27.01.2020, 22:03

Теги

Похожие вопросы