Answers:
我在WinSCP中遇到了相同的错误。一种解决方案是使用更改“ / www /”文件夹的所有权chown
。这样,您可以使您登录的用户成为所有者,而不是“ root”作为所有者。我使用的是Amazon Linux而不是Ubuntu的实例,但是此命令对我有用:
sudo chown -R -v ec2-user /var/www/
用户“ ec2-user”是我登录时使用的用户。
为通过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
有了它,您就可以写目录,而不必向所有人开放写权限。
以下教程对我有用,并提供了有用的屏幕截图。以具有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
有用的网址:
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文件的任何更新。
您需要授予用户写权限,请记住使用先前的权限stat /var/www
。
然后,您可以使用进行更改,sudo chmod 666 /var/www
并在以后需要时将其更改回。
咨询man chmod
和man sudo
旁边的互联网获取更多信息的其他文件权限手册...