samba 配置

1. SAMBA主要的进程
smbd:管理文件共享与打印机的共享
nmbd:管理群组的NetBIOS Name解析
用到137,138,139三个口

2. 安装所需文件
samba-document:相关默认配置文件
samba-common:smb.conf与testparm
samba-client:挂载samba文件格式所需要的指令,如smbmount等

3. 软件的结构
/etc/samba/smb.conf:配置文件
/etc/samba/lmhosts:NetBios Name与主机IP的对应,一般不用管
/etc/samba/smbpasswd:存放smb用户密码,佣有者为root,权限600
/etc/samba/smbusers:建立windows与unix管理员与访客账号不一致时的对应关系,需要由smb.conf里的username map设置开启
testparm:此命令用于给smb.conf 做语法检查
smbd,nmbd:主要的进程
smbstatus:列出smb服务器的状态
smbpasswd:建立smb服务器的密码文件的命令
smbclient:查看其它计算机的共享
smbmount:挂载smb共享出来的目录
nmblookup:类似于nslookup,但重点在于netbios name
smbtree:类似于网上邻居,能查到工作组与计算机名称的树状目录分布图。
/usr/share/doc/samba-<版本>:包含了samba的技术手册

4. 设置的主要步骤
(1)在smb.conf中设置,工作且,netbios主机名,密码使用状态等
(2)在smb.conf内设置好要分享出来的目录,装置以及可供使用的用户数据
(3)根据(2)设置,linux文件系统中建立好共享文件或装置的使用权限
(4)根据(2)设置通过smbpasswd建立用户的账号及密码
(5)启动smbd与nmbd

smb.conf的配置
[global]
workgroup:工作组名
netbios name:netbios名
server string:主要的说明,不重要

dispay charset:服务器上的显示编码,一般与unix charset相同
unix charset:一般在/etc/sysconfig/il8n中
dos charset:windows的编码,繁体中文一般为big5,叫cp950

log file:日志的位置
max log size:日志文件的大小,若超过通过rotate进行删除

security:包括的选项
user:使用samba自身的密码数据库
share:不用密码
Server与domain:使用外部主机的密码,还要有password Server=IP

encrypt passwords:yes代表密码要加密,

smb passwd file:密码放置的文件,通常是/etc/samba/smbpasswd

[分享名称]
comment:目录说明
path:实际文件系统的路径
read only:设置是否只读
public:是否让所有可以登陆的用户看到这个项目
writable:设置是否可以写入,与read only谁最后出现,谁为准
create mode与directory mode:与权限有关
valid users:指定能句时入到此资源的特定用户

%S:登陆者
%m:client的netbios主机名
%M:client的host name
%L:代表samba主机的netbios名
%H:代表用户的默认目录
%U:代表目前登陆的用户名称
%g:代表登陆的用户的群组名称
%h:代表目前这台samba主机的hostname
%I:代表client的IP
%T:代表目前的日期与时间。

例(没有密码的smb.conf)
1. 设置/etc/samba/lmhosts (可选)
192.168.1.250 test1
2. /etc/samba/smb.conf
[global]
#主机名相关
workgroup=workgroup
netbios name=test1
server string=hehe

#语言相关
unix charset=utf8
display charset=utf8
dos charset=cp950

#日志
log file=/var/log/samba/%m.log
max log size=50

#密码相关
security=share

#其他
socket options=TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy=no
template shell=/bin/false
winbind use default domain=no

然后用testparm检查一下正确性
testparm -v

启动:/etc/init.d/smb start
udp 137 138
tcp 139 445
smb ports=445 139

观察:smbclient -L [//主机][-U 账号]

==========================================
附加:(建立一个有密码保护的共享)
在上面例子的基础上
1. 将security = share 改为 user
2. encrypt passwords = yes
3. smb passwd file = /etc/samba/smbpasswd #(加强记忆,可不写)
4. valid users = %S 或 用户 或 @组名 #(%S,为每个用户自己的目录,可进入的用户,@为可进入的用户组)
5. create mode = 0644 与 directory mode = 0775 # (可选,加入umask)
6. 加入密码
用户必须是/etc/passwd里有的,但密码是存在/etc/samba/smbpasswd中
加入密码 smbpasswd 命令
-a 新增一个账号
-d 禁用一个账号
-e 解禁一个账号
-m 该username为机器代码,与domain model 有关

smbpasswd -a 用户名
然后输入两次密码,就好了

testparm -v 测试一下

如没错,就重启一下smb的进程
/etc/init.d/smb restart
OK了,进入共享试试

+++++++++++++++++++++++++++++++++++++++++++
iptables的设置

-A INPUT -p tcp -m multiport –dports 137,138,139,445 -j ACCEPT
-A INPUT -p udp -m multiport –dports 137,138,139,445 -j ACCEPT

出现过的错误
1. symbol lookup error: smbd: undefined symbol: _talloc_get_type_abort
解决:yum update libtalloc

出现的最二的错误
当samba升级到3.4.2-0.42,会报端口被占用,无法正常使用,所以不要从3.3.2升级到3.4.X不然都不知道自己是怎么死的

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注