Использование pscp и разрешение на доступ запрещены

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

pscp test.php [email protected]:/var/www/test.php

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

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

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

Ответ 1

Если у вас есть сервер:

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

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

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

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

Это должно сделать свое дело.

Ответ 2

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

sudo usermod -G www-data <username>

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

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

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

Ubuntu manpages - usermod

Ответ 3

У меня была та же ошибка "pscp: не удалось открыть YourFilePath: разрешение отклонено",

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

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