Использование pscp и отказ в разрешении

Я использую pscp для передачи файлов на виртуальный сервер Ubuntu с помощью этой команды:

pscp test.php user@server:/var/www/test.php

и я получаю отказ в разрешении на ошибку. При попытке перенести в папку /home/user/ проблем нет.

Я предполагаю, что это связано с тем, что пользователь, которого я использую, не имеет доступа к папке /var/www/. Когда я использую SSH, мне нужно использовать sudo, чтобы получить доступ к пути /var/www/, и я это делаю.

Можно ли указать, что pscp должен «sudo» передавать на сервер, чтобы я мог получить доступ к пути /var/www/ и фактически иметь возможность передавать файлы в эту папку?


person Espen    schedule 21.12.2010    source источник
comment
Отправил файл /home/user/test.php. Затем используйте plink или другой SSH-клиент, чтобы переместить туда файл с помощью sudo, если это необходимо. Я думаю, что это лучше, чем играться с разрешениями и ломать все подряд.   -  person Akira Yamamoto    schedule 02.08.2017
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, сбой сервера или обмен стеками для веб-мастеров лучше спросить.   -  person jww    schedule 18.08.2018


Ответы (3)


Если вы являетесь владельцем сервера:

Добавьте себя в группу www-data:

sudo usermod -a -G www-data <username>

И установите правильные разрешения:

sudo chown -R www-data:www-data /var/www/
sudo chmod -R 0775 /var/www/

Это должно сработать.

person RoelAdriaans    schedule 22.12.2010
comment
Я хотел бы отметить нынешних владельцев некоторых папок, поскольку выполнение вышеописанного сломало один из моих сайтов. Я знаю, что это моя собственная ошибка, однако мне пришлось вернуть право собственности, потому что я настроил ruby/rails/rvm для использования отдельного набора имен пользователей. - person Antony Koch; 06.01.2012
comment
Должен был прочитать этот комментарий, прежде чем погрузиться и запустить эти команды. Полностью облажался наш экземпляр EC2 на работе, и теперь сервер разработки отключен на несколько часов. :( Будьте осторожны, используя sudo!! - person Jonathan; 31.03.2014
comment
sudo usermod -a -G www-data <username> работал на меня - person Akira Yamamoto; 02.08.2017
comment
-a должен быть перед -G, иначе я получаю ошибку "группа не найдена" - person TreeAndLeaf; 24.11.2017

Остерегайтесь следующего, что, когда вы пишете

sudo usermod -G www-data <username>

Параметр -G сделает указанного пользователя () членом определенной группы (групп), которые указаны. Таким образом, приведенное выше утверждение сделает пользователя частью группы www-data, НО удалит пользователя из любой другой группы, к которой он принадлежит. Чтобы избежать этого, вы должны либо добавить опцию -a, либо указать все текущие группы, частью которых вы хотите, чтобы пользователь был. Я случайно удалил пользователя «администратор» из группы sudo, потому что я этого не знал. Итак, если вы хотите, чтобы указанный пользователь сохранил свое текущее членство в группе, напишите следующую команду.

sudo usermod -G -a www-data <username>

Для получения дополнительной информации о команде usermod посетите:

справочные страницы Ubuntu — usermod

person dejris    schedule 02.06.2014

У меня была такая же ошибка «pscp: невозможно открыть YourFilePath: разрешение отклонено»,

проверьте право собственности на файл, который вы пытаетесь перезаписать, вы получите эту ошибку, если не сможете его перезаписать,

Если у вас нет контроля над удаленным файлом, просто попробуйте переименовать файл, который вы пытаетесь переместить.

person Qusai Sabri    schedule 21.03.2018
comment
Это была моя проблема. Файл был создан пользователем root, когда я пытаюсь перезаписать его с помощью пользователя. Спасибо. - person Marcin Koziarski; 22.04.2020