0
点赞
收藏
分享

微信扫一扫

架构师之路-学渣到学霸历程-27

一点读书 2024-11-03 阅读 31

VSFTP匿名用户访问

今天分享的是vsftpd的登录后的命令 这里主要是使用匿名用户来说明; 其实我们使用了,作为运维人员,一些命令我们要看得懂; 命令远不止这些,一起来看看吧

1、匿名用户登录:

ftp客户端匿名登录需要输入用户名及密码验证,

  • 匿名用户名为:ftp或者anonymous,
  • 密码为空。
#如果使用lftp登录的话就不用输入这些信息
[root@Linux2 ~]# lftp 192.168.75.71
lftp 192.168.75.71:~> 
	#查看一下登录的地址
[root@Linux2 ~]# lftp 192.168.75.71
lftp 192.168.75.71:~> ls
drwxr-xr-x    2 0        0               6 Jun 09  2021 pub
lftp 192.168.75.71:/> pwd
ftp://192.168.75.71/
	#这里对应的是配置文件中
[root@Linux1 ~]# ls /var/ftp/
pub

2、lftp下载命令

下载命令:

get下载单个文件:

  • 这里涉及了一个命令lcd是切换本地目录的命令
  • 当客户端已经连接上服务端,cd是用于切换服务器中的目录命令,如果想切换客户端本地的目录则使用lcd命令。
#这里可以先切换到本地指定目录(liangjiawei) 进行文件的下载,保存:
	#这里前提下需要注意的是:这个liangjiawei的目录需要存在
[root@Linux2 ~]# mkdir /liangjiawei
[root@Linux2 ~]# lftp 192.168.75.71
lftp 192.168.75.71:~> lcd /liangjiawei
lcd 成功, 本地目录=/liangjiawei

#服务器端创建一点文件
[root@Linux1 data]# cd /var/ftp/
[root@Linux1 ftp]# ls
pub
[root@Linux1 ftp]# touch aa{1..5}.txt
[root@Linux1 ftp]# ls
aa1.txt  aa2.txt  aa3.txt  aa4.txt  aa5.txt  pub

#然后下载到指定的目录(默认使用源文件名,可以自定义名)
	#这里也是指定-o的下载路径
lftp 192.168.75.71:/> get aa1.txt -o /tmp
[root@Linux2 ~]# ll /tmp/
总用量 0
-rw-r--r-- 1 root root 0 10月  4 21:19 aa1.txt

mget批量下载

#这里是支持通配符的
lftp 192.168.75.71:/> mget aa*
Total 5 files transferred 

上传或者修改操作

默认的配置,只能支持文件的读取和下载;

不能够进行上传和写入文件

  • 上传使用到的命令:put
#没法上传
lftp 192.168.75.71:/> put /etc/fstab
put: Access failed: 550 Permission denied. (fstab)
	#同时也没法直接创建
lftp 192.168.75.71:/> mkdir bb
mkdir: Access failed: 550 Permission denied. (bb)
	#可以看到上传命令和创建命令都失败了,没有相应的权限!

3、开启修改权限

服务器端操作

  • 需要修改配置文件
  • 需要重新启动服务
#查看一下这个配置文件的位置
[root@Linux1 ftp]# rpm -qal vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
......

#修改配置权限
[root@Linux1 ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}
[root@Linux1 ~]# vim /etc/vsftpd/vsftpd.conf
#开启上传权限
anon_upload_enable=YES
#开启创建文件权限
anon_mkdir_write_enable=YES
#开启重命名,删除权限
anon_other_write_enable=YES
anon_umask=022

#然后重启vsftpd服务
[root@Linux1 ~]# systemctl restart vsftpd

客户端操作:

  • 需要重新登录匿名用户验证
#登录
[root@Linux2 ~]# lftp 192.168.75.71
	#再次尝试创建目录
lftp 192.168.75.71:/> mkdir abc
mkdir: Access failed: 550 Create directory operation failed. (abc)
	#这里就明显是权限拒绝了,需要到服务器端修改这个ftp的w权限
[root@Linux1 ~]# chmod o+w /var/ftp -R
[root@Linux1 ~]# ll -d /var/ftp/
drwxr-xrwx 3 root root 92 10月  4 21:19 /var/ftp/

#然后再次尝试:-->成功解决了
lftp 192.168.75.71:/> mkdir abc
mkdir 成功, 建立 `abc'

总结这个匿名用户创建删除权限;

  • 要想匿名用户有写的权限,
    • 一是需要服务端配置文件开启写的权限
    • 二是所在的目录本身有其他用户写的权限!

4、上传命令

put上传单个文件:

  • 想要使用上传命令,需要开启上传权限和可写权限
  • 语法:put + 选项 + 文件 + -o 重新改名文件
    • 直接上传不改名,
    • 可以省去-o refile,
    • 如果不知道本地目录有哪些文件,可以使用!dir查看;
#查看当前本地服务器的文件
lftp 192.168.75.71:/> !dir
anaconda-ks.cfg  nginx-1.26.2.tar.gz

#尝试上传别的文件-->这里出现了500的报错
lftp 192.168.75.71:/> put anaconda-ks.cfg
put: 登录失败: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
	#解决这个问题:需要吧/var/ftp这个目录需要取消w权限
[root@Linux1 ~]# chmod o-w /var/ftp/
[root@Linux1 ~]# ll /var/ftp/ -d
drwxr-xr-x 4 root root 103 10月  4 21:37 /var/ftp/

#然后重新尝试
lftp 192.168.75.71:/> cd pub/
lftp 192.168.75.71:/pub> put anaconda-ks.cfg
1506 bytes transferred

#上传文件之后,想改名,就要带-o 重命名文件
	#将本地文件fstab上传到了匿名用户的pub目录并修改了文件名。
lftp 192.168.75.71:/pub> put /etc/fstab  -o fs
465 bytes transferred

mput批量上传

  • 上传多个文件,可以使用put和mput命令上传,
  • 多个文件之间用空格分隔,
  • 如果想使用通配符,只有mput命令支持:
#上传两个文件
lftp 192.168.75.71:/pub> put /etc/fstab /etc/inittab  
976 bytes transferred
Total 2 files transferred
	#如果想要支持通配符,直接使用mput命令
lftp 192.168.75.71:/pub> mput /etc/f* 
1652 bytes transferred                                    
Total 4 files transferred

5、下载/上传目录

  • mirror命令
#远程服务器创建一个bb目录
[root@Linux1 pub]# mkdir bb cc dd
#下载目录
lftp 192.168.75.71:/pub> mirror -c bb
	#-c代表支持断点续传
Total: 1 directory, 0 files, 0 symlink

#上传目录操作
lftp 192.168.75.71:/pub> mirror  -cR /tmp
Total: 6 directories, 1 file, 0 symlinks                     
New: 1 file, 0 symlinks
	# 默认上传目录后,是不能查看目录内容的,需要添加mask权限:
		vim /etc/vsftpd/vsftpd.conf
		anon_umask=022

6、同步远程目录

#同步当前目录文件
lftp 192.168.75.71:/pub> lcd 
lcd 成功, 本地目录=/root
lftp 192.168.75.71:/pub> mirror -ce 
	#-e 该参数会将远程目录pub下的文件同步到本地的root目录下,并且删除本地多余的文件(远程目录没有的文件)

# 同步指定目录,如果是想同步整个目录,需要在本地端路径加上目录名:
lftp 192.168.75.71:/pub> mirror -ce bb /root/bb
Total: 1 directory, 0 files, 0 symlinks

#同步指定目录文件,如果是同步指定目录下的文件,不同步目录本身,就不需要指目录了:
lftp 192.168.75.71:/pub> mirror -ce bb /root/
Total: 1 directory, 0 files, 0 symlinks
	# lutixia为远程服务器pub目录下的一个目录
	# root为本地的目录

7、删除相关操作

#删除目录
lftp 192.168.75.71:/pub> rm -rf bb
rm 成功, 删除 `bb'

#删除空目录
lftp 192.168.75.71:/pub> rm -rf cc
rm 成功, 删除 `cc'

#删除文件
lftp 192.168.75.71:/pub> rm -rf anaconda-ks.cfg 
rm 成功, 删除 `anaconda-ks.cfg'

分享环节:

hi,亲爱的朋友们:

  • 感谢你们耐心完这个笔记,如果笔记中出现的一些软件包、资源找不到的可以直接留言&私聊,我看见了就回复;
  • 资源免费共享;有需要滴滴,(仅仅是我有的)

我的坚持初衷:💕立志要成为一名架构师

  • 不断地去坚持学,其中的各种各样的难度,不言而喻~!
  • 坚持不是一件容易的事情,但它却是成功的关键。做起来吧~!

如果你也想要坚持:那么组团吧,咋们一块互相监督;一天一点分享也是进步;最怕就是孤军奋战!加油吧,追梦人~!

举报

相关推荐

0 条评论