Это от kill(2)
страница справочника:
Чтобы процесс имел разрешение отправить сигнал, это должно или быть привилегировано (в соответствии с Linux: имейте возможность CAP_KILL), или реальный или эффективный идентификатор пользователя процесса отправки должен равняться реальному или сохраненному идентификатору пользователя набора целевого процесса. В случае SIGCONT это удовлетворяет, когда отправление ‐ луг и получающие процессы принадлежит той же сессии.
Таким образом, по существу, при нормальных обстоятельствах, если Вы не корень (и не имеют никакого способа стать корнем или что другой пользователь, через sudo или setuid
программы), Вы не можете уничтожить процесс другого пользователя.
Взгляните на то, Как я соединяюсь с ПК через другой ПК с помощью ssh
Вы создаете новое ~/.ssh/config
запись с именем tunnelb:
Host tunnelb
HostName hostB
User user
ProxyCommand ssh user@hostA nc %h %p
Если у Вас есть последняя версия ssh, можно использовать Proxycommand ssh user@hostA -W %h:%p
вместо этого. Это предпочтено, поскольку это не полагается nc
Теперь можно просто использовать rsync -e ssh tunnelb:~/folder ~/folder
поскольку это будет использовать определенную запись в ~/.ssh/config
.
Во-первых, запустите ssh на хосте постоянно с локальным перенаправлением портов в другом терминале. Например:
ssh -N -v -L 22022:hostB:22 hostA
Затем "канал" rsync с ssh к localhost:22022
. Один вариант должен записать в ~/.ssh/config:
Host hostB
HostName localhost
Port 22022
Замена -e ssh
с -e
к некоторому сценарию, который содержит:
ssh hostA 'ssh hostB' "$@"
Я не попробовал его, таким образом, некоторые детали будут разработаны дополнительно.
debug1: Unspecified GSS failure. Minor code may provide more information Credentials cache file '/tmp/krb5cc_1000' not found
. Для второго варианта я добираюсь bash: hostA: command not found
. Я озадачу немного на Вас предложение, больше больше подсказок, чем, желанный
– Bernhard
15.07.2012, 12:32