【Linux学习笔记】之【文件共享服务器】

本文介绍了如何在Linux系统上配置和管理NFS服务,包括启动、配置共享目录和防火墙设置。同时,也详细讲解了Samba服务的安装、配置,以及创建部门共享目录、用户和组的步骤。此外,还涵盖了在Linux中挂载Windows共享文件的方法。通过这些步骤,可以实现跨平台的文件共享和访问控制。
摘要由CSDN通过智能技术生成

文件共享服务器

NFS


开启NFS

rpm -qa | grep nfs
# 首先要确认服务是否已经安装,可以利用rpm命令进行查询。

systemctl status nfs
# 查看NFS服务运行状态

systemctl start nfs
# 启动NFS服务

systemctl enable nfs
# 开机自启

配置NFS

配置文件路径:/etc/exports

配置文件格式:<输出目录> 客户端(选项)

参数值内容说明
rw/ro该目录共享的权限是可读写(read-write)或只读(read-only),但最终能不能读写,还是与文件系统的rwx及身份有关。
sync/asyncsync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘
no_root_squash/root_squash客户端使用NFS文件系统的账号若为root 时,系统该如何判断这个账号的身份?默认的情况下,客户端root的身份会由root_squash的设置压缩成nfsnobody,如此对服务器的系统会较有保障。但如果想要开放客户端使用root身份来操作服务器的文件系统,那么这里就需要开放no_root_squash才行
all_squash不论登录NFS的用户身份为何,他的他的身份都会被压缩成为匿名用户,通常也就是nobody(nfsnobody)
anonuid/anongidanon意指anonymous(匿名用户)前面关于*_squash 提到的匿名用户的 UID设置值,通常为nobodyinfsnobody),但是你可以自行设置这个UID的值。当然,这个UID必须要存在于/etc/passwd当中。anonuid指的是 UID而anongid则是组的GID

将共享文件挂载到本地目录

mount 192.168.10.1:/mnt/pub /mnt/pub
参数参数意义
suid/nosuid当挂载的 partition上面有任何 SUID的binary程序时,只要使用nosuid就能够取消SUID的功能。
rw/ro你可以指定该文件系统是只读(ro)或可读写的。服务器可以提供可读写,但是客户端可以仅允许只读的参数设置值
dev/nodev是否可以保留设备文件的特殊功能?一般来说只有/dev这个目录才会有特殊的设备,因此可以选择nodev
exec/noexec是否具有执行binary file 的权限?如果想要挂载的仅是数据分区(例如/home),那么可以选择noexec
nouser/user是否允许用户进行文件的挂载与卸载操作?如果要保护文件系统,最好不要允许用户进行挂载与卸载
auto/noauto这个auto指的是mount -a时,会不会被挂载到项目。如果不需要这个partition随时被挂载,可以设定为noauto

默认值都为前者。


防火墙与Selinux配置

firewall-cmd --add-service=nfs --zone=public
# 允许访问NFS服务       
setenforce 0
# 关闭selinux
# SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

Samba


安装并启动samba服务

yum install -y samba samba-client 

systemctl start smb.service nmb.service

修改防火墙设置

firewall-cmd --permanent --add-service=samba
# 设置防火墙 
firewall-cmd --reload
# 重新加载防火墙 
setenforce 0
# 关闭selinux安全机制

建立各部门专用共享目录

mkdir -p /companydata/public /companydata/sales /company/tech

添加用户和组

首先建立销售部组sales,技术部组tech,然后使用useradd命令添加总经理帐号zjl及各个员工的帐号并加入相应的用户组。

groupadd sales
groupadd tech
useradd zjl
useradd -g sales xsjl
useradd -g sales xsy1
useradd -g sales xsy2
useradd -g tech jsjl
useradd -g tech jsy1
useradd -g tech jsy2

接着使用smbpasswd命令添加samba用户。

smbpasswd -a zjl

New SMB password:
# 输入samba用户密码
Retype new SMB password:
# 确认samba用户密码
Added user zjl.
smbpasswd -a xsjl
smbpasswd -a xsy1
smbpasswd -a xsy2
smbpasswd -a jsjl

配置文件

vim /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        map to guest = Bad User
        # 允许匿名用户访问
[public]
        comment=public
        path=/company/public
        public=yes
[sales]
        comment=sales
        path=/company/sales
        guest ok = no
        writable = yes
        valid users = @sales,zjl
[tech]
        comment=tech
        path=/company/tech
        guest ok = no
        writable = yes
        valid users = @tech,zjl

文件权限

chown :sales /companydata/sales 
chown :tech /companydata/tech
setfacl -m u:zjl:r-x /companydata/sales
setfacl -m u:zjl:r-x /companydata/tech
# 销售部目录:/companydata/sales和技术部目录:/companydata/tech只允许本部门 用户写入数据,但不能删除其他用户的数据,不允其他部门访问,但总经理可以查看不能修改。

访问windows共享文件

  1. 在 Windows 系统中设置一个共享目录:d:\myfiles
  2. 在 Linux 下安装 samba-client 客户端
yum install samba-client
  1. 安装 cifs-utils 软件包
yum install cifs-utils 
  1. 在 Linux 下创建一个挂载点
mkdir /mnt/Windows 
  1. 挂载 Windows 上的共享目录 d:\myfiles 到 Linux 下的/mnt/Windows 目录下
mount -t cifs -o username=Administrator //192.168.0.3/mytest /mnt/Windows 
  1. 如果挂载成功,则可以进入/mnt/Windows 下进行相应操作。
  2. /etc/fstab 文件中,加入该共享目录的挂载信息
//192.168.1.123/redhat_disk /mnt/Windows cifs username=tommy,password=111111 0 0
  1. 到此为止,Windows 上的共享目录//192.168.1.123/redhat_disk 就被成功挂载到了 Linux上面了,并且 Linux 重启后,会自动挂载该目录到/mnt/Windows 目录下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值