ome*_*ga1 8 linux ftp debian apache-http-server
我更像是一个 Windows 人,所以请原谅我对这个基本的 Linux 问题的无知。
我正在照顾一个只安装了 Apache2 和 vsftp 的 Linux (Debian) 服务器。
发生的事情是我一直在与谁拥有文件和文件夹进行斗争,但似乎无法正确解决。
这是我目前的理解:
考虑到这一点,我创建了一个名为ftpandwww的组,并将所有文件夹和文件都归入该组。这在一定程度上起作用了......
我几乎在正确的地方,除了使用我的 FTP 客户端创建的任何新文件夹都具有错误的权限(我可以通过在 FTP 客户端下更改它们来纠正),但是 www-data 无法写入它们因为它们归ftpuser 所有,我最终不得不通过 SSH 进入并运行 chown 到 ftpandwww 组,以便他们都感到高兴。
如何使我在 FTP 下创建的所有新文件夹都具有正确的权限 (774) 并自动归ftpandwww组所有,以便我可以通过网络上传和提供服务(具有写入权限),而无需进入并删除所有每次都有新文件夹和文件?
Fra*_*mas 11
在 Web 根目录上使用SetGID权限,并将它们传播给子级。
当您在目录上应用 SetGID 时,该目录中的所有新项目都将使用其父项拥有的相同组创建,而不管用户的默认组成员身份如何。
要将 SetGID 应用于文件系统对象,请chmod在权限代码前使用2。
(例如:740 => 2740)。
我在我的许多 Samba 共享上使用 SetGID,因此文件始终具有所有者组Users并且该组的任何成员都可以读取文件(我通常使用2750以便只有所有者用户可以写入文件)。
在你的情况下,运行这样的东西(用你想要的权限替换 XXX):
sudo chown -R root:ftpandwww /var/www
sudo chmod -R 2XXX /var/www
Run Code Online (Sandbox Code Playgroud)
然后新的文件和文件夹将带有像ftpuser:ftpandwww.
编辑:
根据您的用例,SetGID 可能足以解决您的问题,但是如果由于组权限不正确(但所有权正确)而导致一个或另一个用户被拒绝写入的持续问题,那么您最好的选择是设置一个自定义的umask,创建文件的用户。
如果您在为用户设置 UMASK 时遇到困难(因为它是一个守护进程),请查看此线程以了解设置守护进程用户 UMASK 的选项。
007如果您希望组成员能够写入和删除文件,并且对非所有者没有权限,我会推荐掩码。