标签:提示 文本 root用户 rest 完成 unicode for 库文件 pass
yum -y install vsftpd # 安装vsftpd
chkconfig vsftpd on # 开启启动
service
vsftpd start # 启动ftp服务
service vsftpd status # 查看ftp服务状态
service vsftpd restart # 重启ftp服务
service vsftpd stop # 关闭ftp服务
vim /etc/vsftpd/vsftpd.conf #进入vsftpd配置文件
anonymous_enable=NO # 禁止匿名用户anonymous登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 让登录的用户有写权限(上传,删除)
local_umask=022 # 默认umask
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO # 把传输记录的日志保存到/var/log/vsftpd.log
ascii_upload_enable=YES # 允许ASCII模式上传
ascii_download_enable=YES # 允许ASCII模式下载
connect_from_port_20=YES # 使用20号端口传输数据
ftpd_banner=Welcome to use my test ftp server.
# 欢迎标语
# chroot_local_user设置了YES,那么所有的用户默认将被chroot, 也就用户目录被限制在了自己的home下,无法向上改变目录。
# chroot_list_enable设置了YES,即让chroot用户列表有效。
# ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file 设置的文件里,是不被chroot的用户(可以向上改变目录)
# ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file 设置的文件里,是被chroot的用户(无法向上改变目录)
# touch /etc/vsftpd/chroot_list 新建
chroot_list_file=/etc/vsftpd/chroot_list
use_localtime=YES
listen=YES # 以standalone模式在ipv4上运行
# PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,
# 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers
# 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户
# 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。
pam_service_name=vsftpd
service vsftpd restart # 重启 vsftpd
sudo useradd -d /home/ftp ysj # 创建用户
chown -R username /home/ftp # 设置用户到文件夹
usermod –s /sbin/nologin ysj
/禁止用户登录系统
chown -R 777 /home/ftp /设置该文件的权限
passwd ysj -> 密码 -> 确认密码 # 添加密码
访问ftp时字符乱码问题:
1.修改LANG环境变量 [root@centos ~]vim /etc/sysconfig/i18n
LANG =“zh_CN.UTF-8”
查看相关字符集命令[root@centos ~]# locale
浏览器默认为Unicode(UTF-8)
配置vsftpd使不同的虚拟用户使用不同的目录
需求:
t1 只能上传文件
t2 只能下载文件
t3 上传下载文件,同时可以创建文件夹,修改文件的名称
1创建文本文件loguser.txt
格式如下:
user_id
password
创建建3个虚拟用户,密码是与用户名相同,创建虚拟用户数据库
于是,我们/etc/vsftpd/login.txt文件的内容为
t1
111
t2
222
t3
333
2 生成数据库
如果你以前没装过libdb4.7-util 或者你不清楚装没装,需先执行下面的命令
rpm-qa |grep db4
然后,我们执行
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
最后设置一下数据库文件的访问权限
chmod 600 /etc/vsftpd/vsftpd_login.db
3 配置PAM文件
新建/etc/pam.d/vsftpd 内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
我们上一步建立的数据库 vsftpd_login 在此处被使用
我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd来启用的,稍后你将发现。
4为虚拟用户创建本地系统用户
新建一个系统用户ftp,用户家目录为/home/ftp, 用户登录终端设为/bin/false(即使之不能登录系统)
useradd ftp -d /home/ftp -s /sbin/nologin
chown ftp:ftp /home/ftp
5根据需要创建/etc/vsftpd.conf,一般要确保含有以下设置:
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
现在为止,我们的3个用户都可以工作了,可是它们的根目录现在都是/home/ftp,权限也都一样。 那么怎么才能完成我们预定的目标呢?
在上面的配置中,有这么一行
user_config_dir=/etc/vsftpd_user_conf
现在,我们要把各个用户的配置文件放到目录/etc/vsftpd_user_conf中
mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
touch t1 t2 t3
t1文件中的内容如下
anon_world_readable_only=no
local_root=/home/ftp/t1
write_enable=yes
anon_upload_enable=yes
download_enable=no
anon_mkdir_write_enable=no
anon_other_write_enable=no
同样,t2文件中的内容
anon_world_readable_only=no
local_root=/home/ftp/t2
write_enable=no
anon_upload_enable=no
anon_mkdir_write_enable=no
anon_other_write_enable=no
那么,t3的内容呢? 其实也很简单
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_root=/home/ftp/t3
这里要注意不能有空格,不然登录的时候会提示出错。
重启vsftpd我们就可以看到效果了
/etc/init.d/vsftpd restart
PS:千万别忘了修改文件夹t1,t2,t3的访问权限。
chown ftp:ftp /home/ftp/t1
chown ftp:ftp /home/ftp/t2
chown ftp:ftp /home/ftp/t3
或者使用命令
chown -R ftp:ftp /home/ftp
修改ftp下的所有文件夹的访问属性。
标签:提示 文本 root用户 rest 完成 unicode for 库文件 pass
原文地址:https://www.cnblogs.com/ysj1/p/10668928.html