SAMBA FTP HTTP 共享文件最简单配置

SAMBA FTP HTTP 共享文件最简单配置

[toc]

共享文件给别人的时候使用微信之类的东西需要上传再下载,在同个局域网内的时候这样做就比较慢了,这里总结几个在局域网内可以快速分享文件给其他人的方式。我个人长期使用linux作为主力的办公电脑,所以以下的各个环境均是在 linux 主机上实现。此次使用的版本为,ubuntu 20.04 lts

0x00 SAMBA

1.匿名账户

sudo apt-get install samba
# 安装 samba
mkdir ~/share
# 建立共享用的文件夹
chmod 777 ~/share
# 放开share的权限
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
# 备份原始的配置文件
sudo vim /etc/samba/smb.conf
# 编辑配置文件,在配置文件的最后添加以下内容


[share]
   #中括号里面是共享的名字,隨意写,后面用的时候smb://192.168.1.105/share 
    comment = File
   # 共享描述
    path = /home/hy/share
   # 將要共享的文件夾的位置
    public = yes
   # 设置共享是否允许guest账户访问  
    browseable = yes
   # 设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
    security = share
   # 用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
    writable = yes  
   # 设置共享是否具有可权限


sudo systemctl restart smbd.service 
# 重启 samba 服务,让新写的配置生效

2.分权限账户

useradd -s /sbin/nologin test
# 添加虚拟账户
smbpasswd -a test
# 把系统的虚拟用是 test 添加为samba的用户
pdbedit –L                               
# 查看samba用户
# 建立共享文件夹放开权限,备份配置文件与上面的一致。
sudo vim /etc/samba/smb.conf
# 编辑配置文件,在配置文件的最后添加以下内容


[share]
   #中括号里面是共享的名字,隨意写,后面用的时候smb://192.168.1.105/share 
    comment = File
   # 共享描述
    path = /home/hy/share
   # 將要共享的文件夾的位置
    browseable = yes
   # 设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
    security = user
   # 用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
    writable = yes  
   # 设置共享是否具有可权限

0x01 FTP

1.匿名账户

由于ftp 的匿名账户的权限非常的有限,且只能上传部分内容故此不再尝试。早期版本的vsftp可以使用和samba类似的方式使用全匿名账户来实现所有功能,但是随着版本的更新权限方面越来越不方便。

2.分权限账户

这里采用虚拟账户的方式进行配置,这样是最灵活可用的。权限也能够得到很好的控制。先创建系统的用户,在把ftp的虚拟账户绑定到系统的账户上

  1. 准备工作
sudo apt-get install vsftpd
# ubuntu 下安装vsftpd,如果是centos 使用yum install vsftpd 安装
  1. 配置虚拟用户所需的文件
mkdir /etc/vsftpd
# 创建ubuntu下所需的文件夹,centos 这个不用
vim /etc/vsftpd/vir_ftpuser
hppp
123456
#创建虚拟用的用户名和密码,第一行写用户名,第二行密码, hppp 是用户名,123456是密码。多个账户的依次类推,多个账户的话一行用户名一行密码,一一对应的写
sudo apt install db-util
# 安装db—load的工具,在centos下     yum -y install libdb-utils用来生成虚拟用户的数据库
db_load -T -t hash -f /etc/vsftpd/vir_ftpuser  /etc/vsftpd/vir_ftpuser.db
# 生成数据库文件
chmod 700 /etc/vsftpd/vir_ftpuser.db
# 更改权限否则会有问题

  1. 配置 vsftp 的 pam 认证部分
vim /etc/pam.d/vsftpd
# 用#注释掉所有的配置,然后写入下面两行      
auth    required    pam_userdb.so   db=/etc/vsftpd/vir_ftpuser
account required    pam_userdb.so   db=/etc/vsftpd/vir_ftpuser
  1. 添加系统的虚拟账户
mkdir /ftp_root
# 给虚拟用户创建一个家目录
useradd -d /ftp_root -s /sbin/nologin virtualftp
# 创建用户 virtualftp,所有的虚拟账户都会挂在这个账户下面
chown -R virtualftp:virtualftp /ftp_root
  1. 在vsftpd 中启用虚拟账户
vim /etc/vsftpd.conf
# centos 下是在  /etc/vsftpd/vsftpd.conf 在最后添加下面的内容,如有你之前改过一写配置项,请保持不要与下面的配置项冲突。


#启用虚拟账户 
guest_enable=YES
#把虚拟账户映射到系统账户virtualftp               
guest_username=virtualftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES

  1. 配置虚拟账户
mkdir /etc/vsftpd/vsftpd_viruser/
# 配置虚拟用户各自的配置文件(创建虚拟用户配置文件的存放目录)
vim /etc/vsftpd/vsftpd_viruser/hppp
# 上面写了那个虚拟账户这里就创建什么文件


# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
#允许虚拟用户上传文件
anon_upload_enable=YES
#允许虚拟用户创建目录
anon_mkdir_write_enable=YES
#允许虚拟用户执行其他操作(如改名、删除)
anon_other_write_enable=YES
#上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
#指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/admin/

  1. 创建 ftp 的虚拟账户的家目录
mkdir -p /ftproot/admin/
chown -R virtualftp:virtualftp /ftproot/admin/
systemctl restart vsftpd
# 重启vsftpd服务
systemctl enable vsftpd
# 开机自启vsftpd服务

0x02 HTTP 方式

HTTP 的方式适合分享,不适合上传,最简单就是用 python

1.python方式

python3 -m http.server 8080
# 在终端中打开需要共享的文件夹下,输入上面的命令,其他机器访问 http://分享主机的ip:8080 即可下载
# -m 模块
# http.server python3内置的http服务
# 8080 web的端口
上一篇
下一篇