当前位置:主页 > 查看内容

linux centos 搭建 ftp 创建虚拟用户 并使用 ftp 命令上传和下

发布时间:2021-07-25 00:00| 位朋友查看

简介:repo="centos-yum.sh"if [ ! -e $repo ]; then # -e 判断文件存在;参考:Shell if 条件判断文件或目录yum install -y wgetwget www.eisc.cn/file/shell/centos-yum.sh ; sh centos-yum.shecho "yum已经切换"vsftpdinstall(){vsftpdc=(`find /etc/vsftpd -nam……
repo="centos-yum.sh" if [ ! -e $repo ]; then # -e 判断文件存在;参考:Shell if 条件判断文件或目录 yum install -y wget wget www.eisc.cn/file/shell/centos-yum.sh ; sh centos-yum.sh echo "yum已经切换" vsftpdinstall(){ vsftpdc=(`find /etc/vsftpd -name "vsftpd.conf" | sed "s/ //g"`) # shell 小括号属性是 定义数组变量 lsnginx 它的值是一条命令的执行结 果 echo " vsftpd 配置文件总个数为:${#vsftpdc[*]} 列出 nginx 配置文件" ${vsftpdc[*]} # [*] 星号列出所有元素, 星号改成1 为指定角标1,含义为第二个元素,默认从0开始 if [ ${#vsftpdc[*]} -lt 1 ] # -lt 小于; $ 为空,! 非运算; $? 判断上一条命令执行状态,0正常; 参考:linux shell $$,$! 等的特殊用法 echo " 配置文件为空,#开始安装vsftpd 安装vsftp需要的密码验证模块等环境" #yum -y install pam pam-devel db4 de4-devel db4-tcl vsftpd yum -y install vsftpd mkdir -p /var/ftp/virtual # -p 自动创建父目录文件夹: [?v?? t??(?) l] 虚拟 useradd vsftpd -M -s /sbin/nologin # 创建 vsftpd 用户: ,如果此目录不存在,则同时使用-m选项,可以创建主目录。 # -s Shell文件 指定用户的登录Shell。 useradd ftpvload -d /var/ftp/ -s /sbin/nologin # -d 目录 指定用户主目录 sleep 3 # 等待 3 秒 chown -R ftpvload.ftpvload /var/ftp/ # -R 目录拥有者ftpvload:ftpvload 其中 . 可以换成 : sleep 5 echo "#-------------------------- 开始配置vsftpd --------------------------#" mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back # mv 重命名 # 注意配置文件每行末尾不能有空格或注释 echo " pasv_promiscuous=YES #[pr??m?skj??s] 混杂 ,否则导致被动模式无法ls查看文件 anonymous_enable=NO # [?? n? n? m? s] 匿名:匿名登录 local_enable=YES # [?l?? k(?)l] 本地 [?? ne? b(?)l] 允许 write_enable=YES # [r?? t] 写,权限 local_umask=022 #umask = 022 时,新建的目录 权限是755,文件的权限是 644 #umask = 077 时,新建的目录 权限是700,文件的权限时 600 #vsftpd的local_umask和anon_umask借鉴了它 anon_upload_enable=NO # anonymous 的简写:匿名,上传文件 anon_mkdir_write_enable=NO dirmessage_enable=YES # 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。 xferlog_enable=YES # 启用记录上传/下载活动日志功能。 connect_from_port_20=YES # [k?? n? k t] 连接 启用FTP数据端口的连接请求 chown_uploads=NO # 是否具有上传权限.用户由chown_username参数指定。 xferlog_file=/var/log/vsftpd.log # 日志目录 xferlog_std_format=YES # 使用标准的ftpdxferlog日志格式 async_abor_enable=no # 强烈建议不要启用该选项,否则将可能导致出错! ascii_upload_enable=YES ascii_download_enable=YES # ascii 编码的上传下载启动 ftpd_banner=Welcome to FTP Server # [?ba n?] 标语 chroot_local_user=YES # 虚拟列表用户是不受限制目录 ls_recurse_enable=NO listen=YES # [?l? s(?)n] 听,监听端口 hide_ids=YES # [h??d] 隐藏 pam_service_name=vsftpd # 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/ userlist_enable=YES tcp_wrappers=NO # [?r? p?z] 包装 在VSFTPD中使用TCP_Wrappers远程访问控制机制,强烈建议改为 NO 否则ls 无法 guest_enable=YES # [?? s t] 客人 guest_username=ftpvload virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vconf # 用户的配置文件,类似于nginx多网站一样 #------- 配置被动模式 ---------- pasv_enable=YES pasv_min_port=63000 pasv_max_port=65535 " /etc/vsftpd/vsftpd.conf # 将echo 打印的内容写入配置文件 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup # cp 复制,备份文件 sed -i s/^/#/g /etc/pam.d/vsftpd # 删除开头为 # 符号的行 echo "auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers" /etc/pam.d/vsftpd sleep 3 echo "#-------------------------- 配置虚拟用户 --------------------------#" touch /var/log/vsftpd.log chown vsftpd.vsftpd /var/log/vsftpd.log mkdir /etc/vsftpd/vconf/ -p sleep 3 echo -e "test\ntest1234" /etc/vsftpd/virtusers db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db # 生效虚拟用户配置 mkdir /var/ftp/virtual/test echo " # 允许可写 allow_writeable_chroot=YES #设定支持ASCII模式的上传和下载功能 ascii_upload_enable=YES ascii_download_enable=YES local_root=/var/ftp/virtual/username #指定虚拟用户的具体主路径 anonymous_enable=NO #设定不允许匿名用户访问 write_enable=YES #设定允许写操作 local_umask=022 #设定上传文件权限掩码 anon_upload_enable=NO #设定不允许匿名用户上传 anon_mkdir_write_enable=NO #设定不允许匿名用户建立目录 idle_session_timeout=600 #设定空闲连接超时时间 data_connection_timeout=120 #设定单次连续传输最大时间 max_clients=10 #设定并发客户端访问个数 max_per_ip=5 #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件 #local_max_rate=50000 #设定该用户的最大传输速率,单位b/s" /etc/vsftpd/vconf/vconf.tmp cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/test sed -i s/username/test/g /etc/vsftpd/vconf/test echo "完成" echo "已经安装vsftpd" vsftpdinstall echo " #---------------- 创建虚拟用户 ---------------- 请输入ftp账户名确认后输入密码 if read -t 5 -p "Please enter you name: " username if [ -f /etc/vsftpd/vconf/$username ] #判断用户是否存在 then echo "The $username is exists, please input another name." else read -s -p "Please enter your password: " passwd echo -e "$username\n$passwd" /etc/vsftpd/virtusers db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db mkdir -p /var/ftp/virtual/$username chown -R ftpvload.ftpvload /var/ftp cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/$username sed -i s/username/$username/g /etc/vsftpd/vconf/$username echo "The config is over." echo -e "\n 您超过5s没有配置信息,系统自动创建默认ftp账户 ftp 用户名:eisc 密码:eisc.cn 默认路径:/var/ftp/virtual/eisc echo -e "eisc\neisc.cn" /etc/vsftpd/virtusers db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db mkdir -p /var/ftp/virtual/eisc chown -R ftpvload.ftpvload /var/ftp cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/eisc sed -i s/username/eisc/g /etc/vsftpd/vconf/eisc # 修改用户家目录 chmod 755 /var/ftp/* systemctl restart firewalld firewall-cmd --permanent --add-port=21/tcp firewall-cmd --permanent --add-port=63000-65535/tcp # 开放端口范围:3000到4000 systemctl restart firewalld vsftpd # 开放防火墙端口和重启vsftpd #---------------- win 文件管理访问ftp出现问题 ---------------- #解决办法:设置IE浏览器 Internet选项 高级 将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉 确定即可 #---------------- ftp 下载文件以及常用命令 ---------------- #open # 与ftp服务器相连接; #send(put) # 上传文件 #get: # 下载文件 #mget: # 下载多个文件; #cd: # 切换目录; # 脚本执行:wget eisc.cn/file/shell/vsftpd.sh ; sh vsftpd.sh
本文转自网络,原文链接:https://developer.aliyun.com/article/785663
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐