我们通过创建一个“网站”组并将 apache 用户 (www-data) 添加到该组来解决这个问题(必须以 root 身份完成 - 使用$ su root 切换到 root 或使用 sudo in像这样的命令前面$ sudo useradd username:
$ addgroup websites
$ getent websites
- 将 apache 用户添加到网站组,以便 apache 有权运行网站
$ usermod -G websites www-data
$ grep '^ websites' /etc/group
$ useradd username
$ passwd username
$ usermod -G websites username
$ mkdir /home/username
- 网站目录的所有者必须是root,否则sftp会失败
- 让root成为网站用户主目录的所有者和组:
$ chown root:websites /home/username
$ chmod 750 /home/username
$ cd /home/username
- 创建一个 Web 根目录(这是网站文件所在的 opublic 目录):
$ mkdir html
- 给网站用户 owner:group on web root:
$ chown username:websites html
$ chmod 750 html
- 将网站所有文件复制到
html目录下
- 递归地设置 web 根目录中所有文件的所有权
$ chown -R username:ssb-websites html
- 递归设置 web-root 内所有文件的权限(所有者和组具有读、写、执行权限):
$ chmod -R 770 html
$ chmod 644 $(find . ! -type d)
- 如果遇到问题,请确保目录权限设置如下(顶级网站目录
/home/username/ 必须由 root 拥有,否则 sFTP 访问将不起作用):
/home/username | drwxr-x--- | root:websites
/home/username/html | drwxr-x--- | username:websites
/home/username/html/directories/ | drwxrwx--- | username:websites
/home/username/html/files.html | -rw-r--r-- | username:websites
我们是设计师,所以这是我们的工作方式,如果有人可以看到改进,请随时编辑!