1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
第一种方案,只能实现简单的上传和下载,权限无法控制
1.yum
2.
cat
/etc/vsftpd/vsftpd
.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=
/etc/vsftpd/chroot_list
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#guest_enable=YES
#guest_username=ftp
#user_config_dir=/etc/vsftpd/vuser_conf
3.
cat
/etc/vsftpd/chroot_list
xx
4.
useradd
xx -d
/opt/ftp
-s
/sbin/nologin
echo
"密码"
|
passwd
--stdin xx
5.
chown
-R xx.xx
/opt/ftp
6.关闭selinux
第二种方案 可以控制权限
http:
//www
.cnblogs.com
/whoamme/p/3494128
.html
yum -y
install
pam vsftpd db4 db4-utils
useradd
-d
/opt/ftp
-s
/sbin/nologin
vuser_ftp
vi
/etc/vsftpd/login
.txt
ftpuser3
test1passwd
db_load -T -t
hash
-f
/etc/vsftpd/login
.txt
/etc/vsftpd/vsftpd_login
.db
vi
/etc/vsftpd/vsftpd
.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=
/var/log/vsftpd
.log
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vuser_ftp
pam_service_name=
ftp
.vu
user_config_dir=
/etc/vsftpd/vsftpd_user_conf
cat
/etc/pam
.d
/ftp
.vu
auth required
/lib64/security/pam_userdb
.so db=
/etc/vsftpd/vsftpd_login
account required
/lib64/security/pam_userdb
.so db=
/etc/vsftpd/vsftpd_login
cat
ftpuser3
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=YES
#这个参数要注意,为NO,无法下载
local_root=
/opt/ftp/xx
cmds_allowed=FEAT,REST,ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,RETR
#无del权限
注意
1.
/etc/vsftpd/vsftpd_user_conf
不能有空格
2.
chmod
600 vsftpd_login.db
3.
chmod
-R 777 vsftpd_user_conf
4.db=
/etc/vsftpd/login
修改成db=
/etc/vsftpd/vsftpd_login
把db= 定义的是验证数据文件存放的位置,这个文件是以.db结尾的。但是在
/etc/pam
.d
/ftp
.vu
中配置的时候不要加上.db
5,配置文件中间的
/lib/security/pam_userdb
.so 如果你的系统是64位的,那么相应的路径
应是
/lib64/security/pam
.userdb.so 不然会出错
virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。
|
还有可能遇到的问题
假如服务器上开了ftp,用iptables控制下
IPTABLES -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
IPTABLES -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
IPTABLES -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT
IPTABLES -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
然后再去vi /etc/sysconfig/iptables-config,增加
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"
这样就可以了.
用的时候碰到点问题,就是用ftp软件上传后,想再下载下来,报错
说不能打开这个文件,后来发现上传后的文件的权限只有600,不允许别人读
http://7591167.blog.51cto.com/
因为你vsftpd虚拟用户对应的实体用户A,与你的下载用户B,不是同一个用户。
权限600是A的。A权限6,可读可写不能运行。其它用户都0,就是不可读写运行。
所以B不能读访问A的这个文件。
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1774613,如需转载请自行联系原作者