Proftpd下如何才能配置一种简单的管理模式?ProFTPD是一个Unix平台上或是类Unix平台上(如Linux, FreeBSD...)的FTP服务器程序。思路决定出路,拥有怎样的思路就决定Proftpd的管理方式。本文讲述的是Proftpd下一种简单的管理模式。一种简单实用的配置管理方式:
proftpd和mysql组合可以完成比较庞大而且完备的权限控制,但是也同样增加了管理和维护的复杂性,在这里我介绍一种简单易行的配置方法,适用于100个用户以下的应用。这种方法的核心在于巧妙的运用了设置gid位,读者***找资料了解一下相关的知识。这种方法的配置管理工作相当少,也相当的简单,同时还可以保持一个清晰的权限系统结构。
1.思路
首先需要明确的概念是proftpd的用户与linux系统的用户的关系:linux系统的用户即为proftpd的用户。proftpd的权限控制是基于Linux系统得权限控制之上的,即用户对于某个文件或目录,必须先有Linux系统的权限,在此基础上proftpd才能设置其特有的一些权限。其实一般来说Linux自有的权限系统就是一个比较完善的权限系统了,我们完全可以只利用这个权限系统,就足可以满足我们的要求了。
我们设置一个ftp管理员ftpadmin属于ftpadmin组,ftp的根目录/ftp是ftpadmin的个人根目录,这样ftpadmin可以完成日常的管理。通过设置/ftp的gid可以保证新上传的文件是属于ftpadmin用户,加上再设置umask值002保证上传文件的组读写权限,这样管理员就可以对其管理下的文件进行管理,而同时保证了不改变该文件的属主。
ftp的用户,我们只需新建一个Linux用户,而把他的用户目录制定在/ftp之下就可以。操作起来很简单。
2.建立ftp管理员:ftpadmin
- [root@localhost root]groupadd ftpadmin #ftpadmin为新添加的组的名字
- [root@localhost root]useradd -d
- /ftp -g ftpadmin -s /sbin/nologin admin
- [root@localhost root]chmod 2775 /ftp
同时保证ftpadmin 是 /ftp的属主,ftpadmin 是/ftp的组属主。这样就保证了ftpadmin对要管理的/ftp目录有全部的权限。
-s /sbin/nologin 指定用户不能从shell登录,就是说只能从ftp方式登录,这样是出于安全的考虑。
修改/usr/local/etc/proftpd.conf
- nobody ftpadmin
- nogroup ftpadmin
- Umask 002
#允许所有者,组用户对ftp进行管理。
掩码Umask改为 002 。即组成员和所有者都可对文件夹进行增删,改等操作。其他用户可读可执行,但不可写。这样,ftpadmin用户可以通过同组的身份对所有的文件进行读写,同时也不改变其内容的原有权限。也就说,不改变这个文件夹下的文件的所有者身份,但同时又可以管理这些文件。
chmod 2775 /ftp,通过设置了文件夹的gid,以后在这个文件夹下写的所有文件,不管其所有者是谁,文件的组必定是ftpadmin(因为/ftp的组属于ftpadmin),都合理的被纳于ftpadmin的管理之下。
3.添加用户:user1
- useradd -d /ftp/user1 -g ftpadmin -s
- /sbin/nologin user1
这样user1就对/ftp/user1的目录有完整的权限,而作为管理员也可以通过组权限对目录进行管理。
每当需要添加用户的时候,只需方便的简单的添加一个Linux的用户就可以了。
4.对应的配置文件:
proftpd.conf中的重要条目
- Umask 002
- DefaultRoot
- Umask 002 保证了新建的文件有组读写权限。
- DefaultRoot ~ 保证 每个用户登录后被锁定在自己的目录里,看不到其他用户的目录。
【编辑推荐】
- ProFTPD.conf的详细配置方法
- Proftpd配置文件结构分析
- ProFTP下的参数说明
- Porftpd.conf的配置格式
- lampp的ProFTPd下新增FTP用户的方法
- Debian下配置ProFTPd服务器
- Centos下ProFTPD配置FTP服务器
- 用MySQL和Proftpd配置FTP服务器