FTP笔记

FTP

14

20201104
ftpClient.storeFile()上传中文文件名的文件失败
只需 要做如下设置,
ftpClient.storeFile(new String(filename.getBytes(“GBK”),“iso-8859-1”))成功
因为ftp协议规定所以必须用iso-8859-1,
不需要ftpClient.sendCommand(“OPTS UTF8”, “ON”)
同时:

  1. 经过debug发现中文文件名中如果含有中文右括号)则上传失败,否则即使中文件名也能上传。
  2. ftpClient.storeFile(new String(filename.getBytes(“UTF-8”),“iso-8859-1”)).上传失败
  3. ftpClient.storeFile(new String(filename.getBytes(),“iso-8859-1”))失败,debug发现getBytes(),获取到的默认编码就是UTF-8.
  4. ftpClient.storeFile(new String(filename.getBytes(“UTF-8”),“UTF-8”))失败
  5. ftpClient.storeFile(new String(filename.getBytes(“iso-8859-1”),“iso-8859-1”))失败
  6. ftpClient.sendCommand(“OPTS UTF8”, “ON”)如果不修改文件名编码,仍然是失败

ftpClient下载时同样要做文件名编码转换
LOCAL_CHARSET=“GBK”
ftpClient.connect(server,port)之后
if(FTPReply.isPositiveCompletion(ftpClient.sendCommand(“OPTS UTF8”),“on”)){LOCAL_CHARSET=“UTF-8”}
ftpClient.setControlEncoding(“iso-8859-1”)(编码大小写都行)
ftpClient.login(username,password)
下载文件流:
ftpClient.retrieveFileStream(new String(filename.getBytes(LOCAL_CHARSET),“iso-8859-1”)))

首先检查一下你的远程服务器是否已经安装了FTP服务。

#rpm -qa | grep vsftpd

查看ftp用户名和密码
/usr/bin/db_dump -d a /etc/vsftpd/vsftpd_login.db

yum install vsftpd

安装好后,要启动vsftpd服务:service vsftpd start

停止服务:service vsftpd stop

重启服务:service vsftpd restart

查看状态:service vsftpd status

新增ftp用户 vftpuser

#/usr/sbin/adduser -d /mnt/ftp -g ftp -s /sbin/nologin vftpuser

ftpConfig文件增加userlist_deny=NO之后需要在在/etc/vsftpd/user_list中增加刚才创建的用户,重启vsftp
新增用户后关键一部:在/etc/vsftpd/user_list中增加刚才创建的用户,重启vsftp


centos7防火墙管理

安装防火墙

yum install firewalld systemd -y

查看已经开放的端口:

firewall-cmd --list-ports

开放端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙:

systemctl reload firewalld

cat /etc/passwd | grep apache

touch Test.ini

Test.ini


tar -zxvf git-2.22.0.tar.gz

vi /etc/profile

export PATH=$PATH:/usr/local/git/bin

source /etc/profile


chmod u+w /etc/sudoers

//进行修改,修改完成之后:

chmod u-w /etc/sudoers

查看linux所有用户
cat /etc/passwd

在创建新用户时,将修改以下 4 个文件。

  • /etc/passwd: 用户账户的详细信息在此文件中更新。
  • /etc/shadow: 用户账户密码在此文件中更新。
  • /etc/group: 新用户群组的详细信息在此文件中更新。
  • /etc/gshadow: 新用户群组密码在此文件中更新

whoami命令用于显示登入的用户名。
使用w命令查看登录用户正在使用的进程信息

1.ftp客户端连接ftp报:vsftp:…writeable…是因为vsftp限制了用户目录但是vsftp发现该目录有“写”权限
解决办法
chmod u-w ftpdata
2.新增用户后bash连接时间长,是因为创建用户时没有指定主目录。
解决办法
useradd -d /home/ftpdata myUser或者 useradd myUser -m
2.新用户指定主目录后,ssh登录仍然报 /usr/bin/xauth: file /home/chenwi/.Xauthority does not exist,是因为没有授权主目录owner为该user
解决办法
chown myUser:myUser -R /home/ftpdata

20220614

排查ftp连接问题
cat /etc/selinux/config 查看SELINU是否enable,如果enable需要设置下面ftp_full_access=on
getsebool -a|grep ftp
setsebool allow_ftpd_full_access on
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES

getenforce
setenforece 0 (宽松策略,临时修改)

永久修改
vim /etc/sysconfig/selinux
或者
输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
reboot
19.配置selinux允许ftp访问home和外网访问
[root@master ~]# setsebool -P allow_ftpd_full_access on
[root@master ~]# setsebool -P tftp_home_dir on
20.重启vsftpd服务
————————————————
原文链接【Linux常用服务器配置——Vsftpd服务】:https://blog.csdn.net/xiaoxiaowu0419/article/details/123916314

在/etc/profile.d/下配置jdk.sh无效原因可能是/etc/profile文件里最后写了export PATH=…因为这里的PATH会覆盖profile文件里export上面的读取profile.d里的PATH

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值