сила scp перезаписывает файлы только для чтения

Попробовать nmblookup <wins-hostname>.

4
04.02.2013, 05:25
4 ответа

Вы не можете изменить/перезаписать файл, если у Вас нет разрешения записи, и не возможный scp опция может изменить это.

Для решения его, необходимо соединиться с сервером сначала (использование ssh например), и изменяют разрешение на Вашем файле. Если Вы не знаете, как сделать это, вот простая команда, которая добивается цели:

chmod +w /path/to/your/file

Несколько примечаний:

  • Существует, вероятно, причина, почему эти файлы только для чтения. Прежде, чем сделать что-либо, удостоверьтесь, что Вы знаете, почему и что изменение этого не собирается повреждать что-либо или представлять дыры в системе безопасности.

  • При необходимости Вы могли удалить разрешение записи после выполнения Вашего scp команда (с этим: chmod -w /path/to/file).

  • Если существует слишком много файлов с разрешением только для чтения, необходимо выследить их. find (по крайней мере, версия GNU, доступная в большинстве дистрибутивов Linux), имеет a -perm тест, который можно использовать (man find для большего количества информации).

  • Кто-то мог бы предложить, чтобы Вы соединились как корень или использование sudo. Это будет работать, но из любви к Богу не делают. Я не могу начать говорить Вам, как неправильно это было бы.

2
27.01.2020, 20:54
  • 1
    Пока у Вас есть запись перманент на содержании каталога, можно удалить / переименовывают файл только для чтения - например, gist.github.com/4704937 –  Reed Kraft-Murphy 04.02.2013, 05:53

Если SFTP доступен на сервере (это обычно), можно использовать SSHFS. Это позволяет Вам смонтировать удаленные файлы на клиенте. Вам нужны демон SFTP на сервере и FUSE на клиенте.

mkdir /net/myserver
sshfs myserver:/ /net/server

Можно затем использовать любую локальную команду такой как cp, chmod, rsync, и т.д., не имея необходимость волноваться, являются ли файлы локальными или удаленными. С rsync, передайте --no-whole-file опция сказать этому использовать свой сохраняющий пропускную способность алгоритм передачи дельты (который иначе выключен, когда rsync полагает, что оба пути локальны).

rsync -a --no-whole-file somedir /net/myserver/somewhere
2
27.01.2020, 20:54

Rsync не должен быть на целевом сервере; можно использовать

# rsync -avz -e ssh /path/to/files/ blah@somehost.com:/tmp/ 

Информация об этом здесь:

http://troy.jdmz.net/rsync/index.html

Как сказано ранее, хотя, не берите файлы только для чтения слегка; я предположу, что Вы знаете точно, что Вы делаете. Другой метод, хотя к scp или rsync файлы в/tmp/blah каталог на целевом сервере, и затем перемещают их когда-то записанный.

1
27.01.2020, 20:54

Если scp выдает вам «ошибку отказа в доступе» к данному файлу (но ssh -v показывает успешную аутентификацию), проблема заключается в том, что вы пытаетесь перезаписать существующий файл с другим набором разрешений, или файл может иметь другой владелец (с другими наборами разрешений).

Попробуйте удалить исходный файл. Затем последующие scps будут перезаписаны.

0
27.01.2020, 20:54

Теги

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