Unix系统下pureftpd使用详解。特别是解决了很多人匿名用户无法登录的问题。与数据库的结合使得管理成千上万的用户很轻松。
目录:
一、Unix系统权限概述
二、匿名用户的权限
三、真实用户和虚拟用户的权限
--------------------------------------------------------分 割 线-------------------------------------------------
一、Unix系统权限概述
1、访问权限
Unix 文件系统是一个能够支持多个用户同时访问的文件系统。文件访问权限分为三种类型的用户:文件属主或用户(User),同组用户(Group),其他用户(Other)。
用户对文件或目录的访问权限有三种:读(r)、写(w)和执行(x)。
2、文件访问权限
如果用户具有读文件的访问权限,就可以查看文件的内容;具有写文件的访问权限,就可以修改文件的内容;具有执行文件的访问权限,就可以运行程序文件。
3、目录访问权限
对于目录来说,读访问权限允许用户列出目录的内容;写访问权限运行用户在目录中创建或删除文件及目录;执行访问权限允许用户使用 cd 命令进入目录或使用该目录作为路径名的一部分。
重要:pureftpd的权限控制是通过系统目录的权限来实现的。
二、匿名用户权限
1、变更匿名用户主目录的所有者。
按照我前篇文章(详情见我的前作《pureftpd基础:安装、配置、实现匿名登录》)的步骤,在系统中创建了匿名用户的主目录后,匿名用户无法进行上传、下载、建目录、删除等等操作。这是因为匿名用户的主目录的所有者不是系统“ftp”用户。
# ls -l /home/
total 6
drwxr-xr-x 3 root wheel 512 Oct 16 04:42 ftp
drwxr-xr-x 2 indian wheel 512 Oct 11 12:55 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
我们看到 ftp 目录的所有者为 root 。我们更改“ftp”目录的所有者,目录有 rwx 权限。
# chown ftp:14 /home/ftp
# ls -l /home/
total 6
drwxr-xr-x 3 ftp ftp 512 Oct 16 04:42 ftp
drwxr-xr-x 2 indian wheel 512 Oct 11 12:55 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
用 flashfxp 匿名连接。现在匿名用户可以上传文件,但是不能下载文件、建文件夹和删除文件。当你下载时看到没有被管理员核准。
550-This file has been uploaded by an anonymous user. It has not
550 yet been approved for downloading by the site administrators.
传送失败!
2、允许匿名用户下载。
修改配置文件,允许下载文件。
# ee /usr/local/etc/pure-ftpd.conf
AntiWarez yes
AnonymousCanCreateDirs no
AnonymousCantUpload no
“AntiWarez yes ”意思是不接受所有者为 “ftp” 的文件的下载,我们把它设置为 “no”,重启 pureftpd 服务,就可以下载文件了。
“ AnonymousCanCreateDirs no”,意思是匿名用户是不能创建目录,我们把它设置为“yes”,重启 pureftpd 服务,匿名用户就可以创建目录了。
“AnonymousCantUpload no”,意思是匿名用户可以上传文件,如果设置为“yes”,匿名用户不能上传。
3、只允许匿名用户登录。
默认配置文件允许匿名用户和系统帐户登录。如果只允许匿名帐户登录,修改默认配置文件:
AnonymousOnly yes //是否只让匿名登录
重启服务器或重启服务(必须)后,就只能匿名登录了。无论你用什么帐号,甚至用不存在的帐号登录(乱码也行,只要 ftp 服务器的 IP 是对的)都只会登录到匿名用户的主目录。
三、真实用户和虚拟用户的权限
系统真实用户和PureDB虚拟用户的权限由系统目录和文件权限决定。
1、具有管理权限的用户。
具有管理权限的用户也就是有上传、下载、建目录和删除权限的用户。
# pw groupadd ftpadmingroup
# pw useradd ftpadmin -g ftpadmingroup
# pure-pw useradd tom -u ftpadmin -d /home/ftpadmin
# ls -l /hom/e
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
drwxr-xr-x 5 ftpadmin ftpadmingroup 512 Oct 16 11:02 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
“ftpadmin”用户对“ftpadmin”目录有 rwx 的权限。
2、系统目录的 r 权限,控制 FTP 的列表权限。
# chmod u-r /home/ftpadmin
# ls -l /home/
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
d-wxr-xr-x 5 ftpadmin ftpadmingroup 512 Oct 16 11:02 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
去掉“ftpadmin”目录的 r 权限。FTP 不能列表,可以上传、建目录。但是如果知道文件路径,照样可以下载和删除文件(用迅雷等工具直接填入资源地址就可以下载)。
3、系统目录所有者的 w 权限,控制 FTP 的删除、重命名和建目录权限。
# chmod u+r-w /home/ftpadmin
# ls -l /home/
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
dr-xr-xr-x 5 ftpadmin ftpadmingroup 512 Oct 16 11:02 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
去掉 ftpadmin 目录所有者的 w 权限后,pureftpd 的虚拟用户不能删除、重命名文件或目录,不能建目录。但是可以下载文件。
4、系统目录所有者的 x 权限,控制 FTP 的列表、上传、下载、建目录和删除等全部权限。
# chmod u+rw-x ftpadmin
# ls -l
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
drw-r-xr-x 4 ftpadmin ftpadmingroup 512 Oct 16 11:48 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
去掉 ftpadmin 目录所有者的 x 权限后,pureftpd 的虚拟用户不能列表、上传、下载、建目录和删除。
总结:系统目录和文件的权限决定 pureftpd 虚拟用户的权限。