一、基本概念:
CIFS是实现文件共享服务的一种文件系统,主要用于实现windows系统中的文件共享,linux系统中用的比较少linux系统中利用CIFS文件系统实现文件共享,需要安装samba服务。它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
CIFS 可以使您达到以下功能:
1.访问服务器本地文件并读写这些文件
2.与其它用户一起共享一些文件块
3.在断线时自动恢复与网络的连接
4.使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。
windowns中
二、安装samba服务
yum install samba-common samba samba-client -y
firewall-cmd --permanent --add-service=samba
firewall-cmd --permanent --add-service=samba-client ##火墙允许服务运行
firewall-cmd --reload ##重新读取火墙
systemctl start smb ##开启samba
systemctl enable smb ##开机启动
smbclient -L /172.25.254.208 ##匿名登陆samba
安装完成!
三、samba用户管理
smbpasswd -a kris ##添加samba用户,用户必须是本地存在用户
smbpasswd -a hello ##用户不存在则不能添加
显示失败
pdbedit -L ##列出samba用户
kris添加成功。
添加:
smbpasswd -a student ##用户必须存在
pdbedit -L ##查看用户
删除:
smbpasswd -x student
pdbedit -L
四、samba访问控制
cd /home/kris/
touch file{1..10}
smbclient //172.25.254.208/kris -U kris ##查看/kris中家目录的内容
无法查看
打开权限
getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on ##打开权限,关闭samba用户访问目录限制
smbclient //172.25.254.208/kris -U kris ##查看/kris中家目录的内容
可以显示文件证明成功
samba非本机访问控制
samba主配置文件:/etc/samba/smb.conf
白名单:
vim /etc/samba/smb.conf
96 hosts allow =172.25.254.8 ##只允许8访问
systemctl restart smb.service
测试:
在8主机上进行挂载:
mount //172.25.254.208/student /mnt/ -o username=student,passwd=student
黑名单:
vim /etc/samba/smb.conf
96 hosts deny =172.25.254.8 ##只拒绝8访问
systemctl restart smb.service
测试:
[root@foundation8 ~]# mount //172.25.254.208/student /mnt/ -o
五、域名显示
smbclient -L //172.25.254.208 #查看原域名是MYGROUP
vim /etc/samba/smb.conf
89 workgroup = KRIS
systemctl restart smb
smbclient -L //172.25.254.208
Enter root’s password:
Anonymous login successful
Domain=[KRIS] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[KRIS] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
Domain发生改变。
六、samba文件共享
mkdir /kris ##创建共享目录
touch /kris/file{1..10} ##新建文件
vim /etc/samba/smb.conf
[share] ##共享目录名称
comment = share kris dir ##目录说明
path = /kris ##共享目录地址(指定共享目录)
systemctl restart smb
semanage fcontext -a -t samba_etc_t '/kris(/.*)?' ##修改安全上下文
restorecon -RvvF /kris/
测试:
smbclient //172.25.254.208/share -U kris 有文件在共享成功!
系统目录共享
vim /etc/samba/smb.conf
getsebool -a | grep samba
setsebool -P samba_export_all_ro on ##打开只读开关
systemctl restart smb.service
smbclient //172.25.254.208/HAHAHAHA -U kris
可以显示
使共享文件可以读写:
vim /etc/samba/smb.conf
mount //172.25.254.208/share /mnt/ -o username=kris,password=123 ##将分享目录以kris身份挂载到/mnt上
chmod 777 /kris ##改变权限
其他设置(在配置文件中)
write list = kris ##只有kris可写
write list = +kris write list = @kris ##属于kris组的用户可写
browseable = no ##隐藏但可用
vaild users = kris ##有效用户
admin users = kris ##用户kris作为该目录的超级用户
guest ok = yes ##匿名用户可登陆
guest是指windows的匿名用户 linux的匿名用户是anonmours 所以在配置文件前要对guest进行声明。 map to guest = bad user