要想实现对某一目录,针对不同的ftp用户有不同的访问权限,建议安装专门的ftp server软件,如wu_ftpd。 如果使用AIX默认的ftp
server,我们可以通过使用ACL(Access Control List)--访问控制列表--来实现近似的效果。 ACL是一种在基本文件权限控制以外的扩展控制,它可以针对某个文件做更精细的控制,可单独指定某个用户或属组的访问权限,配置过程举例如下:
1、 针对我们的需求,首先把/tmp/ftp_folder 的权限改成750(或其他需要的权限),然后通过ACL给不同的用户增加许可读和写的权限。注意:如果在执行acledit后重新执行chmod,ACL
中的“extended permissions”将会被重新置成“disabled”;
2、指定ACL使用的编辑器:
# export EDITOR=/usr/bin/vi
3、# acledit /tmp/ftp_folder
其中 /tmp/ftp_folder 为所要控制的文件,此时,屏幕将显示
attributes:
base permissions
owner(root): rwx
group(system): r-x
others: ---
extended permissions
disabled --> enabled
为使用ACL控制,将其中的disabled改为enabled
4、在其后添加控制项,用关键字permit来控制具体权限,比如:
permit r-x u:ftp1 用户ftp1对其有“读”权限
permit -wx u:ftp2 用户ftp2对其有“写”权限
注意: ACL中每行只能有一个用户名。
5、测试
针对用户ftp1,上传操作被拒绝
ftp> put file1
200 PORT command successful.
553 file1: The file access permissions do not allow the specified action.
针对用户ftp2,列取文件操作没有输出
ftp> ls
200 PORT command successful.
550 No files found.
这里要注意是,用户ftp2不具有“读”权限只表明该用户无法读取文件列表,但如果他知道该目录下的文件名,一样可以用 get命令来下载文件(如果用户使用的是可视化的ftp工具基本不存在这个问题);这是因为在UNIX系统中,对目录来说,“读”(r)权限代表可以列出 该目录下的内容。即使没有“读”权限,只要有“访问”(x)权限,就可以从该目录下拷贝文件。 因此,我们只能说ACL可以近似实现限制“读”(下载)的需求。
阅读(1242) | 评论(0) | 转发(0) |