我已经为正在进行的项目设置了一个小型 FTP 服务器。
但是,当“user1”创建一个目录时,该目录的用户和组都是“user1”。我想要获取的是属于 user1 但由特定组拥有的目录。
我该怎么做? umask 之类的东西可以帮助我吗?还是需要在 FTP 客户端 (FileZilla) 中进行设置?
答案1
将允许访问 ftp 目录的用户添加到组ftp
usermod -a -G ftp user1
usermod -a -G ftp user2
...
usermod -a -G ftp userN
并将 ftp 目录的所有权更改为ftp
组
chown -R ftp:ftp /path/to/ftp/dir
您可能还想调整权限
chmod 775 /path/to/ftp/dir
答案2
为了影响所需行为,您需要
- 使父目录归您需要的组所有。
- 在其上设置所谓的“粘性位”。
在 Linux 上,此设置将确保在设置了粘性位的目录中创建的新项目归该目录的拥有组所有,而不是归创建该项目的进程的主要组所有。
所以基本上你需要
# chgrp that_group path/to/the/target/dir
# chmod g+s $_
请注意,umask
设置与粘性位无关,因此您需要确保umask
用户的设置至少不会被屏蔽,g+rx
否则他们在那里创建的目录将无法被拥有组遍历/读取。