Linux的samba文件服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的samba文件服务相关的知识,希望对你有一定的参考价值。

一.samba提供cifs协议实现共享文件

1.SMB文件共享,通用Internal文件系统(CIFS)也称为服务器信息块(SMB),是适用于Microsoft Windows服务器和客户端的标准文件和打印机共享系统。

2.Samba服务器可用于将Linux文件系统作为CIFS / SMB网络文件共享进行共享,并将linux打印机作为CIFS / SMB打印机共享进行共享


二.安装环境

技术分享

技术分享

技术分享


Samba-common - Samba的支持文件

Samba-client - 客户端应用程序

Samba - 服务器应用程序


yum install samba samba-common samba-client -y

systemctl start smb 
systemctl enable smb 

三.添加smb用户

1.smb用户必须时本地用户
smbpasswd -a student
New SMB password:                    输入smb当前用户密码
Retype new SMB password:      确认密码

pdbedit -L                                      查看smb用户信息
pdbedit -x smb用户                      删除smb用户


技术分享



2.以student登陆无法显示共享内容,主要是Selinux的开启无法正常访问

技术分享


在SElinux开启情况下,修改的sebool值,打开访问家目录权限,打开后可以访问

setsebool -P enable_samba_home_dirs  on     在selinux中设定smb用户可以访问自己的家目录


技术分享



四.共享目录的基本设定


1.基本设置

编辑配置文件vim /etc/samba/smb.conf

workgroup = westos  工作组名称


[westos]  共享名称

comment =  对共享目录的描述
path = 共享目录的绝对路径

技术分享


技术分享

smbclient -L //172.25.254.128 -U student                可看到所创建的共享目录

技术分享


2.当共享目录为用户自建立目录时,需要修改新建目录的上下文
semanage fcontext -a -t samba_share_t ‘目录名称(/.*)?‘
restorecon -RvvF 目录名称


技术分享

技术分享



3.当共享目录为系统建立目录,为了不影响修改上下文对别的服务影响,修改SElinux的sebool值
setsebool  -P samba_export_all_ro on     只读共享
setsebool  -P samba_export_all_rw on     读写共享


系统目录文CONFIG    /mnt

技术分享

没有修改,无法看见文件

技术分享


修改samba的读取权限后可以正常读取文件

技术分享


开启只读共享后:smbclient //172.25.254.128/CONFIG -U student

技术分享


五.samba的配置参数

1.匿名用户访问
guest ok = yes
map to guest = bad user    客户访问匿名

技术分享

技术分享

技术分享


2.访问控制

hosts deny =      仅拒绝

拒绝128登陆

技术分享

技术分享


hosts allow =     仅允许

hosts allow =172.25.254.28,允许28登陆

技术分享


valid users =                      当前共享的有效用户
valid users = student        当前共享的有效用户为student 

未添加共享的有效用户student ,无法访问

技术分享


编辑配置文件vim /etc/samba/smb.conf,添加共享有效用户后可以访问

技术分享

技术分享



valid users = @student    当前共享的有效用户为student组
valid users = +student      当前共享的有效用户为student 组

新建用户lee,属于student组,属于有效访问组的用户

技术分享

技术分享

编辑配置文件vim /etc/samba/smb.conf为+student后,lee用户可以访问

技术分享

技术分享


3.读写控制
所有用户均可写
chmod o+w /mnt
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes

mount -o username=student,password=123 //172.25.254.128/CONFIG /mnt/              在客户端上以student身份将172.25.254.128/CONFIG挂载到/mnt上

技术分享


技术分享


技术分享













设定指定用户可写
write list = student        #可写用户
write list = +student        #可写用户组
write list = @student
admin users = westos        #共享的超级用户指定




6.smb多用户挂载
在client上
vim /root/haha
username=student
password=lee

chmod 600 /root/haha

yum install cifs-utils -y

mount -o credentials=/root/haha,multiuser,sec=ntlmssp //172.25.254.100/haha /mnt/

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


su - kiosk
ls /mnt
ls: cannot access /mnt: Permission denied    #因为没有作smb的认证所以无法访问smb共享
cifscreds add -u westos 172.25.254.100
Password:    ##smb用户westos的密码
ls /mnt


























以上是关于Linux的samba文件服务的主要内容,如果未能解决你的问题,请参考以下文章

Linux实用工具-samba

Linux的samba文件服务

samba服务 nginx服务

Samba部署共享服务

samba文件共享服务笔记

samba文件共享服务笔记