如何通过 SFTP 从 ubuntu 用户访问 /var/www/html 文件夹

如何通过 SFTP 从 ubuntu 用户访问 /var/www/html 文件夹

我通过 putty 运行一些随机命令,搞乱了一些权限级别/var/www/和文件夹。/var/www/html/

最初我想添加或编辑一些文件,/var/www/html/并且我执行了一些命令,这些命令授予我通过 SFTP 添加或编辑文件的权限。但这导致问题,我无法通过 webserver 更新或创建任何文件apache

此后,我执行了一些随机命令,可以apache查看和编辑下面的文件/var/www/html/,但我无法从 SFTP 查看文件。

我附上了一些文件夹权限的截图

我的配置

OS: Ubuntu 18.04
Provider: AWS
FTP Username: ubuntu

我通过 PPK 文件登录 SFTP

现在我想通过 SFTP 访问/var/www/html/

在此处输入图片描述

在此处输入图片描述

答案1

您需要以具有 sudo 权限的用户身份或 root 身份登录。如果用户没有 root 权限,则必须尊重文件夹所有者

由于所有者是 apache,因此某些非 sudo 用户当然无法访问它

答案2

我以这种方式处理类似的情况:

groupadd web
groupmems -g web -a myuser
chown -R .web /var/www/html/
chmod -R g+w /var/www/html/
mkdir ~myuser/web
mount --bind /var/www/html/ ~myuser/web

解释:为 myuser(及其他人)创建组,并在他的模式目录中创建挂载点。然后是mount --bindapache 目录。

您必须添加mount到启动脚本。

现在您就可以从家里访问 apache 目录了。

答案3

两年后,我终于有机会回答我自己的问题了。所以如果有人遇到同样的问题,他们可以关注这个答案

可能有两种最简单的方法:

  1. 将所有文件和文件夹的所有权分配给 Web 服务器。大多数情况下,前提www-data是安装了 apache/nginx。如果没有,请先找到 Web 服务器用户#参考

    sudo chown -R www-data:www-data /var/www/html/

这会将所有文件和文件夹的所有权分配给www-data用户和www-data用户组。检查chown命令参考

  1. 并将 FTP/SFTP 用户名添加到 webserver 组。

    sudo usermod -a -G www-data ubuntu

这会将ubuntu用户添加到 webserver 组www-data。检查 usermod 命令参考`

  1. 为所有文件和文件夹添加权限

    sudo chmod -R 775 /var/www

/var/www/这将按如下方式向所有文件/文件夹添加权限

R = 4 (Octal Value for read permission)
W = 2 (Octal value for Write Permission)
X = 1 (Octal value for execute permission)

Owner: 4+2+1 = 7 (Read/Write/Execute)
Group: 4+2+1 = 7 (Read/Write/Execute)
Others: 4+1 = 5 (Read/Execute)

通过这种方式,所有者和组具有读取、写入和执行权限。从 ftp/sftp 登录的用户已在第二步添加到 web 服务器组中。因此 Web 服务器和 FTP 用户都能够添加/编辑文件。

相关内容