2

Я нахожусь в PuTTY и PSFTP на Windows и подключен к моему удаленному серверу, который является Ubuntu.

Моя проблема заключается в выборе файла для загрузки на удаленный сервер с помощью команды put.

В той же директории, что и исполняемый файл PSFTP, у меня есть папка с именем "CSS".

Я пытаюсь psftp> put CSS и я получаю локальный: не могу local: unable to open CSS даже если я вижу его в списке доступных каталогов, используя !dir .

Кроме того, когда я выбираю другой файл, который работает, я получаю следующую ошибку:

open for write: permission denied

Как мне решить эти две проблемы: во-первых, невозможность выбрать каталог, который я хочу загрузить, во-вторых, ошибка отказа в разрешении?

Большое спасибо.

2 ответа2

2

В psftp, если вы введете help put , вы увидите следующее:

put [ -r ] [ -- ] <filename> [ <remote-filename> ]
  Uploads a file to the server and stores it there under
  the same name, or under a different one if you supply the
  argument <remote-filename>.
  If -r specified, recursively store a directory.

Вместо этого используйте put -r CSS для передачи каталога. Вы получите сообщение об ошибке, например local: unable to open CSS , если вы попытаетесь использовать команду put для передачи каталога без использования опции -r.

Кроме того, еще одна хорошая бесплатная программа для sftp для систем Microsoft Windows - WinSCP.

В системе Ubuntu проверьте права доступа к каталогу, в который вы пытаетесь поместить файлы, с помощью ls -ld directory_name . Например, предположим, что вы пытаетесь поместить файлы в каталог с именем test:

$ ls -ld test
drwxrwxr-x. 3 jdoe jdoe 61 Feb 14 10:42 test

Приведенный выше каталог принадлежит учетной записи jdoe, а группа также является jdoe. Таким образом, если вы вошли в систему Ubuntu с помощью psftp, используя учетную запись jdoe, вы сможете разместить файлы в тестовом каталоге, поскольку учетная запись владельца каталога имеет разрешения на чтение, запись и выполнение (первые символы rwx после "d" указывает, что тест является каталогом. Любая учетная запись в группе jdoe также имеет права на чтение, запись и выполнение, "x" также предоставляет возможность поиска или просмотра файлов в каталоге. Последние 3 символа разрешений - это r-x предоставляющие другим учетным записям в системе разрешения на чтение и выполнение, т. Е. Возможность поиска в каталоге или просмотра файлов в нем, но не разрешение на запись, т. Е. Возможность изменять существующие файлы в каталоге или разместить новые там. Если вы хотите предоставить каждой учетной записи в системе разрешения на чтение, запись и выполнение, вы можете использовать chmod 777 test или chmod o+w test который добавляет разрешение на запись для проверки "других" учетных записей. Но убедитесь, что нет никаких проблем с безопасностью, связанных с предоставлением учетным записям в системе Ubuntu возможности размещать файлы в каталоге или изменять существующие. Кроме того, если вы вошли в учетную запись, которая владеет каталогом с помощью psftp, например, в учетную запись jdoe, вам не нужно изменять разрешения.

Вы также можете увидеть разрешения из psftp после того, как войдете в систему Ubuntu, используя его. Просто введите ls когда у вас есть каталог над тем, где вы хотите сохранить выбранные файлы, а затем найдите разрешения для каталога, в котором вы хотите хранить файлы.

Я ожидал сообщений об ошибках, о которых вы сообщали, например, если вы пытались поместить файлы в каталог, принадлежащий root, к которому другие учетные записи не имеют доступа для записи.

0

Кроме того, вы можете скачать программу под названием Filezilla. Я использую это на своей работе, это позволяет буквально перетаскивать файлы в каталог, который вы хотите. Это полезно, когда вы не хотите использовать терминал только для выполнения тривиальной задачи.

Он подключается к серверу через SSH.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .