本人对这方面也是比较菜,所以如果有什么错误的地方,请各位指正。下面我就以一个简单的题目来讲述。
题目:配置一个ftp服务器,并且创建2个用户,一个为upload,一个为download,upload用户只能实现上传功能,而不能下载,download用户只能实现下载功能,而不能上传。并且2个用户均查看到相同的内容(即同一个目录)。
我们得先安装好vsftpd服务,安装的过程我就不多说了。可以用这条语句来检查一下。
[root@localhost ~]# rpm -qa | grep ftp
ftp-0.17-33.fc6
lftp-3.5.1-2.fc6
vsftpd-2.0.5-10.el5
实验开始之前,我们先把防火墙和SELinux关闭掉,以免出现连接不上ftp的事情。
首先用vi打开 /etc/vsftpd/vsftpd.conf 这个配置文件,然后进入编辑模式,将
anonymous_enable=YES 的YES改为NO(不让匿名用户访问ftp服务器)
下面我们开始建立虚拟用户了,步骤如下:
1、 建立虚拟用户文件
vi /etc/vsftpd/vsftpd_virtualuser.txt
upload #账号
123456 #密码
download
123456
建立完成之后我们就可以保存退出。
2、生成虚拟用户数据库
要生成用户数据库,那么我们需要用到db_load命令,可以用rpm -qa | grep db4命令来查看是否有安装。db_load命令需要的包是db4-utils-4.3.29-9.fc6.i386.rpm,如果没有的话赶快去安装吧。
我们用这个命令生成需要用到的用户数据库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser vsftpd_virtualuser.db
3、 配置PAM文件
若要服务器能够使用数据库文件,对客户端进行身份验证,就必须要修改vsftpd对应的PAM配置文件/etc/pam.d/vsftpd。
用vi打开这个文件有如下内容
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so
我们把这些默认配置全部用“#”号注释掉,然后加上我们需要用到的配置。
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include system-auth
#account include system-auth
#session include system-auth
#session required pam_loginuid.so
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
4、创建虚拟帐号对应的系统用户
adduser -d /home/abcde -s /sbin/nologin upload
adduser -d /home/abcde -s /sbin/nologin download
创建download用户的时候会提示一些警告信息,我们先不管。
为2个虚拟账号创建密码,必须要和vsftpd_virtualuser文件里面的密码相同。
passwd upload
passwd download
5、设置配置文件vsftpd.conf
在配置文件的最尾端加上如下配置:
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/virtualuser_config #指定用户配置文件存放路径
6、建立虚拟用户配置文件
设置多个虚拟帐号的不同权限,若使用一个配置文件无法实现此功能,需要为每个虚拟帐号建立独立的配置文件,并根据需要进行相应的设置。
为了方便管理,我们就在/etc/vsftpd下创建一个存放虚拟用户配置文件的文件夹virtualuser_config,然后进入这个文件夹创建upload和download配置文件。
mkdir virtualuser_config
touch upload
touch download
配置upload文件
#开启虚拟用户登录
guest_enable=YES
#设置upload对应于系统用户的upload
guest_username=upload
#允许在文件系统写入数据的权限
write_enable=YES
#允许用户创建文件夹
anon_mkdir_write_enable=YES
#开启用户上传功能
anon_upload_enable=YES
配置download文件
#开启虚拟用户登录
guest_enable=YES
#设置upload对应于系统用户的upload
guest_username=download
#允许用户浏览整个服务器的文件系统(允许下载)
anon_world_readable_only=NO
好了,到了这里,虚拟用户建立完成了。
接着我们需要做的工作是修改/etc/passwd文件
我们首先来看一下passwd文件的最后两行的内容:
upload:x:502:502::/home/abcde:/sbin/nologin
download:x:503:503::/home/abcde:/sbin/nologin
upload为账户名,x为密码,502是uid,502gid,/home/abcde根目录,/sbin/nologin是使用什么shell。
现在我们做如下的修改
upload:x:502:502::/home/abcde:/sbin/nologin
download:x:502:502::/home/abcde:/sbin/nologin
我把download的uid和gid都改为了upload的uid和gid,这就相当于upload这个用户有一个别名了,而且这个别名可以有它自己独立的权限(即只能下载,不能上传),如果不修改的话download用户就没有权限访问这个文件夹了。(我的系统就是这样,不过听说有些人不用这样设置的。)
为了能让用户看见abcde文件夹里面的内容,我们需要修改一下这个目录的权限。
chmod o+r /home/abcde
好了,基本配置完成,现在你去看看效果吧。
再次强调,本人技术水平有限,如果有什么不对的地方请给予指正。谢谢。
分享到:
相关推荐
[Linux]vsftp配置大全---超完整版(RHEL5通过)
红帽官方提供的文档。RHEL5基于xen的虚拟化教材
介绍如何在RHEL5没有subscription的情况下换用centos yum源
VMware Workstation简单设置及RHEL5安装
linux(rhel 6.0)下VSFTP服务器配置详细过程过程.docx
RHEL5文件与目录操作命令
RHEL 5.5 vsftpd-2.0.5-10.el5.i386.rpm
教程名称:RHEL5企业级Linux服务全攻略课程目录:【】RHEL5 LAMP整体环境搭建【】RHEL5.1主从NIS服务器配置及测试【】rhel5_RHCE官方培训教材【】RHEL5下搭建DNS服务器【】RHEL5企业级Linux 资料汇总及各种服务器...
解决VMware下安装RHEL-5的自动安装问题
RHEL Linux6.3下的vnc安装和多用户配置
安装企业级RedHatLinux5,初始配置
chroot_list_file=/etc/vsftpd/chroot_list //一般情况下都将这个文件写在/etc/vsftpd目录下,这个文件就是设置锁定用户的一个列表文件,其中一行就代表一个用户 设置欢迎信息 dirmessage_enable=YES message_file=....
基于RHEL5 的Linux下DHCP的配置
rhel5 gcc安装包(1).zip rhel5 gcc安装包(2).zip rhel5 gcc安装包(4).zip rhel5 gcc安装包(5).zip 一共四个包~~~因为只能上传20M....只能分4个包来上传,所有文件如下: compat-gcc-34-3.4.6-4.i386.rpm gcc-gnat-...
RHEL5 --权限设置命令 修改文件或目录的存取权限命令 Linux系统之所以很安全,从很大程度上来说,都 得益于在Linux系统中的每一个文件或目录有严格的 权限设置。 要设置好Linux中的权限,应该需要从以下几个方 面...
RHEL5下无法使用netconfig命令的解决方法
RHEL5安装
vmware7.1上rhel5.4使用NAT上网设置方法
rhel6系统设置用户登录,使用AD上的用户。原理是使用ldap获取用户,使用kerberos来进行密码验证。
RHEL5虚拟化官方文档 适用于rehl5, 其实就是配置网桥比较关键, 其他简单~~~~~~