文件传输共享

秘钥

  • 说明:秘钥就是一个参数,就是在明文和密文之间转换所传递的参数。
  • 分类:
  • 对称秘钥加密:加密和解密使用的秘钥是一样的
  • 非对称秘钥加密:使用不同的秘钥进行加密和解密操作
  • 名词
  • 秘钥:秘密的钥匙
  • 公钥:公开的钥匙
  • 私钥:私有的钥匙
  • 主机信任,在使用ssh协议远程连接另一台计算机是需要输入用户名和密码,添加主机信任就是不需要密码就可远程连接,需要配置秘钥对(公钥和私钥)实现,具体步骤如下:
#主机1

ssh-keygen        #生成秘钥对,连续回车,默认会在~/.ssh目录下创建id_rsa(私钥)、id_rsa.pub(公钥)


#主机2

创建文件:~/.ssh/authorized_keys
将主机1的公钥(id_rsa.pub)内容粘贴到该文件中,尽管很长,但是是一行

连接测试:
在主机1上:ssh root@主机2的IP
首次连接可能需要一次密码,以后就不再需要了

scp命令

  • 格式:scp 原文件 目标文件
  • 实例
scp 1.txt 2.txt                           #本地到本地
scp 1.txt root@10.36.137.9:/root/      #本地到远程
scp root@10.36.137.9:/root/test.log .  #远程到本地
  • 说明:默认连接远程主机是需要密码的,建立主机信任后即可实现无密码的访问

rsync命令

  • 作用:在本地与本地,本地与远程之间进行数据的同步,备份等操作
  • 使用
  • 安装命令:yum install -y rsync
  • 基本格式:rsync [选项] 源地址 目标地址
  • 基本实例:
rsync -av root@10.36.137.9:/root/123 .
rsync -av 123 root@10.36.137.9:/root/
  • 选项说明:
-a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一
    个 --no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a--no-l 等同于-rptgoD
-r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,
    但是传输的是目录必须加-r选项
-v 打印一些信息出来,比如速率,文件数量等
-l 保留软链结
-L 像对待常规文件一样处理软链结,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向
    的目标文件拷贝到DST
-p 保持文件权限
-o 保持文件属主信息
-g 保持文件属组信息
-D 保持设备文件信息
-t 保持文件时间信息
--delete 删除那些DST中SRC没有的文件
--exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,
    可以是万用字符模式(如*.txt)
--progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、
    同步的文件传输速度等等
-u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖
常用的有 -a -v —delete —exclude
  • 典型应用场景
    同步指定的yum源,备份线上服务器的数据等

Samba服务器

  • 基本说明:
  • Smaba是在linux或unix系统上实现了SMB协议的一个免费软件
  • SMB是一种在局域网之间共享文件或打印机的通讯协议
  • SMB协议由服务器和客户端构成
  • 安装步骤
  • 安装:yum install -y samba samba-client
  • 无密码访问配置:
vim /etc/samba/smb.conf
100行左右修改如下:
    security = share
    #security = user
    #passdb backend = tdbsam
249行左右添加如下:
[share]                     #共享名称
        browseable = yes    #是否可以浏览
        writable = yes      #是否可写
        public = yes        #是否公开
        path = /share       #共享目录
  • 有密码访问配置:
添加用户:
useradd test    #创建用户
pdbedit -a test #添加用于samba管理的用户,必须是系统中已经存在的用户
pdbedit -L      #查看samba用户
  • 启动管理
  • 添加到开机启动:chkconfig smb on
  • 启动控制:service smb start|stop|restart
  • windows主机测试
1.使用快捷操作:win + r
2.在搜索栏输入:\\服务器IP
3.根据提示输入samba用户名及密码
4.能够看到用户家目录就OK了
5.添加指定目录共享,方法见无密码访问配置

windows共享文件夹给Linux

  • 在windows下创建一个文件夹(tp5),然后共享之
1.创建文件夹,右键共享
2.共享设置可以添加everyone用户,给予读写权限
3.需要关闭密码保护共享文件,否则需要密码
4.在linux下测试一下:smbclient -L windowsIP
  • 在虚拟机中安装:yum install -y cifs-utils
  • 将windows共享的文件夹挂载到linux指定的目录
检查共享:smbclient -L 10.36.137.225 [-U Jerry]
挂载目录:
mount -t cifs [-o username="Jerry",password=""] //10.36.137.225/tp5 /mnt
mount.cifs -o username="Jerry",password="" //10.36.137.225/tp5 /mnt
开机挂载:/etc/fstab
//10.36.137.225/tp5     /mnt    cifs    defaults,username="Jerry",password=""    0 0

FTP服务器

  • 安装依赖:
yum install -y gcc openssl-devel perl
  • 下载软件:

    wget -c https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.46.tar.bz2 
  • 解压文件:
tar -jxvf pure-ftpd-1.0.46.tar.bz2
  • 进入目录
cd pure-ftpd-1.0.46
  • 配置
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-tls
  • 编译安装
make && make install
  • 添加用户管理
useradd jiege             #创建用户jiege
mkdir /jiege              #创建共享目录
chown -R jiege:jiege /jiege    #将jiege目录权限设置为jiege用户jiege组
cd /usr/local/pureftpd/       #进入安装目录
./bin/pure-pw useradd ftp_huayong -u jiege -d /jiege  #添加用户
ftp_huayong     #ftp登录用户名
-u:实际访问时的用户权限
-d:指定共享的目录
需要设置登录密码:123456
  • 创建虚拟的用户数据库
./bin/pure-pw mkdb
  • 修改配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb
PIDFile                      /var/run/pure-ftpd.pid
  • 启动FTP服务
./sbin/pure-ftpd ./etc/pure-ftpd.conf
查询端口号:netstat -tunpl

NFS服务器

  • 基本说明
  • network file system,网络文件系统,采用的是RPC协议
  • RPC是远程过程调用协议
  • 也是客户端服务器的结构
  • 安装步骤:yum install -y nfs-utils
  • 在NFS服务器上修改配置文件:/etc/exports
打开:vim /etc/exports
添加:/jiege 10.36.137.0/24(rw,sync,no_root_squash)

权限介绍:
rw :读写;
ro :只读;
sync :同步模式,内存中数据时时写入磁盘;
async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,
            就像是对本机的目录操作一样。不安全,不建议使用;
root_squash:和上面的选项对应,root用户对共享目录的权限不高,
        只有普通用户的权限,即限制了root;
all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,
    用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。

介绍了上面的相关的权限选项后,再来分析一下刚刚配置的那个/etc/exports文件。其中要共享的目录为/home,信任的主机为192.168.137.0/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。
  • 启动服务
service rpcbind start
service nfs start

若在启动服务后再次修改共享配置文件:/etc/exports
可以重启服务,也可使用命令使1其立即生效:exportfs -arv
  • 客户端测试
需要安装:nfs_utils
检查共享目录:showmount -e 10.36.137.227
挂载目录:mount -t nfs 10.36.137.227:/jiege /mnt/usb
开机挂载:10.36.137.227:/jiege /mnt/usb nfs defaults,nolock  0  0