NFS的概念
NFS(网络文件系统)提供一种在UNIX系统上的共享文件的方法。目前,NFS又是三个版本:NFSv2、NFSv3、NFSv4,Centos7默认使用NFSv4提供服务。
其优点是提供了有状态的连接,更容易追踪连接状态,增强安全性。
NFS监听在2049端口上,用户可以通过挂载方式将共享的数据挂载到本地目录下。
NFS的相关文件
-
主要配置文件:/etc/exports
这是 NFS 的主要配置文件了。该文件是空白的,有的系统可能不存在这个文件,主要手动建立。NFS的配置一般只在这个文件中配置即可。
-
NFS 文件系统维护指令:/usr/sbin/exportfs
这个是维护 NFS 分享资源的指令,可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享。
-
分享资源的登录档:/var/lib/nfs/*tab
在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
-
客户端查询服务器分享资源的指令:/usr/sbin/showmount
这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。showmount 可以用来察看 NFS 分享出来的目录资源。
NFS实战
- 环境准备
ip | 主机名 | 节点 |
---|---|---|
192.168.0.20 | nfs-server | NFS服务节点 |
192.168.0.21 | nfs-client | NFS客户节点 |
- NFS安装
[root@localhost ~]# hostnamectl set-hostname nfs-server
[root@localhost ~]# bash
[root@nfs-server ~]# yum install -y nfs-utils rpcbind
[root@localhost ~]# hostnamectl set-hostname nfs-client
[root@localhost ~]# bash
[root@nfs-client ~]# yum install -y nfs-utils rpcbind
- 在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限
[root@nfs-server ~]# mkdir /nfsfile
[root@nfs-server ~]# chmod -R 777 /nfsfile
[root@nfs-server ~]# echo 1232424 > /nfsfile/test
- 配置NFS服务程序配置文件的参数
[root@nfs-server ~]# vim /etc/exports
[root@nfs-server ~]# cat /etc/exports
/nfsfile 192.168.0.0/24(rw,sync,root_squash)
- NFS客户端的配置
使用showmount命令查询NFS服务器的远程共享信息
[root@nfs-client ~]# showmount -e 192.168.0.20
Export list for 192.168.0.20:
/nfsfile 192.168.0.0/24
- 客户端挂载使用
[root@nfs-client ~]# mkdir /nfsfile
[root@nfs-client ~]# mount -t nfs 192.168.0.20:/nfsfile /nfsfile
[root@nfs-client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 18G 1.1G 17G 7% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 124M 373M 25% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sr0 iso9660 4.2G 4.2G 0 100% /cdrom
192.168.0.20:/nfsfile nfs4 18G 1.1G 17G 7% /nfsfile
[root@nfs-client ~]# cat /nfsfile/test
1232424
CIFS服务
CIFS的概念
cifs服务实现为你吉安共享服务的一种文件系统,主要实现window系统中的文件共享,在linux系统中用的比较少,一般linux中使用cifs实现文件共享时用到samba服务,smaba是使linux支持SMB/CIFS协议的组软件包。samba服务在linux和window两个系统之间架起一座桥梁。
Samba的功能
Samba服务所包括的软件有Samba,samba-client,samba-common。软件包的组成包括smbd和nmbd两个守护进程。samba提供4个服务:文件打印服务,授权与被授权,名字解析,浏览服务。前面两个由smbd守护进程提供,后面由nmbd守护进程提供。
smbd进程监听端口:TCP 139 (NeBIOS over TCP/IP) 和TCP 445 (SMBoverTCP/CIFS)端口
nmbd进程监听端口:UDP 137 (NeBIOS-ns) 和UDP 138 (NetBIOS-dgm) 端口
主要功能为:
1、共享文件与打印机服务
2、可以提供用户登陆samba主机时的身份认证,以提供不同身份用户的个别数据
3、可以进行windows网络上的主机名解析
4、可以进行设备的共享
samba实战
- 安装samba服务
- 修改主机名
[root@compute ~]# hostnamectl set-hostname samba
[root@compute ~]# bash
[root@samba ~]#
- 安装samba服务
[root@samba ~]# yum install samba -y
- 配置samba服务
- Samba服务程序中的参数以及作用
- 配置samba的配置文件/etc/samba/smb.conf,删除不必要的参数
- 在配置文件最后添加共享文件的信息
- 参数说明
【share】:共享名称
path: 共享目录的路径
browseable : 操作权限
public: 访问权限
writable: 对文件的操作权限
commment: 对该共享的提示信息
- Samba服务程序中的参数以及作用
[root@samba ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
[share]
path = /opt/share
browseable = yes
public = yes
writable = yes
- 创建目录并赋予权限,重启服务
[root@samba ~]# mkdir /opt/share
[root@samba ~]# chmod 777 /opt/share
[root@samba ~]# systemctl restart smb
[root@samba ~]# systemctl restart nmb
- 查看端口情况
[root@samba ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 22365/smbd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1187/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2302/master
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 22365/smbd
tcp6 0 0 :::139 :::* LISTEN 22365/smbd
tcp6 0 0 :::22 :::* LISTEN 1187/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2302/master
tcp6 0 0 :::445 :::* LISTEN 22365/smbd
- 创建samba用户
- pdbedit命令用于管理Samba服务程序的账户信息数据库,格式为“pdbedit [选项]账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。
- pdbedit命令用于管理Samba服务程序的账户信息数据库,格式为“pdbedit [选项]账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。
[root@samba ~]# useradd user1
[root@samba ~]# echo 123456 | passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@samba ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1)
[root@samba ~]# pdbedit -a -u user1
new password:
retype new password:
Unix username: user1
NT username:
Account Flags: [U ]
User SID: S-1-5-21-982865867-531351322-2816181876-1000
Primary Group SID: S-1-5-21-982865867-531351322-2816181876-513
Full Name:
Home Directory: \\samba\user1
HomeDir Drive:
Logon Script:
Profile Path: \\samba\user1\profile
Domain: SAMBA
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 10:06:39 EST
Kickoff time: Wed, 06 Feb 2036 10:06:39 EST
Password last set: Tue, 12 Jul 2022 05:30:47 EDT
Password can change: Tue, 12 Jul 2022 05:30:47 EDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@samba ~]# pdbedit -L
user1:1000:
- smbpasswd命令添加samba用户
[root@samba ~]# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
[root@samba ~]# pdbedit -L
user1:1000:
root:0:root
- 重启服务
[root@samba ~]# systemctl restart smb
[root@samba ~]# systemctl restart nmb
- 使用samba服务
[root@samba ~]# cp anaconda-ks.cfg /opt/share/