Як скопіювати файли в `/ var / www` за допомогою WinSCP?


11

Коли я намагаюся розмістити свої веб-файли /var/wwwв апачі на моєму екземплярі Ubuntu ec2, це дає мені помилку, заявивши, що я не маю дозволу.

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

Як я можу дати собі дозвіл на це чи найкращий спосіб копіювання файлів у /var/wwwWinSCP?

Відповіді:


15

Я отримував таку ж помилку в WinSCP. Одне рішення - змінити право власності на папку '/ www /' за допомогою chown. Таким чином, ви можете зробити користувача, з яким ви входите, у власника, а не "root" бути власником. Я використовую екземпляр Amazon Linux, а не Ubuntu, але ця команда працювала для мене:

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

Користувач 'ec2-користувач' - це користувач, з яким я входжу.

Потенційно корисні посилання

  • 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
незначна корекція точності - sudo chmod 777 / var / www - sudo usermod -G www-data (ім'я користувача) - sudo chmod 770 / var / www - Це може працювати залежно від того, хто ти є у своєму прикладі, але "sudo" повинен працювати незалежно від того, хто ви є (якщо, звичайно, ваш логін знаходиться в / etc / sudoers для root / admin).
bshea

1

на ec2 це працює для мене. увійдіть в поле через шпаклівку з користувачем "ec2-користувач" та використовуйте команди:

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 / екземпляр ip, порт - зазвичай 22 та звичайне ім'я користувача. Введіть облікові дані пароля, якщо цього вимагає логін. Додайте відповідний файл приватного ключа в розділі Advanced / SSH / Authentication.

Якщо зняти прапорець під час розширеного / SSH / аутентифікації / спроби аутентифікації на клавіатурі, слід дозволити Advanced / Environment / SCP Shell / Shell / Shell: sudo su - надавати дозволи sudo для доступу до каталогів веб-серверів як користувача, який не є власником.


Оновлення: 03.03.2017

Журнал WinSCP може бути корисним для усунення неполадок.

warscp.net/eng/docs/logging:

[WinSCP] Ведення журналів можна ввімкнути на сторінці журналу в діалоговому вікні Налаштування. Журнал також можна включити з командного рядка, використовуючи параметри / log та / xmllog відповідно, що особливо корисно для сценаріїв. У збірці .NET, реєстрація сеансів увімкнена за допомогою Session.SessionLogPath1).

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

Цей файл ОБОВ'ЯЗКОВО редагувати командою "visudo" як корінь. Подумайте про те, щоб додати локальний вміст у /etc/sudoers.d/, а не безпосередньо змінювати цей файл. Детальну інформацію про те, як написати файл судора, див. На сторінці чоловіка.

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

superuser.com/a/869145:

visudo -f /etc/sudoers.d/simefilename

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: - warscp.net/forum/viewtopic.php?t=3046 - warscp.net/forum/viewtopic.php?t=2109

WinSCP Doc: https://winscp.net/eng/docs/faq_su

За допомогою протоколу SCP ви можете вказати таку команду як спеціальну оболонку на сторінці SCP / оболонки діалогового вікна «Розширені настройки сайту»:

судо -с

[...]

Зауважте, що оскільки WinSCP не може реалізувати емуляцію терміналу, вам потрібно вимкнути параметр sudoers.

Інструкції з 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поряд з іншими посібниками з дозволу на файли ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.