samba是著名的开源软件项目,在linux/unix系统中实现了SMB/CIFS网络协议的跨平台的文件共享系统
1.samba服务的组成
samba-3.0.33-3.28.el5.i386.rpm
samba-client-3.0.33-3.28.el5.i386.rpm
上面两个分别用于提供服务器和客户端程序文件
samba-common-3.0.33-3.28.el5.i386.rpm 软件包提供了服务器和客户端都需要使用的公共文件
samba-swat-3.0.33-3.28.el5.i386.rpm 软件包是一个web方式的管理工具
system-config-samba-1.2.41-5.el5.noarch.rpm 用于提供图形界面管理程序(需要在X图形环境中使用)
2.samba服务器主要提供这两个服务程序
》smbd:为客户机提供服务器中共享资源的访问
》nmbd:提供基于NetBIOS主机名称的解析,为Windows网络中的主机进行名称解析
通过"/etc/init.d/smb"脚本可以控制 samba服务的启动和中指,无需单独运行smbd或nmvbd
samba服务的配置文件位于"/etc/samba/"目录,主配置文件为smb.conf。在该文件中,注释行一“#”开始,配置样例行一“;”开始。当我们可以用grep过滤掉smb.conf配置文件中的注释、样例及空白行
[root@router ~]# grep -v "^#" /etc/samba/smb.conf |grep -v "^;" |grep -v "^$"
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
# logs split per machine
# max 50KB per log file, then rotate
security = user
passdb backend = tdbsam
# the login script name depends on the machine name
# the login script name depends on the unix user used
# disables profiles support by specifing an empty path
load printers = yes
cups options = raw
#obtain list of printers automatically on SystemV
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
3.smb.conf配置文件默认包括以下三部分内容
》[global]全局设置:配置项里的内容对整个samba服务器生效
》[homes]用户目录共享设置:设置对应samba用户宿主目录的默认共享,即当用户访问服务器中与用户名同名的共享文件夹时,默认会映射到自己的宿主目录,
》[printers]打印机配置
4.smb.conf文件配置项及含义说明
workgroup设置服务器所在工作组名称。
serverstring设置服务器的说明文字,用于描述samba服务器。
security设置服务器的安全级别,一共四种值:
share(可匿名访问)
user(需由本服务器验证用户名及密码)
server(有另一台服务器验证用户名及密码)
domain(有windows域控制器验证用户名及密码)
logfile设置samba服务器的日志文件,默认设置为“/var/log/samba/%m.log”,表示日志文件保存到“/var/log/samba/”目录中,按每个客户机建立一个日志文件,“%m”变量表示客户端主机名或IP地址。
maxlogsize设置日志文件的最大容量,默认为50,表示50KB(默认单位为KB)。
comment设置对应共享目录的注释,说明信息。
path设置对应共享目录在服务器中的文件夹路径。
browseable设置该共享目录在“网上邻居”中是否可见,设置为no时相当于隐藏共享目录。
guestok设置是否所有人都可以访问共享目录,与public配置项作用相同。
writable设置该共享目录是否可写,与readonly的作用相同。
5.samba提供了一个配置文件检查工具:testparm程序,使用testparm 工具可以对smb.conf配置文件的正确性进行检查,如果发现错误将会进行提醒,
6.建立可匿名访问的文件共享
1>建立共享目录
[root@router ~]# mkdir -p /var/public/work
2>配置主配置文件(将其备份并将其筛选出)
[root@router samba]# mv smb.conf smb.conf.bak
[root@router samba]# grep -v "^#" /etc/samba/smb.conf.bak |grep -v "^;" |grep -v "^$" > smb.conf
[root@router samba]# vim smb.conf
[root@router samba]# cat smb.conf
[global]
workgroup = WORKGROUP
security = share
[work]
comment = All Printers
path = /var/public/work
browseable = yes
writable = yes
public = yes
3>配置完毕即可执行“service smb start”命令启动smb
[root@router ~]# service smb start
[root@router ~]# netstat -anptu | grep mbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 32477/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 32477/smbd
udp 0 0 192.168.1.101:137 0.0.0.0:* 32480/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 32480/nmbd
udp 0 0 192.168.1.101:138 0.0.0.0:* 32480/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 32480/nmbd
到此即可访问共享目录
7.建立带验证的文件共享
Samba 服务器在使用过程中, 经常涉及三类用户: Windows用户、UNIX/Linux 用户、Samba 用户。
Samba 用户是Windows用户与UNIX/Linux 用户的共同包含的部分, 但要注意这样几点:
①只有Samba 用户才可以合法使用Samba 服务器。
②Samba用户必须首先是UNIX/Linux 用户, 反之不一定成立。
③ 将UNIX /Linux 用户转换为Samba 用户时, 名称可以改变。
④Samba 用户可以不是Windows 用户。
1>建立samba用户
[root@router ~]# useradd cane
[root@router ~]# smbpasswd -a cane
New SMB password:
Retype new SMB password:
Added user cane.
[root@router ~]# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
samba用户存放在此文件中
[root@router ~]# cat /etc/samba/smbpasswd
cane:500:F73CA4862113B785AAD3B435B51404EE:4AF411D2B648DAC8F495340AA7C13DC3:[U ]:LCT-50B5FFA3:
root:0:D480EA9533C500D4AAD3B435B51404EE:329153F560EB329C0E1DEEA55E88A1E9:[U ]:LCT-50B5FFB6:
smbpasswd 命令的多个选项,结合使用进行管理维护
》-h:显示smbpasswd命令的帮助信息
》-a:添加指定的用户账号
》-d:禁用指定的用户账号
》-e:启用指定的用户账号
》-x:删除指定的用户账号
》不适用任何选项时用于修改samba用户的密码
Samba服务器有用户名称映射的功能,配置文件位于“/etc/samba/smbusers”,映射是指可以设置多个不同的用户名对应为一个samba账户,起到隐藏对应系统账户的效果,减少密码穷举攻击的风险
[root@router ~]# cat /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
cane = zhangsan lisi
在主配置文件smb.conf中要加上以下行
[root@router ~]# vim /etc/samba/smb.conf
username map = /etc/samba/smbusers //在[global]全局配置中指定名称映射文件
这样就可以用zhangsan 和 lisi访问文件系统了,只告诉cane的密码,由于不知道cane这个账户,所以不能登录系统,比较安全
2>添加用户授权设置
在smb.conf中,共享目录的用户授权设置主要由“valid users”、“write list”配置项指定,同时要取消公开访问的设置
需要授权多个用户是用空格或逗号分隔,注意不能用账户别名,而只用实际的samba用户名,授权组是可以用“@组名”的形式,组内的每个用户都需要有对应的samba账户
若需要设置samba用户在共享目录中建立的子目录、文件的默认权限,可以用“directory mask”、“create mask”。
[root@router ~]# cat /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = user
[homes]
comment = Home Directories
browseable = no
writable = yes
[work]
comment = All Printers
path = /var/public/work
browseable = yes
writable = yes
public = no
readonly = no
valid users = cane,@root
write list = root
directory mask = 0744
create mask = 0600
重启samba服务即可
[root@router ~]# service smb restaart
linux下访问
[root@router ~]# smbclient -L IP
[root@router ~]# smbclient -U cane //IP/work
将共享目录挂载到linux下
[root@router ~]# mkdir -p /media/smbdir
[root@router ~]# mount -o username=cane //IP/work /media/smbdir
012、Linux下Samba服务配置
原创
©著作权归作者所有:来自51CTO博客作者632840815的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux下的samba服务配置详解
Linux下的samba服务配置详解
客户端 Linux samba centos 文件共享