linux之磁盘共享(cifs)

磁盘共享


一 概念:

     CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。

    CIFS 可以使您达到以下功能:

             1)访问服务器本地文件并读写这些文件
             2)与其它用户一起共享一些文件块
             3)在断线时自动恢复 与网络的连接
             4)使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。

二 安装与使用

cifs(普通文件系统共享)   samba协议,不能自动挂卸载

nfs (网络文件系统共享) nfs协议,可以自动挂卸载

服务端:

yum install samba-common.x86_64  samba.x86_64  samba-client -y   ---安装服务


systemctl start smb

smbclient -L //172.25.254.153            ---匿名登陆


smbpasswd -a student        --- 设置smb用户密码

smbclient -L //172.25.254.153/student -U student   ---student用户登陆


getsebool -a | grep samba  ---查看bool


setsebool -P samba_enable_home_dirs on          ---关闭samba用户访问目录限制


测试:

smbclient  //172.25.254.153/student -U student


客户端:

yum install  samba-client -y
mount -o username=student,password=studnet //172.25.254.239/student /mnt/  ---挂载


vim /etc/samba/smb.conf

89 workgroup = xxx     ---改组名


93 hosts allow = 172.25.254.139   ---白名单
94 hosts deny = 172.25.254.139   ---黑名单


321 [DATA]                    ---共享文件夹名
comment = xxxx data
path = /xxx

systemctl restart smb
mkdir /xxx
touch /xxx/file
semanage fcontext -a -t samba_share_t '/xxx(/.*)?'
restorecon -FvvR /xxx/

测试:



vim /etc/samba/smb.conf

125 map to guest =bad user   ---指定匿名用户身份


324 guest ok = yes           ---允许匿名用户登陆



systemctl restart smb

smbclient //172.25.254.153/DATA


mount //172.25.254.239/DATA /mnt/ -o username=student


vim /etc/samba/smb.conf
writable=yes    ---可写
write list = student/@student     ---studnet用户可写/@student student用户组可写
admin users= admin              ---设定管理员用户身份

systemctl restart smb

测试前需要作如下设定给与/westos文件相关权限
usermod -G student westos
setfacl -m u:studnet:rwx /haha

setfacl -m g:student:rwx /haha


useradd admin

smbpasswd -a westos

usermod -G student westos


然后分别以不同用户身份挂载,对磁盘进行写操作,两者对比




browseable  = yes     ----共享是否可见
valid users =student    ---仅student用户可以使用共享服务


在客户端设置如下:没设置之前只要root 用户挂载,切换身份之后其他用户也是可见的,设置后,其他用户不可见
yum install cifs-utils -y

配置/root/smbfile文件


mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.239/DATA /mnt

---multiuser多用户模式,sec=ntlmssp认证方式 credentials=/root/smbfile 用smbfile文件下的用户身份登陆

su -kiosk
cifscreds add -u student 172.25.254.239  ---切换用户后,用此命令,该用户即可以smb用户身份登陆


### 如何在Linux操作系统上挂载网络共享磁盘 #### 准备工作 为了能够顺利地挂载来自其他系统的共享磁盘,在Linux环境中通常需要安装并配置Samba客户端工具来支持CIFS/SMB协议。这允许Linux机器连接到基于Windows的文件和服务资源。 #### 安装必要的软件包 对于大多数现代Linux发行版来说,可能已经预装了`cifs-utils`这个包,如果没有的话,则可以通过包管理器进行安装: ```bash sudo apt-get install cifs-utils # 对于Debian/Ubuntu系统 # 或者 sudo yum install cifs-utils # 对于RedHat/CentOS/Fedora系统 ``` #### 创建挂载点 选择一个合适的路径作为本地挂载点,并创建该目录。例如,可以在根目录下的`/mnt`中建立一个新的子目录用于此目的: ```bash sudo mkdir -p /mnt/win ``` 这里选择了`/mnt/win`作为例子[^3]。 #### 编辑/etc/fstab文件实现持久化挂载 为了让每次开机都能自动完成这项操作而不是每次都手动输入命令来进行临时性的挂载,编辑`/etc/fstab`文件是一个不错的选择。打开终端并使用文本编辑器修改它(比如nano): ```bash sudo nano /etc/fstab ``` 向其中添加一行如下所示的内容(假设远程主机名为server, 共享名称为share): ```text //server/share /mnt/win cifs username=your_username,password=your_password,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 ``` 注意这里的用户名和密码应当替换为你实际拥有的访问权限凭证。出于安全考虑,建议采用更安全的方式存储这些敏感信息而非直接写入上述字符串内[^1]。 #### 使用mount命令即时测试挂载效果 如果不希望立即更改fstab设置或者只是想要快速验证是否能成功连接,可以直接运行带有相应选项的`mount`指令来做一次性尝试: ```bash sudo mount -o username=your_username,password=your_password //server/share /mnt/win ``` 同样记得替换成真实的参数值。 #### 验证挂载状态 最后一步就是确认新加入的设备已经被正确识别并且处于可用状态。可以利用`df -hT`查看当前所有的已挂载分区列表及其类型,也可以简单进入指定位置浏览其内容以直观判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值