您的位置:首页 > 运维架构 > Linux

012、Linux下Samba服务配置

2013-04-06 12:42 302 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: