为了解决Linux和Windows之间更好的配合我们可以用vsftpd和tftp来实现两个系统互传文件,但是毕竟之是传文件有没有什么服务可以让linux和windows之间直接共享文件直接对文件进行增删改查呢?当然有它就是Samba!
一:实现linux和windows直接共享文件
1.安装samba服务相关安装包
[root@b database]# yum install -y samba cifs-utils
第一个samba是smb服务需要的安装包,cifs是(Common interface file systems,普通互联网文件系统)实现linux之间的文件共享服务。
2.建立登录共享目的用户,必须是本地用户(为了引起不必要的麻烦)
[root@b ~]# pdbedit -a -u Jack
3.创建共享目录更改权限并写入一个文件
[root@b ~]# mkdir /home/share
[root@b ~]# echo “At last fireman put out a big forest fire” > /home/share/a
[root@b ~]# chmod o+w /home/share/
4.修改配置文件,添加内容
[root@b ~]# vim /etc/samba/smb.conf
[database] # 共享目录的名字
comment = share dir # 对共享目录的一个说明
path = /home/share # 共享目录存放的路径
public = no # 不对所有人公开
writable = yes # 有写入的权限
5.重启服务,设置selinux和防火墙并进行测试
[root@b ~]# semanage fcontext -a -t samba_share_t /home/share
[root@b ~]# restorecon -Rv /home/share
[root@b ~]# setsebool -P samba_enable_home_dirs on
[root@b ~]# systemctl restart smb
win+R打开运行框输入\192.168.10.11(这个是我smb服务端的)登录即可看到共享目录share,并且可以进行文件写入等操作。
二:用samba实现Linux之间相互共享文件
上面做的是samba服务器,这个是samba客户端
1.安装相关组件和服务
[root@a ~]# yum install -y cifs-utils
2.建立挂载目录
[root@a ~]# mkdir /share
3.把samba共享目录添加到开机启动自启文件中
[root@a ~]# vim /etc/fstab
//192.168.10.11/share /share cifs username=Jack,password=a 0 0
[root@a ~]# mount -a
4.进行实验
#服务端
[root@b home]# cd /home/share/
[root@b share]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 15 18:39 a
#客户端
[root@a ~]# cd /share/
[root@a share]# ll
drwxr-xr-x. 2 root root 0 Mar 15 18:39 a
三:用NFS实现linux之间文件的共享
1.安装相关服务(服务端和客户端都需要安装)
[root@b ~]# yum install -y nfs-untils
2.建立共享目录写入文件并给权限
[root@b ~]# mkdir /public/
[root@b ~]# echo “I am good girl” > /home/share/a
[root@b ~]# chmod -Rf 777 /public/
3.编辑nfs配置文件,添加内容。格式为:“共享目录的路径 允许访问的 NFS客户端IP(共享权限参数)IP和参数之间没有空格
[root@b ~]# vim /etc/exports
/public 192.168.10.*(rw,sync)
4.重启nfs服务,开启rpc服务,两个都加入开机启动项
[root@b ~]# systemctl restart rpcbind
[root@b ~]# systemctl enable rpcbind
[root@b ~]# systemctl restart nfs
[root@b ~]# systemctl renable nfs
5.建立挂载共享目录的目录加入开机自启
[root@a ~]# mkdir /public
[root@a ~]# vim /etc/fstab
192.168.10.11:public /public nfs defaults 0 0
[root@a ~]# mount -a
6.客户端进行测试
#服务端
[root@b ~]# cd /public/
[root@b public]# ll
total 0
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Mar 15 18:16 a
#客户端
[root@a ~]# cd /public/
[root@a public]# ll
total 0
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Mar 15 18:16 a
四:利用autofs实现自动挂载
如果我们把太多的文件都加入到开机自启,那么会影响我们的系统速度,有没有什么办法可以我们需要的时候自动挂载不需要的时候不挂载呢?
答:当然有,用autofs啊
1.安装相关服务
[root@b ~]# yum install -y autofs
2.编辑配置文件(添加一行自动挂载的目录,如果要挂到/mnt/centos上就在前面写/mnt,后面写的是自定义的子配置文件最好是以misc结尾)
[root@b ~]# vim /etc/auto.master
/mnt /etc/iso.misc
3.编辑子配置文件(最前面写的是挂载目录的最后面比如/mnt/centos写centos。后面跟的是-fstype也就是我们要挂载的格式接着,跟对要挂载的说明ro只读,nosuid,nodev。:/dev/cdrom是要挂载的路径)
[root@b ~]# vim /etc/iso.misc
centos -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
4.进行测试
[root@b ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.4G 16G 8% /
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
首先是没有挂载的,进入/mnt发现是没有东西的,但是我们还是可以进入centos目录
[root@b ~]# cd /mnt
[root@b mnt]# cd centos
[root@b iso]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.4G 16G 8% /
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt/centos