linux下vsftp服务器相关配置问题
最近需要在linux下写PHP程序实现ftp文件的上传和下载功能,需实现不同ftp用户登陆到各自目录下,并对其进行相关权限配置,经过
搜索,发现vsftpd使用比较广泛,决定采用vsftpd架设ftp服务器来进行测试。
安装比较简单,直接安装vsftpd及db4的rpm包即可,默认是支持匿名登陆方式的,考虑实际应用,肯定是不允许匿名登陆的,而采用linux系统用户的话安全性也会是一个不容忽视的问题,因此考虑采用虚拟用户的方式,创建一个虚拟用户组,同时采用pam认证的方式
进行密码验证,vsftpd.conf的相关配置网上比较多就不再做详细说明,下面就几个关键的步骤进行一下说明。
1.创建ftpd组用户
建立虚拟用户及所要访问的目录并设置相应权限
[root@mail ftp]# groupadd ftpd
[root@mail ftp]# mkdir /home/ftpd
[root@mail ftp]# useradd -g ftpd -d /home/ftpd/ -s /sbin/nologin -M ftpd
[root@mail ftp]# chmod 700 /home/ftpd/
[root@mail ftp]# chmod 700 /home/ftpd
[root@mail ftp]# chown ftpd.ftpd /home/ftpd
2.创建pam认证文件
首先写一个用户列表文本文件,其中奇数行为用户名,偶数名为密码
然后使用如下命令生成db格式文件并设置其访问权限
[root@mail ftp]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
[root@mail ftp]# chmod 600 /etc/vsftpd_login.db
下面一步是关键,我想很多人会遇到即使添加上ftp用户了,可不管如何登陆,vsftpd服务器密码总是验证失败的问题,我开始也是
在网上到处找寻也没找到,最后自己在不经意间测试成功了。
打开/etc/pam.d/vsftpd文件,把其中的认证行全部注释掉,然后添加下面两行认证信息:
auth required pam_userdb.so db=/etc/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd_login
3.配置虚拟用户权限
在ftp目录下新建各个用户的目录(目录名与用户列表文件中的用户名相同),并设置宿主为虚拟用户组(ftpd)
注意如果设置虚拟用户的话需在vsftpd.conf中添加:
guest_enable=YES
guest_username=beinan
chroot_local_user=YES
user_config_dir=/etc/vsftpd_user_conf
其中user_config_dir用于保存各虚拟用户的个人配置文件,文件名与用户名相同,下面一个配置格式:
#绑定用户目录
local_root=/home/ftpd/ftp_e-dfzd
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
一般注意以上几点即可再加上网络上的关于vsftpd
相关文档:
在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。
14.1终端设备
在Linux系统中,终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写,Teletype是最早出现的一种终端设备, ......
在Suse10.1下安装EOS5.3,界面按钮凡中文都是方格,可在终端查看中文都是好的,网上搜了好几天,终于弄明白原因。
EOS5.3使用的是jdk1.4.2,在suse下没有jdk默认要求的中文字体,需要做额外的配置,修改方法如下:
1.使用su命令切换为root用户,再使用cd命令切换到jdk安装路径下的jre;例如:
......