Linux命令学习—文件服务器 NFS 和 Samba

1.1、NFS 服务器

1.1.1、NFS 服务器介绍

NFS network file system 网络文件服务器

最初由 SUN 公司发展起来,一种简单的文件服务器,NFS 允许一个系统在网络上与他人共享目录和文 件。

1.1.2、配置 NFS 服务器

①、NFS 的配置相关文件

复制代码
/etc/exports

NFS 服务的管理

复制代码
service nfs start(stop,restart)

检查 NFS 服务是否开机启动

复制代码
chkconfig - - list nfs

检查 NFS 包是否安装

复制代码
rpm -qa |grep nfs

NFS 的安装

复制代码
rpm -ivh /media/cdrom/RedHat/RPMS/nfs-utils-1.0.6-46.i386.rpm
rpm -ivh /media/cdrom/RedHat/RPMS/portmap-4.0-63.i386.rpm(nfs 相关服务进程)

②、vi /etc/exports 编辑 NFS 的服务器配置文件

在配置文件中以行为单位写入共享信息,格式如下:

复制代码
在配置文件中以行为单位写入共享信息,格式如下:
directory client (option1,option2)
directory 代表共享目录
client 代表授权主机

()内的内容代表常用操作选项

操作选项

复制代码
rw 可读写权限
ro 只读权限
all_squash 所有用户登陆都以匿名用户身份访问
anonuid 指定匿名用户的 UID(默认以 nobody 的身份登陆)
anongid 指定匿名用户的 GID(默认以 nobody 的身份登陆)
sync 数据同步写入硬盘
async 数据先存放在内存中,不直接写入硬盘

example:

复制代码
/nfs/share *(async)

将/nfs/share 共享给所有人访问,默认是只读,数据不直接写入硬盘

复制代码
/nfs/sh1 192.168.1.*(ro,all_squash,async)

将/nfs/sh1 目录共享给 192.168.1.0 网段的客户端访问,访问时以只读,匿名用户,数据不直接写入硬盘

复制代码
/nfs/sh2 192.168.1.100(rw,sync,anonuid=500,anongid=500)

将/nfs/sh2 目录共享给指定 IP192.168.1.100,访问以 UID 和 GID500 的用户的身份登陆,读写权限,数 据直接写入硬盘.

③、NFS 客户端的访问

查看 NFS 共享:

复制代码
showmount -a 在 server 上应用,查看已经 mount 上本机 NFS 共享目录的机器
showmount -e NFS 服务器的 IP 地址

查看指定 NFS 服务器上的共享目录:

复制代码
mount 192.168.1.1:/nfs/sh2 /mnt/nf2

将 NFS 服务器 192.168.1.1 上的/nfs/sh2 共享目录挂载到本机的/mnt/nf2 目录下 如果指定文件系统类型。

1.2、samba 服务器

1.2.1、samba 服务器介绍

SMB 协议:

SMB(Server MessageBlock,服务信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它 可以为网络内部的其它 Windows 和 Linux 机器提供文件系统、打印服务或是其他一些信息。

Samba:

Samba 是用来实现 SMB 的一种软件,由澳大利亚的 Andew Tridgell 开发,是一种在 Linux(Unix)环境下 运行的免费软件。Samba 整合了 SMB 协议及 Netbios 协议,使其运做在 TCP/IP 上。能够让 Unix based 的机 器与 windows 互动,采用的是服务器/客户端的架构,执行 Samba 客户端程序,我们就可以访问 Windows 主机上的共享资源。而运行 Samba 服务器,Windows 主机也可以访问 Linux 上的共享资源。

SAMBA 服务有两个进程:

复制代码
smbd:SMB 服务器
nmbd:netbios 名字服务器。
smbd 为 SMB 客户机,诸如 Windows 9x/NT 等提供 Windows NT 和 Lan Manager 风格的文件和打印服务。
nmbd 提供浏览支持,使采用 Linux 操作系统的计算机用户可以融入使用 netbios 协议的 windows 网络。

Samba 服务能够做什么:

  1. 在网络上共享目录,就好像一台文件服务器一样。

  2. 在网络上共享打印机。

  3. 决定每一个目录由谁来使用,可以让一个人、某些人、组和所有人访问。

  4. 决定打印机由谁来使用,可以让一个人、某些人、组和所有人使用。 可以看出,安装和配置好了 Samba 服务器后,Linux 就可以使用 Windows 网络中的文件和打印服务器了。

1.2.2、图形化界面配置 samba 服务器

①、访问 Samba 服务器配置工具

依次单击"主菜单→系统设置→服务器设置→Samba 服务器",即可打开 Samba 服务器配置窗口。

注意:

1.必须以 root 用户身份才可以对 Samba 服务器进行配置。

2.也可以在终端窗口输入 redhat-config-samba 命令打开配置窗口。

②、进行服务器设置

这里首先要对 Samba 服务器的基本设置和安全选项进行配置,单击配置窗口上的"首选项→服务器设置",即可打开服务器设置对话框

1)基本设置

在对话框的"基本"标签页,我们可以指定 Linux 主机所在的工作组名称,需要注意的是,此处的工 作组 名称不一定非得与 Windows 主机所在的工作组名称一致。

2)安全设置

Samba 服务器安全设置,这里一共有四个选项,分别介绍如下:

A. 验证模式:如果 Windows 主机不是位于 NT 域里,此处应该选择"共享"验证模式,这样只有在连接 Samba 服务器上的指定共享时才要求输入用户名、密码;

B. 验证服务器:对于"共享"验证模式,无须启用此项设置;

C. 加密口令:应该选择"是",这样可以防止黑客用嗅探器截获密码明文;

D.来宾账号:当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系 统上的现存用户名之一作为来宾 Samba 账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个 用户相同的权限。

③、添加共享目录

添加共享目录,单击 Samba 配置窗口工具栏上的"增加"按钮,即可打开一个添加共享对话框。

1)在该对话框上的"基本"标签页上,指定要共享的目录为某个存在的目录,例如可以指定/tmp,再 指定该目录的基本权限是只读还是读/写。

2)在"访问"标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。

④、添加 samba 共享用户

添加用户,在首选项中选择 samba 用户管理,启动 Samba 用户管理界面,先要选择一个 linux 用户, 然后在这个用户下面建立 windows 登录时使用的用户和密码。使用这个 windows 用户登录时自动继承 linux 用户的权限,默认有 linux 用户的主目录的访问权限。

确定后一个新用户就建立好了,添加共享目录时就可以分配每个用户的访问目录来。

⑤、从 Windows 访问 Samba 服务器

须启动 Samba 服务。打开一个终端窗口,键入"service smb start"命令,即可出现以下提示信息, 表示 Samba 服务已经启动:

复制代码
# service smb start
启动 SMB 服务 [确定]
启动 NMB 服务 [确定]

1.2.3、文本界面下配置 samba 服务器

①、samba 相关

复制代码
后台进程:smbd,nmbd
使用端口:137,138,139
所需 RPM 包:samba,samba-common,samba-client
相关 RPM 包:samba-swat
配置文件:/etc/samba/smb.conf
samba 服务的启动/停止/重启
service smb start
service smb stop
service smb restart

②、samba 主配置文件介绍

复制代码
/etc/samba/smb.conf
使用[]分成几段,每段的含义
[global]:一些全局配置
[homes]:让用户可以访问其主目录
[printers]:定义共享的打印机资源
[global 段的配置
workgroup 配置工作组
security 安全模式,共享级别(user,share)
[homes]共享段的配置
example:
[tmp]
comment = Temporary file space 共享描述
path = /tmp 共享目录
read only = no 共享权限
browseable = yes 是否显示(隐藏共享)
public = yes 公开访问,提供给所有用户
配置共享级别的 samba
example:
security = share
[share]
comment = share test 
path = /media/share 
read only = no 
browseable = yes 
public = yes 
添加共享目录/media/share,共享名为 share,描述为 test,开放给所有用户访问
配置用户级别的 samba
example:
security = user
#smbpasswd -a jake 共享访问用户为 jake
password: 共享访问密码为***

1.3、windows 和 linux 下的共享互访

linux 访问 windows

①、使用 mount

复制代码
mount windowsIP 地址/共享名 本机目录 -o username=用户名

②、mount.cifs

复制代码
mount.cifs windowsIP 地址/共享名 本机目录 -o username=用户名

③、使用 mount 加参数 -t cifs

复制代码
mount windowsIP 地址/共享名 本机目录 -o username=用户名

④、使用 sambaclient

复制代码
sambaclient windowsIP 地址/共享名 -U 用户名
windows 访问 linux
windows 访问 linux 与访问 windows 相同,使用 UNC 路径
相关推荐
朱皮皮呀18 分钟前
Spring Cloud——服务注册与服务发现原理与实现
运维·spring cloud·eureka·服务发现·php
xixingzhe233 分钟前
多人同时导出 Excel 导致内存溢出
服务器·设计
吱吱企业安全通讯软件33 分钟前
吱吱企业通讯软件保证内部通讯安全,搭建数字安全体系
大数据·网络·人工智能·安全·信息与通信·吱吱办公通讯
云手机掌柜38 分钟前
Tumblr长文运营:亚矩阵云手机助力多账号轮询与关键词布局系统
大数据·服务器·tcp/ip·矩阵·流量运营·虚幻·云手机
★YUI★1 小时前
学习游戏制作记录(制作系统与物品掉落系统)8.16
学习·游戏·ui·unity·c#
努力还债的学术吗喽1 小时前
【速通】深度学习模型调试系统化方法论:从问题定位到性能优化
人工智能·深度学习·学习·调试·模型·方法论
yuanpan1 小时前
ubuntu系统上的conda虚拟环境导出方便下次安装
linux·ubuntu·conda
云边云科技2 小时前
零售行业新店网络零接触部署场景下,如何选择SDWAN
运维·服务器·网络·人工智能·安全·边缘计算·零售
城管不管2 小时前
Docker核心---数据卷(堵门秘籍)
运维·docker·容器
AOwhisky2 小时前
Linux 文本处理三剑客:awk、grep、sed 完全指南
linux·运维·服务器·网络·云计算·运维开发