Debian 上的 Proftpd 忽略 umask 设置

Debian 上的 Proftpd 忽略 umask 设置

我找到了解决问题的方法。我这样做了:

我在 /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”不好,并且不允许您这样做,如果是这种情况,它应该记录下来。

相关内容