如何使用WinSCP将文件复制到`/ var / www`中?


11

当我尝试将我的Web文件放入/var/wwwec2 Ubuntu实例中的apache中时,它给我一个错误,指出我没有权限。

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

如何授予自己执行此权限的权限,或者/var/www使用WinSCP 将文件复制到其中的最佳方法是什么?

Answers:


15

我在WinSCP中遇到了相同的错误。一种解决方案是使用更改“ / www /”文件夹的所有权chown。这样,您可以使您登录的用户成为所有者,而不是“ root”作为所有者。我使用的是Amazon Linux而不是Ubuntu的实例,但是此命令对我有用:

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

用户“ ec2-user”是我登录时使用的用户。

潜在有用的链接


您作为其他人问题答案的一部分的帮助请求可能不会得到任何答复或有用的反馈。要做到这一点,您最好向自己的问题询问所需的详细信息。
杀手主义者

9

为通过WinSCP登录的用户启用写权限。有两种方法可以做到这一点。

第一种方法是更改​​文件夹的权限,以允许任何人对其进行写入。这不是最好的安全性。

chmod 777 /var/www


第二种方法是将用户添加到拥有该目录的组中,然后设置该组写入目录的权限。

找出谁拥有目录:

ls -l /var | grep www

您会看到类似以下内容的信息:drwxr-x --- 9 www-data www-data 4096 2009年7月14日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 2009年7月14日www

有了它,您就可以写目录,而不必向所有人开放写权限。


1
准确度稍有校正-sudo chmod 777 / var / www-sudo usermod -G www-data(用户名)-sudo chmod 770 / var / www-可能会根据您所使用的示例而定,但“ sudo”应该有效无论您是谁(假设您的登录名都在/ etc / sudoers中的root / admin目录下)。
bshea 2013年

1

在ec2上,这对我有用。使用用户“ 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,以及常规用户名。如果需要登录,请输入密码凭据。在“高级/ SSH /身份验证”中添加用户的相应私钥文件。

取消选中高级/ SSH /身份验证/尝试“键盘交互式”身份验证应允许高级/环境/ SCP Shell /外壳/ Shell:sudo su-提供sudo权限,以非所有者用户身份访问Web服务器目录。


更新:08/03/2017

WinSCP日志记录有助于解决问题。

winscp.net/eng/docs/logging:

可以从“首选项”对话框的“日志记录”页面启用[WinSCP]日志记录。还可以分别使用/ log和/ xmllog参数从命令行启用日志记录,这对于脚本编写特别有用。在.NET程序集中,使用Session.SessionLogPath1启用会话日志记录。

根据WinSCP连接错误,某些服务器安装可能需要将指令添加到(Ubunto,CentOS,其他Linux-Server)/ etc / sudoers文件中,以使指定用户不需要TTY。在/etc/sudoers.d/中创建文件(使用诸如Amazon Command Line Interface或PuTTY之类的工具)可能比编辑/ etc / sudoers更好。一些/ etc / sudoers版本推荐它:

必须使用“ visudo”命令作为根文件来编辑该文件。请考虑在/etc/sudoers.d/中添加本地内容,而不是直接修改此文件。有关如何编写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?t=2109

WinSCP文档:https : //winscp.net/eng/docs/faq_su

使用SCP协议,您可以在“高级站点设置”对话框的“ SCP /外壳”页面上将以下命令指定为自定义外壳:

须藤-s

[...]

请注意,由于WinSCP无法实现终端仿真,因此需要关闭sudoers选项requiretty。

Ubuntu Apache / etc / sudoers中的指令建议将指令添加到/etc/sudoers.d,而不是直接编辑/ etc / sudoers。根据安装情况,将指令添加到/etc/sudoers.d/cloud-init也可能有效。

遵循实例文档中提供的步骤来创建具有sudo权限的SSH测试用户可能会有所帮助,以确保该用户具有建议的实例设置,并且可以在不影响其他用户的情况下实现和删除对服务器sudoer文件的任何更新。


0

您需要授予用户写权限,请记住使用先前的权限stat /var/www

然后,您可以使用进行更改,sudo chmod 666 /var/www并在以后需要时将其更改回。

咨询man chmodman sudo旁边的互联网获取更多信息的其他文件权限手册...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.