問題描述
使用 pscp 並獲得權限被拒絕 (Using pscp and getting permission denied)
I'm using pscp to transfer files to a virtual ubuntu server using this command:
pscp test.php user@server:/var/www/test.php
and I get the error permission denied. If I try to transfer to the folder /home/user/ I have no problems.
I guess this has to do with that the user I'm using doesn't have access to the folder /var/www/. When I use SSH I have to use sudo to get access to the /var/www/ path - and I do.
Is it possible to specify that pscp should "sudo" transfers to the server so I can get access to the /var/www/ path and actually be able to transfer files to this folder?
參考解法
方法 1:
If you own the server:
Add yourself to the www-data group:
sudo usermod -a -G www-data <username>
And set the right permissions:
sudo chown -R www-data:www-data /var/www/
sudo chmod -R 0775 /var/www/
This should do the trick.
方法 2:
Beware of the following that when you write
sudo usermod -G www-data <username>
The option -G will make the specified user () a member of the particular group(s) that are specified. So the above statement will make the user a part of group www-data BUT will remove the user from any other group that the user belongs to. To avoid this you must either add the option -a or specify all the current groups that you want the user to be a part of. I accidently took the user "administrator" out of the sudo group because I didn't know this. So if you want the specified user to keep it's current group membership then write the following command.
sudo usermod -G -a www-data <username>
For more info regarding the usermod command, visit:
Ubuntu manpages - usermod
方法 3:
I had the same error "pscp: unable to open YourFilePath: permission denied",
check the ownership of the file you are trying to overwrite, you will get this error if you can't overwrite it,
If you don't have control over the remote file, just simply try to rename the file you are trying to move.
(by Espen、RoelAdriaans、dejris、Qusai Sabri)