在proftpd里设置权限


ProFTPD 

图-ProFTPD

proftpd默认用户可以使用系统非root组的用户登录,登陆后都在自己的/home目录中。

同时匿名用户不能登陆。而要对权限进行进一步的设置,需要在proftpd.conf里面进行定制。

在默认的conf中,有如下的例子

  1. # User ftp  
  2.  
  3. # Group nogroup  
  4.  
  5. # # We want clients to be able to login with "anonymous" as well as "ftp" 
  6.  
  7. # UserAlias anonymous ftp  
  8.  
  9. # # Cosmetic changes, all files belongs to ftp user  
  10.  
  11. # DirFakeUser on ftp  
  12.  
  13. # DirFakeGroup on ftp  
  14.  
  15. # RequireValidShell off  
  16.  
  17. # # Limit the maximum number of anonymous logins  
  18.  
  19. # MaxClients 10  
  20.  
  21. # # We want 'welcome.msg' displayed at login, and '.message' displayed  
  22.  
  23. # # in each newly chdired directory.  
  24.  
  25. # DisplayLogin welcome.msg  
  26.  
  27. # DisplayFirstChdir .message  
  28.  
  29. # # Limit WRITE everywhere in the anonymous chroot  
  30.  
  31. # DenyAll  
  32.  
  33. # # Uncomment this if you're brave.  
  34.  
  35. # # # Umask 022 is a good standard umask to prevent new files and dirs  
  36.  
  37. # # # (second parm) from being group and world writable.  
  38.  
  39. # # Umask 022 022  
  40.  
  41. # # DenyAll  
  42.  
  43. # # AllowAll  
  44.  

proftpd的配置文件的格式和apache很相似:

#全局设置

设置项目1 参数1

设置项目2 参数2

#某个目录的设置

#关于匿名用户的设置

其中最重要的就是limit之中的部分,涉及到了具体的权限控制

CMD:Change Working Directory 改变目录

MKD:MaKe Directory 建立目录的权限

RNFR: ReName FRom 更改目录名的权限

DELE:DELEte 删除文件的权限

RMD:ReMove Directory 删除目录的权限

RETR:RETRieve 从服务端下载到客户端的权限

STOR:STORe 从客户端上传到服务端的权限

READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等

WRITE:写文件或者目录的权限,包括MKD和RMD

DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的

ALL:所有权限

LOGIN:是否允许登陆的权限

针对这些设置,又有如下具体的配置:

AllowUser 针对某个用户允许的Limit

DenyUser 针对某个用户禁止的Limit

AllowGroup 针对某个用户组允许的Limit

DenyGroup 针对某个用户组禁止的Limit

AllowAll 针对所有用户组允许的Limit

DenyAll 针对所有用户禁止的Limit

同时,可以针对单独的用户来限制速度

TransferRate STOR|RETR 速度(Kbytes/s) user 使用者

而对于虚拟用户,无法登陆的。所以,必须修改为

下面是我的配置

User ftp #指定用户的组和名称

Group nogroup

UserAlias anonymous ftp #使得ftp和匿名用户都能登陆

DirFakeUser on ftp

DirFakeGroup on ftp

RequireValidShell off

MaxClients 50 该用户的最大连接数

DisplayLogin welcome.msg #显示欢迎信息,需要注意把msg文件放到登陆后的主目录

DisplayFirstChdir .message

MaxClientsPerHost 3 #限制每个主机最大连接数

#这里是对目录进行设置,即不允许写

DenyAll

#对上传目录的设置,我们有一个incoming文件夹需要允许别人上传

Umask 022 022

#不允许下载

DenyAll

#允许上传和新建目录

AllowAll

同时,我们还需要对ftp进行管理。所以在系统中建立一个用户,名称为ftpadmin,属于nogroup组,不允许登陆。同时赋予它对ftp所有的权限

User ftpadmin

Group nogroup

AllowAll

同时,需要注意的是,在proftpd中作了限制之后,对ftp的权限,还受到主机文件系统权限的限制。

所以,给ftp的目录赋予nogroup组读写的权限

通过上文的描写和例子的介绍,我们可以清楚的知道proftpd设置权限简单,希望对你们有用!

相关内容