Ubuntu 7.04下vsftpd 配置
下载安装vsftpd
sudo apt-get install vsftpd
由于要按照虚拟用户模式登陆,安装db4.2-util包
sudo apt-get install db4
.
2
-util
建立一个login文件,里面包含虚拟用户信息,比如
vi login
login file
------------------------------------------
test1 用户名
passwd1 密码
test2 用户名
passwd2 密码
-------------------------------------------
login file
------------------------------------------
test1 用户名
passwd1 密码
test2 用户名
passwd2 密码
-------------------------------------------
建立数据库文件
sudo db4
.
2_load -T -t hash -f login
/
etc
/
vsftpd
/
vsftpd_login
.
db
更改数据库文件的权限
sudo chmod
600
/
etc
/
vsftpd_login
.
db
生成新的PAM文件
新建/etc/pam.d/vsftpd.vu 内容如下:
auth required
/
lib
/
security
/
pam_userdb
.
so db
=/
etc
/
vsftpd
/
vsftpd_login
account required / lib / security / pam_userdb . so db =/ etc / vsftpd / vsftpd_login
account required / lib / security / pam_userdb . so db =/ etc / vsftpd / vsftpd_login
为虚拟用户创建本地系统用户
sudo useradd virtual -d
/
home
/
ftp
sudo chown virtual . virtual / home / ftp
sudo chown virtual . virtual / home / ftp
更改/etc/vsftpd.conf
listen
=
YES
anonymous_enable = NO
local_enable = YES
write_enable = NO
anon_upload_enable = NO
anon_mkdir_write_enable = NO
dirmessage_enable = YES
xferlog_enable = YES
connect_from_port_20 = YES
xferlog_file =/ var / log / vsftpd . log
xferlog_std_format = YES
chroot_local_user = YES
secure_chroot_dir =/ var / run / vsftpd
pam_service_name = vsftpd
rsa_cert_file =/ etc / ssl / certs / ssl-cert-snakeoil . pem
rsa_private_key_file =/ etc / ssl / private / ssl-cert-snakeoil . key
guest_enable = YES
guest_username = virtual
user_config_dir =/ etc / vsftpd / vsftpd_user_conf 这行是为了单独设置用户权限准备的
pam_service_name = vsftpd . vu
anonymous_enable = NO
local_enable = YES
write_enable = NO
anon_upload_enable = NO
anon_mkdir_write_enable = NO
dirmessage_enable = YES
xferlog_enable = YES
connect_from_port_20 = YES
xferlog_file =/ var / log / vsftpd . log
xferlog_std_format = YES
chroot_local_user = YES
secure_chroot_dir =/ var / run / vsftpd
pam_service_name = vsftpd
rsa_cert_file =/ etc / ssl / certs / ssl-cert-snakeoil . pem
rsa_private_key_file =/ etc / ssl / private / ssl-cert-snakeoil . key
guest_enable = YES
guest_username = virtual
user_config_dir =/ etc / vsftpd / vsftpd_user_conf 这行是为了单独设置用户权限准备的
pam_service_name = vsftpd . vu
单独设置用户权限
sudo mkdir
/
etc
/
vsftpd
/
vsftpd_user_conf
cd / etc / vsftpd / vsftpd_user_conf
sudo touch test1 test2
cd / etc / vsftpd / vsftpd_user_conf
sudo touch test1 test2
test1 只有下载权限,cat /etc/vsftpd/vsftpd_user_conf/test1
local_root=/home/ftp/gct
test2 有upload权限,cat /etc/vsftpd/vsftpd_user_conf/test2
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
write_enable=YES
local_root=/home/ftp/gct
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
write_enable=YES
local_root=/home/ftp/gct
注意anon_umask=022,它保证你upload后的文件权限都是 rw-r-r。
确认文件夹权限:
drwxrwxr-x 3 virtual virtual 72 2007-08-08 01:44 ftp
drwxr-xr-x 2 virtual virtual 280 2007-08-14 00:50 gct
onwer和组都是virtual。