Как увидеть процессы пользователя 501, работающие на удаленном сервере с помощью ssh и ps -U 501

Вопрос или проблема

Я подключаюсь с iMac с именем пользователя John и ID 501 к своему MacMini с тем же именем пользователя John и ID 501, используя ssh.

Когда я запускаю ps -U 501 удаленно, мне сообщают, что пользователя с ID 501 не существует. Если я запущу эту команду локально, отобразятся процессы, принадлежащие 501, как и ожидалось. Какое знание мне недостает?

Все команды выполняются из сеанса ssh.

08:42:09.626 iMac191 ~ 
➜ ssh 169.254.1.1
([email protected]) Пароль:
Последний вход: Вт Сен 17 14:51:28 2024

john@MacMini ~ % whoami
501

john@MacMini ~ % id
uid=501 gid=20(staff) группы=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),398(com.apple.access_screensharing),704,703,716,702,706,705,701,100(_lpoperator)

john@MacMini ~ % ps -U 501
ps: Нет рользовательского имени или ID, соответствующего '501'

john@MacMini ~ % su john
su: кто вы?

john@MacMini ~ % ps -Af | grep 501
  501  2739     1   0 Вт 02PM ??         0:00.59 /Applications/DiskWarrior.app/Contents/Helpers/DiskWarriorDaemon
  501 55207 55204   0  8:42AM ??         0:00.61 sshd: john@ttys002 
  501 55898     1   0  8:46AM ??         0:00.59 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow console
  501 55899     1   0  8:46AM ??         0:01.87 /usr/sbin/distnoted agent
  501 55937     1   0  8:47AM ??         0:03.81 /usr/sbin/cfprefsd agent
  501 55939     1   0  8:47AM ??         0:00.99 /usr/libexec/UserEventAgent (Aqua)

john@MacMini ~ % dscacheutil -q user | grep 501

john@MacMini ~ % login root
Пароль:
Неверный логин
login: login john
Неверный логин

man ps

КЛЮЧЕВЫЕ СЛОВА
ruid   реальный пользовательский ID
ruser   имя пользователя (из ruid)
uid    эффективный пользовательский ID

Смотря на страницу man:

man ssh

-l login_name.

Указывает пользователя, под которым следует войти на удаленной машине. Это также может быть указано для каждого хоста в конфигурационном файле.

Так что, сделав это, работает.

ssh -l username [user@]hostname

Ответ или решение

Для того чтобы увидеть процессы пользователя с ID 501 на удалённом сервере, подключившись по SSH, вам необходимо учитывать некоторые аспекты работы команд и системы управления пользователями в Unix-подобных операционных системах, таких как macOS.

Когда вы выполняете команду ps -U 501 на удалённой машине, система пытается найти пользователя с UID 501. Однако, если вы не используете правильный синтаксис или не указываете корректного пользователя, вы можете получить сообщение об ошибке.

Исходя из вашего описания, вы подключаетесь к удаленному серверу MacMini как пользователь «john», который имеет UID 501. Однако вы сталкиваетесь с ошибкой: ps: No ruser name or ID matches '501'. Это возникает из-за того, что ps ищет пользователя по реальному UID, и наличие UID 501 на локальной машине не обязательно означает, что этот же UID существует на удалённой машине в контексте команды.

Чтобы правильно увидеть процессы пользователя 501 на удаленной машине, выполните следующие шаги:

  1. Проверьте корректность SSH-подключения:
    Убедитесь, что вы подключаетесь к удалённому серверу с тем же пользователем. Используйте явное указание пользователя при подключении, если это необходимо:

    ssh john@169.254.1.1
  2. Используйте ps с указанием правильного UID:
    Выполните команду ps так, как вы делали это локально, но уже будучи подключённым по SSH. Команда будет выглядеть так:

    ps -U 501

    Убедитесь, что вы запускаете эту команду на удаленной машине, и вы подключены как пользователь «john».

  3. Альтернативный способ получения информации о процессах:
    Если команда ps -U 501 продолжает выдавать ошибку, альтернативным способом может быть использование команды:

    ps -ef | grep '501'

    Или вы можете использовать ps -Af, чтобы получить список всех процессов с последующим фильтром по UID:

    ps -Af | grep 'john'

    Это должно вернуть процессы, принадлежащие пользователю «john», который у вас имеет UID 501.

  4. Проверьте записи о пользователе:
    Если проблема сохраняется, вы можете проверить наличие пользователя 501 с помощью:

    dscacheutil -q user | grep 501

    Это позволит вам убедиться, что пользователь с таким UID существует на удаленной машине.

Следуя этим шагам, вы сможете успешно отобразить процессы пользователя с UID 501 на удалённой машине.

Оцените материал
Добавить комментарий

Капча загружается...