11

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

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

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

5 ответов5

14

Я получал ту же ошибку в 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: список команд
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

на 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 ведение журнала сеанса включено с помощью сеанса.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?т = 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 на сервере можно выполнять и удалять, не затрагивая других пользователей.

0

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

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

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

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