Как я могу получить правильное локальное имя пользователя и адрес для scp с удаленного на локальный?

Учтите это, если вы всегда доверяете передаваемым ему аргументам:

$ cat script
awk 'BEGIN{ print '"$*"' }'

$./script 30 + 40
70

$./script 30 \* 40
1200

$./script 30 / 40
0.75

Обратите внимание на необходимость экранирования *, так как это подстановочный символ, в противном случае укажите аргументы в кавычках, например.:

$./script '30 * 40'
1200

Кроме того, при таком подходе вы не ограничены простыми арифметическими выражениями:

$./script 'log(10)'
2.30259

$./script 'exp(10)'
22026.5

$./script '10^2 - sqrt(9)'
97
-1
28.01.2021, 22:19
2 ответа

I have a file on a remote server

Итак, у удаленного сервера есть имя, скажем remote.server.com, и у вас есть учетная запись на удаленном сервере, скажем, god. Вы знаете, где находится файл на удаленном сервере, например, в домашнем каталоге godв каталоге filesс именем myfile.

Затем вы, со своего Mac,

scp god@remote.server.com:files/myfile localfile

и он скопирует удаленный файл как localfileна ваш Mac.

ifconfigничего не скажет вам об удаленном сервере.

Если вы не знаете имя своей учетной записи godна удаленном сервере, значит, у вас нет учетной записи на удаленном сервере. Итак, первое, что вам нужно сделать, это получить учетную запись. Как это сделать, зависит от вас, у вас есть файл на remote.server.com, в первую очередь, о котором вы ничего нам не сказали. Обычно это включает в себя опрос того, кто управляет удаленным сервером.


I'm (good faith) accessing a terminal through a passthru exploit, where I can see different directories and files through an input field meant to do something else on the site.

Итак, это веб-сервер, и у вас нет учетной записи на сервере, что означает, что вы не можете использовать scp. Конец истории.

Если вы делаете это добросовестно, это означает, что вы должны знать, кто управляет сервером, чтобы вы могли связаться с ними, чтобы получить учетную запись.

0
18.03.2021, 22:33

Итак, вы хотите скопировать что-то с удаленного компьютера на локальный Mac? Вы можете сделать это вот так:

# from your local mac machine
$ scp <username>@<remote-hostname>:/path/to/thing/to/copy.
# or if its a directory
$ scp -r...

Это скопирует файл в ваш текущий рабочий каталог (, следовательно,.)

Чтобы получить имя пользователя и имя хоста удаленной машины, просто войдите в систему и запустите whoamiи hostname(, предполагая, что удаленная машина работает под управлением Linux)

# e.g. 
$ ssh remote-hostname
$ hostname 
# prints machine hostname
$ whoami
# prints your username 

Между прочим, если вы уже знаете, как sshподключиться к этой удаленной машине, то вы уже знаете, для чего предназначено имя хостаscp:)

Дополнительная информация:

scpхорош для начала, но rsyncможет быть лучшим выбором в зависимости от того, какие типы копирования/синхронизации вы выполняете. Например. ты можешь попробовать:

# from local mac
$ rsync -auvz <username>@<remote-hostname>:/path/to/folder/.

rsyncпри таком использовании будет сжимать файлы до/после отправки и будет учитывать различия между вашей локальной и удаленной структурой папок, обновляя только то, что должно быть (таким идемпотентным по сравнению с scp, которое не является)

1
18.03.2021, 22:33

Теги

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