我找到了解决问题的方法。我这样做了:
我在 /etc/proftpd/proftpd.conf 中添加了以下内容:
<Limit SITE_CHMOD>
DenyAll
</Limit>
我有以下问题:
当我将文件上传到 FTP 服务器时,我设置的 umask 被完全忽略。所有文件的权限均为 644。
我用Debian 5.0.3作为操作系统和proftpd 1.3.1作为 ftp 服务器。登录的用户称为马克杯他是本地用户(不是虚拟用户)。他被 chroot 到主目录
/主页/马克杯/
我尝试了以下方法:
1. 在 /etc/proftpd/proftpd.conf 中设置 umask
Umask 000 000
这应该会导致目录为 777,文件为 666,因为目录 umask 应用于 777,文件 umask 应用于 666。
之后我当然重新启动了 proftpd 以确保配置已重新加载。
2. 在 /home/mug/.bashrc 中为用户设置 umask
我为用户在 .bashrc 中添加了以下内容:
umask 0000
之后我重新加载了.bashrc:
源/home/mug/.bashrc
我还通过更改为用户并使用此命令来检查用户的 umask 设置:
苏马克杯umask
结果我得到了一个 umask 0000 的提示。所以这有效。
但是我上传的所有文件仍然设置了 644 权限 :(
我究竟做错了什么?
答案1
Proftp 以基本模式 0666 启动,并且由于 umask 只能夺走权限,因此您永远无法达到 0777。
答案2
检查用户 Proftpd 和组 nogroup 的 umask。由于您尝试设置高于系统默认值的权限,因此它们可能会受到其自己的 umask 值的限制。
一种检查方法可能是将 proftpd.conf 中的 umask 更改为 777;如果新文件显示为 000,则表明配置行正在运行。
答案3
proftpd 可能会认为 ulimit 为“000”不好,并且不允许您这样做,如果是这种情况,它应该记录下来。