一、目标
通过Windows 10系统访问Linux服务器的共享文件夹,可将Linux服务器的文件夹映射到Windows 10系统,实现在Windows 10系统方便的读、写Linux服务器的文件夹和文件。
二、需要的条件
1、安装有Ubuntu或者是CentOS操作系统的服务器。
2、Windows 10和Linux服务器处于同一个局域网内。
三、实现步骤
1、在Linux服务器安装Samba服务软件,安装命令如下:
Ubuntu系统:
sudo apt update
sudo apt install samba -y
CentOS系统:
yum install samba -y
安装完成后,可运行命令 whereis samba 检查是否安装成果,以下应该是它的输出:
samba: /usr/sbin/samba /usr/lib/samba /etc/samba /usr/share/samba /usr/share/man/man7/samba.7.gz /usr/share/man/man8/samba.8.gz
2、在Linux服务器设置用于共享的文件夹
新建一个目录:
mkdir /home/ /sambashare/
编辑配置文件 /etc/samba/smb.conf 设置共享目录,如下所示:
sudo vim /etc/samba/smb.conf
[sambashare]
comment = Samba on Ubuntu
path = /home/username/sambashare
read only = no
browsable = yes
3、设置用户账号并连接共享文件夹
由于 Samba 不使用系统账户密码,我们需要为我们的用户账户设置一个 Samba 密码:
sudo smbpasswd -a username
在Windows 10 系统连接共享文件夹,在资源管理器里输入:
ip-addresssambashare
注:ip-address是 Samba 服务器的 IP 地址,sambashare是共享的名称。
四、参考资料
https://ubuntu.com/tutorials/install-and-configure-samba#1-overview。
单击“添加角色和功能”,进入到“选择服务器角色”界面,勾选“文件服务器”与“文件服务器资源管理器”,在弹出的对话框中单击“添加功能”按钮,最后单击“下一步”按钮。
2.安装文件服务器后,在服务器管理器中单击“文件和存储服务”选项,在出现的界面中单击“共享”选项,然后选择“任务”>“新建共享”命令。
3.打开“为此共享选择配置文件”界面,本例我们选择“SMB共享-高级“单选钮,单击“下一步”按钮。
4.打开“选择服务器和此共享的路径”界面,选择“键入自定义路径”单选钮,然后单击右侧的“浏览”按钮,在弹出的对话框中选择要共享的文件夹,设置好共享路径后单击“下一步”按钮。
5.打开“指定共享名称”界面,设置文件夹共享名称,然后单击“下一步”按钮。打开“配置共享设置”界面,参照图中所示进行设置,然后单击“下一步”按钮。
6.打开“test的高级安全设置”对话框,这里我们先禁用继承的权限,再手动添加权限。首先单击“禁用继承”按钮,在弹出的对话框中单击“从此对象中删除所有已继承的权限”按钮。
7.打开“test的权限项目”界面,单击“选择主体”选项,在弹出的对话框中选择要设置权限的用户,然后单击“确定”按钮。在“test的权限项目”界面中勾选用户对应的权限。
8.打开“将配额应用到文件夹或卷”界面,选择“不应用配额”单选钮,暂时不启用配额,然后单击“下一步”按钮。打开“确认选择”界面,确认配置信息无误后,单击“创建”按钮即可。
扩展资料:
在Windows XP或Windows Server 2003系统中,对于设置为共享属性的文件夹而言,默认情况下可以被所有拥有访问权限的用户在“网上邻居”窗口中看到。其实可以将这些共享文件夹隐藏起来,从而只能通过UNC路径访问这些共享文件夹。
实现这一目的比较简单,只需在文件夹的共享名后加上$符号即可。例如将文件夹“文档”的共享名设置为“文档$”,则在“网上邻居”窗口中是看不到被隐藏的共享文件夹的,只有通过UNC路径才能看到。这样一来,共享文件夹的安全性则多了一份保障。
德国政府发言人斯蒂芬·赛贝特表示,媒体披露的“天堂文件”曝光了“避税天堂”的税收结构、操作模式和服务对象,德国政府对此表示欢迎。他说,此举将为全球税收改革提供动力,以增加税收透明度、打击“避税天堂”。
国际调查记者联盟5日曝光了大量“天堂文件”。据悉,近百家媒体通过调查金融服务公司和离岸公司注册机构的1340万份文件,披露了数百个知名公司、政客和名流的离岸利益,以及通过专业律师帮助避税的行为。
德国财政部和内政部表示,希望已获得“天堂文件”的媒体与政府共享信息,以帮助政府完善税制,调查德国的非法逃税者。
德国司法部长海科·马斯则要求欧盟惩治“天堂文件”所披露的公司和个人,采取更多措施打击“避税天堂”。
服务器端需要安装 nfs-kernel-server 软件包:
$ sudo apt-get update
$ sudo apt-get install nfs-kernel-server
默认情况下,NFS 服务器上定义了某个共享目录,则该目录及其子目录下的所有文件都可被访问。
出于对安全的考虑,客户端任何需要 超级用户 (即 root 用户,UID=0 &GID=0)权限的文件操作都默认映射到 UID=65534 和 GID=65534 的用户,即 Ubuntu 系统中的 nobody:nogroup。
例如客户端使用 root 权限在挂载的共享目录中创建文件时,该文件的 属主 和 属组 自动变为 nobody:nogroup ,而非 root:root 。
sudo mkdir -p /var/nfs/gernel
sudo mkdir -p /var/nfs/public
sudo chown nobody:nogroup /var/nfs/gernel
为了使 NFS 服务器定义的共享文件可被指定的客户端主机访问,需要在服务器端的 /etc/exports 文件中添加对应的记录。
该文件的格式如下:
Directory Host(Options ...) Host(Options) #comment
关于 /etc/exports 文件的详细语法格式可参考 man exports 。
文件示例:
列出 nfs 服务器上的共享目录
创建挂载点
sudo mkdir -p /mnt/nfs/gernel
sudo mkdir -p /mnt/nfs/public
sudo mkdir -p /mnt/nfs/starky
挂载远程目录
sudo mount 192.168.56.102:/var/nfs/gernel /mnt/nfs/gernel
sudo mount 192.168.56.102:/var/nfs/public /mnt/nfs/public
sudo mount 192.168.56.102:/home/starky /mnt/nfs/starky
权限测试
NFS 的权限设定基于 Linux 文件系统的权限管理,即客户端挂载远程共享目录后,会把它们当成本地磁盘目录一样对待,也是根据文件的属主(组)及其对应的权限设定来限制访问。
gernel 目录的属主(组)为 nobody:nogroup(65534:65534),所以虽然该目录为读写权限,非 root 用户无法执行新建操作。而 root 用户由于 NFS 默认的安全机制,会自动映射到 nobody:nogroup。
由于我在客户端和服务端都有一个名为 starky 的用户,且它们的 UID:GID 都为1000:1000,所以服务端的 /home/starky 目录可以直接被客户端的 starky 用户访问。且由于 no_root_squash 选项,通过 sudo 命令创建的文件其属主仍为 root(而不会再映射为 nobody)。
当然这会导致一些安全问题,比如多个客户端同时都有 UID(GID)为1000的用户(不管用户名是什么),则这些用户会共享服务端 /home/starky 目录里的文件权限。
可编辑 /etc/fstab 文件令挂载共享目录的 mount 操作成为系统的固定配置(手动输入的 mount 命令属于临时挂载,重启会自动卸载),使得系统重启后可以自动挂载远程文件系统。 /etc/fstab 文件的示例内容如下:
/etc/exports 文件的格式为: Directory Host(Options ...) Host(Options) #comment
其中的 Host 项用来指定可访问对应共享目录的主机,其格式可分为以下几种:
传输协议
最初的 NFSv2 由于性能原因使用 UDP 协议,虽然 NFS 添加了自己的 包序列重组 和 错误检查 功能,但 UDP 和 NFS 都不具备 阻塞控制 算法,所以在大型的互联网络环境中缺乏足够的性能。
NFSv3 提供了 UDP 和 TCP 协议之间的选择。NFSv4 只能使用 TCP 协议。
随着 CPU,内存等硬件设备和网络传输速度的提高,最初由于性能需求而倾向 UDP 协议的选择也变得不再必要。
State
NFSv2 和 NFSv3 是 无状态 的连接,服务端不会跟踪客户端对共享目录的挂载情况,而是使用 "cookie" 来记录一次成功的挂载。"cookie" 不会因为服务器重启而删除,可以用来在服务器挂掉之后保留客户端的连接信息。
NFSv4 是 有状态 的连接,客户端和服务端都会维护文件操作纪录及文件锁的状态。所以不再需要 "cookie" 的使用。
文件锁
早期版本的 NFS 协议(v2 &v3)由于是 无状态 的连接,它们并不清楚哪些主机正在使用哪些文件。但是文件锁的实现又需要获取状态信息。所以早期协议中的文件锁是独立于 NFS 实现的。
而 NFSv4 将文件锁的实现整合到了核心协议中,虽然此举增加了复杂度,但同时也解决了早期版本中的很多问题。
但是为了兼容使用 V2 和 V3 协议的客户端,独立的 locked 和 statd 守护进程仍旧需要。
安全相关
NFS 协议最初在设计时并不关注安全性,NFSv4 通过引入对更强大的安全服务和身份验证的支持,加强了该协议的安全性。
传统的 NFS 协议大多使用 AUTH_SYS 验证方式,基于 UNIX 的用户和组标识。在这种方式下,客户端只需要发送自己的 UID 和 GID 并与服务器上的 /etc/passwd 文件内容作对比,以决定其拥有怎样的权限。
所以当多个客户端存在 UID 相同的用户时,这些用户会拥有相同的文件权限。更进一步,拥有 root 权限的用户可以通过 su 命令切换到任意 UID 登录,服务器会因此给予其对应 UID 的权限。
为了防止上面的问题出现,服务器可选择使用更健壮的验证机制比如 Kerberos 结合 NFS PRCSEC_GSS。
NFS 共享目录的访问控制基于 /etc/exports 文件中定义的主机名或 IP 地址。但是客户端很容易针对其身份和 IP 地址造假,这也会导致一些安全问题。
NFSv4 只使用 TCP 作为自己的传输协议,而且通常只开放 2049 端口进行数据传输。在配置防火墙时,除了放开 2049 端口的限制外,还要时刻注意数据传输的源地址和目标地址。
win10 系统默认不能挂载 NFS 共享目录,需要进入 控制面板 - 程序 - 程序和功能 - 启用或关闭 Windows 功能 ,勾选上 NFS 服务 。
UNIX and Linux System Administration Handbook, 4th Edition
How to Mount an NFS Share Using a Windows 10 Machine
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)