好的,我已经尽力通过搜索和查看可能的重复项来找到答案,但是如果它在某个地方,我还是无法原谅我。
我的问题如下。我已将 的所有者设置/var/www
为myuser:www-data
,并将文件夹及其所有内容(目前只是基本的 index.html)的权限设置为750
,Apache 似乎按预期运行它,但当我以用户身份通过 FTP 进入服务器时,我无法访问它myuser
。我的意思是,我可以访问它,但只要我尝试编辑、删除或添加某些内容,我就会得到500 Permission denied
,如果我尝试编辑权限,我会得到500 Unknown SITE command
。
救命!我做错了什么?设置用户和组,然后设置上述权限的想法来自我的一位好朋友,他算是专家,但我问了这么多问题,感觉打扰到他了,所以如果你能再帮我一下,那就太好了!
我正在尝试将包含 4 个虚拟主机的备份放回 www 文件夹,但我放在那里的内容不应该引起任何问题,对吧?这只是稍后对虚拟主机的配置与此有关,对吧?
提前致谢!
补充信息:
我运行了这个:
myuser@myserver:/$ groups myuser
得到了这个:
myuser : myuser adm cdrom sudo dip plugdev lpadmin sambashare
然后我运行了这个:
myuser@myserver:/$ groups www-data
得到了这个:
www-data : www-data
然后是这个:
myuser@myserver:/var/www$ ls -l
得到了这个:
total 4
-rwxr-x--- 1 tjita1 www-data 177 Jan 25 17:45 index.html
关于 ftpserver,我没有做任何特别的事情,我只是安装了 vsftpd。哦,对了,我还添加了一行我认为/etc/vsftpd.conf
或类似的东西,内容如下:chmod_enable=YES
。
另外,我无法使这 4 个空格缩进起作用,对此深感抱歉。
答案1
安装 ftp 服务器后,sudo apt-get install vsftpd
您必须对其进行配置。要启用写入权限,您必须编辑该/etc/vsftpd.conf
文件并取消注释
#write_enable=YES
行,因此应该读取
write_enable=YES
保存文件并vsftpd
使用重新启动sudo service vsftpd restart
。
对于其他配置选项,请咨询本文档或者man vsftpd.conf
答案2
我发现使用 ftp 和 curl 命令的简单方法这里。如果你想用一个命令来使用 ftp,那么使用以下命令
sudo curl -T file_to_be_uploaded.txt ftp://mydomain.com/mydirectory/ --user username:password
如果运行后出现错误551: permission denied
,则您正在上传的文件可能已存在于远程,而您无权覆盖它。因此,请使用其他文件名上传它或删除远程上的当前文件。
答案3
我遇到了同样的问题,关于 Write_enable 或文件夹权限的建议都不起作用。我将 FTP 客户端中的连接类型从 FTP 更改为 SSH/SFTP,一切正常。显然,VSFTPD 需要安全连接才能写入。
答案4
运行以下命令 - 您需要上传文件的文件夹
sudo chown -R <>:root <> 示例
sudo chown -R myloginid:root /home/myproject