Вопрос или проблема
Я подключаюсь с 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 на удаленной машине, выполните следующие шаги:
-
Проверьте корректность SSH-подключения:
Убедитесь, что вы подключаетесь к удалённому серверу с тем же пользователем. Используйте явное указание пользователя при подключении, если это необходимо:ssh john@169.254.1.1
-
Используйте
ps
с указанием правильного UID:
Выполните командуps
так, как вы делали это локально, но уже будучи подключённым по SSH. Команда будет выглядеть так:ps -U 501
Убедитесь, что вы запускаете эту команду на удаленной машине, и вы подключены как пользователь «john».
-
Альтернативный способ получения информации о процессах:
Если командаps -U 501
продолжает выдавать ошибку, альтернативным способом может быть использование команды:ps -ef | grep '501'
Или вы можете использовать
ps -Af
, чтобы получить список всех процессов с последующим фильтром по UID:ps -Af | grep 'john'
Это должно вернуть процессы, принадлежащие пользователю «john», который у вас имеет UID 501.
-
Проверьте записи о пользователе:
Если проблема сохраняется, вы можете проверить наличие пользователя 501 с помощью:dscacheutil -q user | grep 501
Это позволит вам убедиться, что пользователь с таким UID существует на удаленной машине.
Следуя этим шагам, вы сможете успешно отобразить процессы пользователя с UID 501 на удалённой машине.