PureFTPd 问答集中文版


Pureftpd是一款快速,高质量,功能齐全的ftp服务器,最重要的是可以支持设置客户端默认编码,Pureftpd非常强大非常好用,但是相信你们都有相关PureFTPd的自己的问题,我在这里搜集了好多,去看看有没你想要的答案!

1、用户可以删除属于root的文件?

Q:我有一个属于"john"的文件夹,不过我放进了一些属于"root"(或者其他用户)的 文件.然而,我发现John可以删除这些文件!

A:是的,这时标准的Unix行为:文件夹的所有者可以在他的文件夹内为所欲为,无 视文件的所有者。如果你希望有不可变的文件,检查操作系统有没有这样的功能。

例如,在linux操作系统、ext2/ext3文件系统上,用"chattr +i "就可以实 现这种目的。在BSD系统上,试试"chflags schg "。

2、多用户共享的文件夹

Q:我有一个“public”文件夹。所有的用户动可以在此文件夹内下载、上传。文件 夹中文件的权限是777.不过,用户“john”可以删除属于用户“joe”的文件。怎么避免这种事情发生?

A:对文件夹进行如下操作:chmod 1777 public。这样,文件夹仍是公共的(可写 、可读),但只有文件所有者才可以删除文件。

3、限制文件夹的可见性

Q:我希望人们只能看到自己的主目录和自己的文件,而不希望他们看我的系统文件 。

A:这个功能叫做“chroot”。你可以带着“-A”选项运行pure-ftpd来启动这个功 能,就可以对所有的非root用户进行限制。

你也可以选择“-a ”来设置“受信组”。出了这个组中的成员,其他的用户 都受到限制。

不要同时使用-a 和 -A。

另外一种方法是选定你希望chroot的用户。可以用“/./”的技巧(参考README 文 件)或者虚拟用户来实现。

4、共享的文件夹和chroot

Q:我有一个文件夹,假设叫/var/incoming。我希望每个用户都可以共享这个文件夹。但我希望每个用户都被chroot。所以,/var/incoming应该在“joe”和“john” 的帐户可见,但他们已经被chroot了。这样,怎么使/var/incoming对这些账户可见?

A:建立符号链接并不起作用,因为一旦被chroot,就意味着在基础文件夹(用户的 主目录)之外的任何东西--包括符号链接--都不可访问。

不过所有的现代的操作系统都支持把本地目录挂载到几个不同的位置。要使/home/john/incoming和/home/joe/incoming都有/var/incoming的副本,可以使用下列命令:

* Linux : mount --bind /var/incoming /home/john/incoming

mount --bind /var/incoming /home/joe/incoming

* Solaris : mount -F lofs /var/incoming /home/john/incoming

mount -F lofs /var/incoming /home/joe/incoming

* BSD : mount_null /var/incoming /home/john/incoming

mount_null /var/incoming /home/joe/incoming

警告:FreeBSD的mount_null已经损坏,而且会导致低于4.4的发布版FreeBSD系统的内核崩溃。

另外一个解决方法是重新编译Pure_FTPd,在./configure时,加上--with-virtualchroot。使用虚拟chroot,指向在chroot文件夹外面的文件的符号连接也可以达到。在二进制包中,这个功能已经启用。

  5、Tar 和/或 gzip不工作

Q:能不能像在Wu-FTPd中一样使用“get directory.tar”命令?(Sven Goldt)

A:很不幸,不能。服务器建立gzip/tar既不是已经存在的功能,也不是计划中的功 能。对Wu-FTPd和BSD ftpd的严重的安全漏洞,这个功能难逃责任。此功能占用了大量服务器资源(可以导致拒绝服务式攻击)。它也不容易建立(chroot环境=>需要 添加/etc/lib/bin文件夹,在某些平台上添加/dev,等等)

6、如何限制对点文件的访问?

Q:有没有防止人们访问“.”文件/文件夹(像.bash_history, .profile, .ssh ...)的选项,即使这些用户是文件的所有者?(William Kern)

A:有。“-x”(--prohibitdotfileswrite),防止用户对点文件的写/删除/改变权限/重命名操作,即使用户拥有这些文件。不过,这些文件仍然可以列出,因为企图通过故意把事情搞的模糊不清来保障安全是非常愚蠢的,而且软件也不该欺骗用户 。不过,用户不能改变文件的内容。

同样,你也可以选用“-X”(--prohibitdotfilesread)选项,这样,用户就无法读 取点文件,也无法进入以点开头的文件夹。

7、日志文件

Q:日志信息记录到了哪里?怎么把日志导入一个特定的文件?怎么停止日志记录?

A:日志信息发送到系统日志守护精灵。系统日志守护精灵通常叫做“syslogd”或“syslog-ng”。这个守护精灵负责从不同的程序中按照设备(范围)和优先级(紧急程度:debug, info, warning, error, critical...)把日志事件发送到日志文件 。

Pure-FTPd的日志信息默认和“ftp”工具发送(在一些没有“ftp”工具的老系统上,是“local2”).

除非你告诉syslogd把带有"ftp"的信息重新导入特定的文件,这些信息就会被传送到 /var/adm/messages, /var/log/messages,/var/adm/syslog 或 /var/log/syslog

检查/etc/syslogd.conf,其中应该有一行类似于:

*.*;mail.none;news.none -/var/log/messages

只要加上ftp.none:

*.*;ftp.none;mail.none.news.none -/var/log/messages

如果希望FTP信息写入一个特定的文件,只要加上:

ftp.* /var/log/ftp

所有的FTP信息都会写入/var/log/ftp.这些信息只会到这儿.

可以给pure-ftpd添加-f <工具名称>(或者--facility=<工具名称>)选项来改变所使用的工具

要完全禁止日志,使用 -f none (或--facility=none).如果你从来不读log文件,推 荐这样做:这样会增进服务器的性能表现,减少磁盘的I/O.

通过阅读上文,想必大家能找到自己所需要的东西,即使没找到没事,就当看看Pureftpd方面的知识!希望本文对大家有所帮助!

相关内容