我有 Ubuntu 12.04 服务器,并且已经为 FTP 安装了 VSFTPD 服务。
我正在尝试创建一个只能访问/var/www/目录和子目录的所有权限。
FTPUser 不应具有任何根/顶级目录和文件的访问权。
到目前为止我已经做了以下事情。
- 我创建了名为 FTPUser1 的用户
- 我已将 FTPUser1 的主目录更改为 /var/www/
- 我已经编辑/etc/vsftpd.conf文件并已设置chroot_local_user=是
- 重新启动 vsftpd 服务
完成这些操作后,我的 FTPuser1 仍然能够访问顶级目录和文件。
请告诉我,如何阻止顶级访问?
答案1
(不确定为什么 2014 年的问题会再次出现在主页上,但无论如何 :D)
像其他答案中建议的那样,干扰文件系统其余部分的整体权限可能不是一个好主意。更好的方法是使用名为“chroot”的功能。
“chroot”是“change root”的缩写,它的作用就是:将(FTP)用户可以访问的目录树的根更改为管理员想要的根。有时,同一功能被称为将用户“囚禁”在其主目录中。
大多数 FTP 服务器都支持 chroot(除了一些非常小的、最基本的服务器)。我对 vsftpd 不太熟悉,但根据Cybercity 上的指南您需要将配置指令设置chroot_local_user
为1
。
答案2
以所有者/root 身份执行:
chmod 700 -r [directory]
700
表示只有所有者才具有完全访问权限,-r
表示将规则应用于子文件夹。您还需要:
chown user:user -r [/path/to/dir]
该chown
命令更改所有者。user:
是将成为所有者的用户名;:user
是组。