Samba是用于Linux和Unix的标准Windows互操作性程序套件。
自1992年以来,Samba为使用SMB/CIFS协议的所有客户端提供了安全、稳定和快速的文件和打印服务,例如所有版本的DOS和Windows、OS/2、Linux和许多其他版本。
Samba是将Linux/Unix服务器和桌面无缝集成到Active Directory环境中的重要组件。它既可以作为域控制器,也可以作为常规域成员。
Samba是一个软件包,它在系统和设备的设置、配置和选择方面为网络管理员提供了灵活性和自由度。由于它提供的所有功能,Samba越来越受欢迎,并且自1992年发行以来一直如此。
简单点就是一个实用的文件共享管理平台。下面我们来说下怎么使用。
1.检查系统中是否安装了samba软件。
[root@az2-foton-dev-ftp-01 /]# rpm -qa | grep samba samba-client-libs-4.8.3-4.el7.x86_64 samba-libs-4.8.3-4.el7.x86_64 samba-common-4.8.3-4.el7.noarch samba-common-libs-4.8.3-4.el7.x86_64 samba-common-tools-4.8.3-4.el7.x86_64 samba-4.8.3-4.el7.x86_64 [root@az2-foton-dev-ftp-01 /]#
因为我的已经安装好了,如果你没有安装那么可以直接通过你熟悉的方式进行安装。例如(Centos,RedHat)
[root@az2-foton-dev-ftp-01 /]# yum install -y samba
ubuntu等其他的系统请使用对应的安装命令(apt-get),直接安装即可。如果你没有网络,那就去下载rpm包进行安装。
需要的包,包括{
samba-client-libs-4.8.3-4.el7.x86_64
samba-4.8.3-4.el7.x86_64
samba-common-4.8.3-4.el7.noarch
}
2.安装好了之后启动服务并加入开机自启动。
[root@az2-foton-dev-ftp-01 /]# systemctl status smb #查看samba运行状态,(centos 7 or redhat 7 以下系统使用 service smb status) [root@az2-foton-dev-ftp-01 /]# systemctl start smb #启动samba服务 [root@az2-foton-dev-ftp-01 /]# systemctl enable smb #加入开机自启动。
3.修改配置文件。配置共享路径。
a.首先创建一个共享路径,例如
[root@az2-foton-dev-ftp-01 /]# mkdir /test [root@az2-foton-dev-ftp-01 /]# chown -R test:test /test #如果你有很多人需要使用你可以新建一个组 把成员放在组里面。这样就都有权限了,很多人配置成功后没有权限写入也是没有设置文件的权限导致的。
b.修改配置文件
[root@az2-foton-dev-ftp-01 /]# vim /etc/samba/smb.conf # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. [global] workgroup = SAMBA_WORK security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775 ###test内容为自行添加 [test] comment = test path = /test public = no writeable = yes browseable = yes write list = test valid users = test test2
c.参数解释
samba服务的配置文件
由上述的设定流程,可以看出samba服务的配置文件为服务搭建起到了导向的作用,那么我就先来了解以下samba的基础配置。
- smb.conf继承了.ini文件的格式,用[ ]分成了不同的部分
- 全局设置:[global] 服务器通用或全局设置的部分
- 特定共享设置:[homes] 用户的家目录共享;[printers] 定义打印机资源和服务;[sharename] 自定义的共享目录配置。
- 宏定义:
符号 | 释义 | 符号 | 释义 |
---|---|---|---|
%m | 客户端主机的NetBIOS名 | %M | 客户端主机的FQDN |
%H | 当前用户家目录路径 | %U | 当前用户的用户名 |
%g | 当前用户所属组 | %h | samba服务器的主机名 |
%L | samba服务器的NetBIOS名 | %I | 客户端主机的IP |
%T | 当前的日期和时间 | %S | 可登录的用户名 |
samba服务器全局配置
- workgroup 指定工作组名称
- server string 主机注释信息
- netbios name 指定NetBIOS名
- interfaces 指定服务侦听接口和ip
- hosts allow 可用“,”,空格,或tab分隔,默认允许所有主机访问,也可在每个共享独立配置。
- hosts deny 拒绝指定主机访问
- config file = /etc/samba/conf.d/%U 用户独立的配置文件
- Log level = 2 日志级别,默认为0,不记录日志
- max log size = 50 日志文件达到50k,将轮循rotate,单位KB
- passdb backend = tdbsam 密码数据库格式
“samba服务共享目录配置”
- 每个共享目录应该有独立的[ ]部分
- [共享名称] 远程网络看到的共享名称
- comment 注释信息
- path 所共享的目录路径
- public 能否被公共访问的共享,默认为no,和匿名共享类似
- browsable 是否允许所有用户浏览此共享,默认为yes,no为隐藏
- writeable = yes 可以被所有用户读写,默认为no
- read only = no 和 writeable = yes 等价,如与以上设置发生冲突,放在后面的设置生效,默认只读
- write list 三种形式:用户,@组名(如writeable=no,列表中用户或组可读写,不在列表中用户只读)
- valid users 特定用户才能访问该共享,如为空,将允许所有用户访问,用户名之间用空格分隔
d.配置完成保存退出,新建samba用户,用来访问共享文件。
[root@az2-foton-dev-ftp-01 /]# useradd test [root@az2-foton-dev-ftp-01 /]# smbpasswd -a test New SMB password: Retype new SMB password: Added user test. [root@az2-foton-dev-ftp-01 /]#
e.配置完成后重启服务。
[root@az2-foton-dev-ftp-01 /]# systemctl restart smb
4.打开windows的文件管理器win+e 在地址栏输入\\你的IP地址,按回车(Enter),输入你刚新建的用户名密码登录,
还可以浏览器登录
到此,samba文件共享就配置完成了,想要做到权限的控制只需要给用户分组并利用
- write list 三种形式:用户,@组名(如writeable=no,列表中用户或组可读写,不在列表中用户只读)
- valid users 特定用户才能访问该共享,如为空,将允许所有用户访问,用户名之间用空格分隔
这两个参数就可以了。