cifs文件系统的存储

互联网的意图:共享
cifs文件的存储:sun和微软联合开发 使用windows和linux之间文件共享

文件系统的存储分离,提高数据交互的稳定性

1.Samba 文件共享

用 Internet 文件系统 (CIFS) 也称为服务器信是适用于MicrosoftWindows 服务器和客户端的标准文件和打印机共享系统息块 (SMB)。
Samba 服务可用于将 Linux 文件系统作为 CIFS/SMB 网络文件共享进行共享 ,并将 Linux 打印机作为 CIFS/SMB 打印机共享进行共享。

2.Samba 服务的组成部分

  • 软件包:

Samba-common ——>Samba 的支持文件
Samba-client ——>客户端应用程序
Samba ——>服务器应用程序

  • 服务名称:smb nmb
  • 服务端口 :通常使用 TCP/445 进行所有连接。还使用UDP137 、 UDP138 和 TCP/139 进行向后兼容
  • 主配置文件 :/etc/samba/smb.conf

3.保护 Smb

samba_enable_home_dirs
布尔值允许本地 Linux 主目录作为 CIFS 文件共享导出至其他系统
use_samba_home_dirs
布尔值允许挂载远程 CIFS 文件共享并将其用作本地 Linux 主目录
samba_share_t
smb 共享目录的 selinux 安全上下文
samba_export_all_ro 和 samba_export_all_rw
共享系统目录时要打开

4.Samba服务器的安装及访问调试:

yum install samba-common samba-client.x86_64 samba.x86_64 -y  ##安装软件
systemctl stop friewalld     ##默认受火墙影响
systemctl start smb   ##开启服务
setsebool -P samba_enable_home_dirs on   ##打开用户可以查看家目录的权限

smbpasswd -a student   ##建立用户:smb用户必须时本机存在的用户
pdbedit -L           ##查看smb用户列表
pdbedit -x student   ##删除用户

扫描二维码关注公众号,回复: 5841021 查看本文章

测试:

smbclient -L //172.25.254.118 -U student  ##访问共享目录

 

smbclient //172.25.254.118/student -U student  ##查看家目录


实验:

  • 建立用户:
    useradd hello -s /sbin/nologin    ##禁止用户交互式登录
    useradd westos -s /sbin/nologin -M   ##-M:建立用户时不建立家目录
    ls /home/
    smbpasswd -a westos
    smbpasswd -a hello
    pdbedit -L

     

  • 测试:

    smbclient //172.25.254.118/westos -U westos  ##不能访问家目录
    smbclient //172.25.254.118/hello -U hello   ##可以访问加目录

5.Smaba共享目录
1)共享自己建立的文件

vim /etc/samba/smb.conf

[westos]  ##共享名称(能看到的名字)
comment=/westos  ##共享说明(能看到的目录)
path =/westos    ##共享目录路径

systemctl restart smb

共享目录自建立目录时需要修改的selinux属性,此方法修改只针对修改目录
 

semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF /westos/

注意:selinux重启安全上下文会改变

测试:

smbclient -L //172.25.254.118/ -U hello ##查看有哪些共享目录

访问被拒绝:可能是安全上下文不一致

smbclient //172.25.254.118/westos -U hello  ##进入共享目录
ls         ##可以看到目录里的文件

2)共享系统级的文件
共享系统建立目录要修改的linux属性,此方式修改针对所有目录,一旦开放,selinux不保护目录访问

vim /etc/samba/smb.conf

[mnt]
comment=mnt dir
path=/mnt

systemctl restart smb

测试:

smbclient //172.25.254.118/mnt -U hello
ls     ##看不到共享目录里的内容

更改系统及安全上下文会有新的问题出现(这里不多作说明)
bool打开后会忽略安全上下文
共享自己的文件也可以用这个方法,但是权限过大不安全

getsebool -a | grep samba
setsebool -P samba_export_all_ro on  ##打开只读开关
setsebool -P samba_export_all_rw on   ##读写

测试:

smbclient //172.25.254.118/mnt -U hello
ls   ##可以看到共享目录里的内容

NT_STATUS_IO_TIMEOUT  

问题的原因:主机名解析失败
问题解决办法:修改本地解析:vim  /etc/hosts

6.访问控制
访问列表,拒绝列表

vim /etc/samba/smb.conf   

方法1:全局设定

方法2:局部设定

hosts allow =172.25.254.118  ##允许118挂载
systemctl restart smb

 

vim /etc/fstab
//172.25.254.118/westos /mnt  cifs  defaults,username=hello,password=111 0 0  ##设置自动挂载策略

测试:在118上

mount -a
df ##挂载成功


在60上:

mount //172.25.254.118/westos /mnt -o username=hello,password=111
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)       ##挂载失败

hosts deny =172.25.254.118  ##禁止118挂载

hosts deny =172.25.254.  ##禁止172.25.254.整个网段挂载

7.samba匿名访问

vim /etc/samba/smb.conf
systemctl restart smb

测试:在60主机上(测试主机需要安装samba-client)

mount //172.25.254.118/mnt  /mnt/ -o username=guest,passwd=""
df  ##查看,挂载成功

smbclient //172.25.254.118/mnt   ##不需要输入密码,按回车
ls   ##可以看到目录下的内容

8.管理参数

1)所有用户均可写:writable = yes 

测试:挂载后在mnt下建立文件看是否成功

systemctl restart smb
mount -a
df

cd /mnt/
touch file
ls

**建立不成功的原因:

1.共享文件的安全上下文是否为samba_share_t

2.共享文件是否有写权限

3.samba_export_all_rw 的bool值是否为on

2)指定用户可写:write list = username   

指定westos用户可写,+和@都表示用户组(westos组)成员可写

测试:用hello用户挂载后在mnt下建立文件失败

用wetos用户挂载后在mnt下建立文件成功

把hello用户添加到westos用户组下

用hello用户挂载后可在mnt下创建文件

3)指定用户可共享:valid users=+username

valid users=+westos   ##设置共享的有效用户为westos(谁可以挂载),包括组成员

测试:

student 用户不能挂载

westos用户挂载成功,hello属于westos用户组也挂载成功

4)浏览权限browseable =No/yes     ##浏览权限(不能查看系统共享文件)

设置browseable =No,登录后看不到westos共享文件

设置browseable =yes ,登录后可看到westos共享文件。

5)admin users =westos  ##设定的共享超级用户为westos(谁建立的文件的所有者所有组就是谁)
    


9.多用户挂载
谁挂载谁访问

用自己的身份不用挂载的身份
默认不能访问,认证后能访问
使用的不是文件里的用户身份

开启其他用户的认证,认证方式
在客户端:
 

yum install cifs-utils -y
vim /root/smbpass

chmod 600 /root/smbpass
mount -o credentials=/root/smbpass,multiuse,sec=ntlmssp //172.25.254.118/westos /mnt/
mount

#credentials=/root/haha    指定挂载时所用到的用户文件
#multiuser        支持多用户认证
#sec=ntlmssp        认证方式为标准smb认证方式

删除/mnt下的内容

cd /mnt/
ls
rm -fr *
ls

查看用户信息

touch /mnt/file
su - kiosk
ll  /mnt   ##因为没有作smb的认证所以无法访问smb共享

cifscreds add -u westos 172.25.254.118

猜你喜欢

转载自blog.csdn.net/weixin_44214830/article/details/88256641