Как мне скопировать файлы в `/ var / www` с WinSCP?

11

Когда я пытаюсь поместить свои веб-файлы /var/wwwв apache на моем экземпляре ec2 Ubuntu, он выдает ошибку, в которой говорится, что у меня нет разрешения.

Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3

Как я могу дать себе разрешение сделать это или как лучше копировать файлы с /var/wwwпомощью WinSCP?

Андрей
источник

Ответы:

15

Я получал ту же ошибку в WinSCP. Одним из решений является изменение владельца папки «/ www /» с помощью chown. Таким образом, вы можете сделать пользователя, с которым вы входите в систему, владельцем, а не «root», являющимся владельцем. Я использую экземпляр Amazon Linux, а не Ubuntu, но эта команда работала для меня:

sudo chown -R -v ec2-user /var/www/

Пользователь 'ec2-user' - это пользователь, с которым я захожу.

Потенциально полезные ссылки

  • alestic.com : Использование sudo, ssh, rsync на официальных изображениях Ubuntu для EC2
  • apache.com : список команд
chrisfargen
источник
Ваши запросы о помощи как часть ответа на чужой вопрос, скорее всего, не получат никаких ответов или полезных отзывов. Чтобы получить это, вам, вероятно, лучше задать свой вопрос с точными деталями, которые вам нужны.
убийца
9

Включите разрешения на запись для пользователя, входящего в WinSCP. Есть два способа сделать это.

Первый способ - изменить права доступа к папке, чтобы каждый мог писать в нее. Это не лучшая безопасность.

chmod 777 /var/www


Второй способ - добавить пользователя в группу, владеющую каталогом, а затем установить разрешения для записи группы в каталог.

Узнайте, кому принадлежит каталог:

ls -l /var | grep www

Вы увидите что-то вроде: drwxr-x --- 9 www-data www-data 4096 14 июля 2009 г. www Важно отметить два имени root и root. В этом случае владельцем каталога является www-data, а группой каталога является www-data. Теперь вы добавите своего пользователя в группу www-data.

usermod -G www-data user

Теперь просто добавьте разрешение на запись в группу.

chmod 770 /var/www

Сейчас

ls -l /var | grep www

должен вернуть: drwxrwx --- 9 www-data www-data 4096 14 июля 2009 г. www

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

Крис Тинг
источник
1
Небольшая поправка на точность - sudo chmod 777 / var / www - sudo usermod -G www-data (username) - sudo chmod 770 / var / www - Может работать в зависимости от того, кто вы в вашем примере, но sudo должно работать независимо от того, кто вы (при условии, что ваш логин находится в / etc / sudoers для root / admin, конечно).
bshea 25.09.13
1

на ec2 это работает для меня. войти в ящик через putty с пользователем "ec2-user" и использовать команды:

sudo root
chmod 777 <NAME_OF_FOLDER>

Примечание: это предоставляет доступ на запись для всех пользователей.

Теперь должен иметь возможность писать с помощью WinScp.

голубое небо
источник
1

Следующий урок работал для меня и предоставляет полезные скриншоты. Вход в систему как обычный пользователь с разрешениями sudo просто требует настройки нескольких параметров WinSCP: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

Установите протокол сеанса / файла на: SCP, введите IP-адрес хоста / экземпляра, порт - обычно 22 и обычное имя пользователя. Введите пароль, если этого требует логин. Добавьте соответствующий файл закрытого ключа пользователя в Advanced / SSH / Authentication.

Снятие флажка Advanced / SSH / Аутентификация / попытка «интерактивной клавиатуры» аутентификации должно позволить Advanced / Environment / SCP Shell / Shell / Shell: sudo su - предоставить разрешения sudo для доступа к каталогам веб-сервера от имени пользователя, не являющегося владельцем.


Обновление: 08.03.2017

Ведение журнала WinSCP может быть полезно для устранения проблем.

winscp.net/eng/docs/logging:

[WinSCP] Ведение журнала можно включить на странице «Ведение журнала» диалога настроек. Ведение журнала также можно включить из командной строки, используя параметры / log и / xmllog соответственно, что особенно полезно при создании сценариев. В сборке .NET ведение журнала сеанса включено с использованием Session.SessionLogPath1).

В зависимости от ошибок подключения WinSCP для некоторых установок серверов может потребоваться добавление директивы в файл (Ubunto, CentOS, other-Linux-Server) / etc / sudoers, чтобы не требовать TTY для указанного пользователя. Создание файла в /etc/sudoers.d/ (с использованием такого инструмента, как интерфейс командной строки Amazon или PuTTY) может оказаться более подходящим вариантом, чем редактирование / etc / sudoers. Некоторые версии / etc / sudoers рекомендуют это:

Этот файл ДОЛЖЕН быть отредактирован командой 'visudo' от имени root. Пожалуйста, рассмотрите возможность добавления локального контента в /etc/sudoers.d/ вместо прямой модификации этого файла. Смотрите man-страницу для получения подробной информации о том, как написать файл sudoers.

При редактировании файла sudoers (с правами root) через командную строку следует использовать команду visudo, чтобы открыть файл, поскольку он будет анализировать файл на наличие синтаксических ошибок. Файлы /etc/sudoers.d/ обычно принадлежат root и chmoded с минимальными правами доступа. На файл / etc / sudoers по умолчанию можно ссылаться, так как он должен автоматически рекомендовать разрешения chmod при установке. например: 0440 r - r -----.

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

Полезные ссылки:

  • Stackoverflow: stackoverflow.com/questions/25688850/cloud-init-how-to-add-default-user-to-sudoers-d
    • www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

Форум WinSCP: - winscp.net/forum/viewtopic.php?t=3046 - winscp.net/forum/viewtopic.php?t=2109

Документ WinSCP: https://winscp.net/rus/docs/faq_su

С протоколом SCP вы можете указать следующую команду в качестве пользовательской оболочки на странице SCP / Shell диалогового окна Advanced Site Settings:

судо

[...]

Обратите внимание, что поскольку WinSCP не может реализовать эмуляцию терминала, вам необходимо отключить параметр sudoers requiretty.

Инструкции в Ubuntu Apache / etc / sudoers рекомендует добавлять директивы в /etc/sudoers.d, а не редактировать / etc / sudoers напрямую. В зависимости от установки добавление директивы в /etc/sudoers.d/cloud-init также может работать.

Может оказаться полезным создать тестового пользователя SSH с разрешениями sudo, выполнив шаги, приведенные в документации к экземпляру, чтобы убедиться, что пользователь рекомендовал настройки экземпляра и любые обновления файлов sudoer на сервере можно выполнять и удалять, не затрагивая других пользователей.

1keown
источник
0

Вы должны дать пользователю права на запись, помните предыдущие разрешения, используя stat /var/www.

Затем вы можете изменить их с помощью sudo chmod 666 /var/wwwи изменить их позже, когда это необходимо.

Проконсультируйтесь man chmodи man sudoвместе с другими руководствами по разрешению файлов в Интернете для получения дополнительной информации ...

Тамара Вийсман
источник