免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1672 | 回复: 1
打印 上一主题 下一主题

Samba服务器攻略 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-03 10:07 |只看该作者 |倒序浏览

第一部分:Samba服务的控制选项
用户控制
public = no 不允许匿名用户访问
browseable = yes 不隐藏目录(知道目录同样可以访问) (系统默认yes,可以不写)
valid users = 用户或列表或@用户组
writable = yes 可写(目录本身要可写)
writable list = 用户或列表或@用户组
readonly = yes 是否设置只读(系统默认yes,可以不写)
create mask = 0744 控制客户机创建文件的权限(系统默认0744)
directory mask = 0744 控制客户机创建目录的权限(系统默认0755)
访问控制
max connections = 最大连接数目
deadtime = 断掉连接时间(分钟)0为不限制
注:在全局里增加
hosts deny = .sale.com .net free 表示禁止.sale.com域和.net域及主机名为free的客户端访问
hosts deny = All 表示所有客户端,并不是说允许主机名为ALL的客户端可以访问。常用的通配符还有“*”,“?”,“LOCAL”等
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78 表示允许192.168.0.0网段IP地址访问,但是192.168.0.100和192.168.0.78除外
注:在可在全局与局部里增加
注::允许优先

第二部分:几个关键字段
根据需要增加在全局里面。虽然简单,但功能不简单,大家在用到的时候慢慢来体会。
include = /etc/samba/%G.smb.conf     调用用户组相关的配置文件
include = /etc/samba/%U.smb.conf     调用用户相关的配置文件
username map = /etc/samba/smbusers   调用映射用户账号的配置文件

第三部分:和Samba有关的一些命令
批量增加SMB用户(很多人想要的东东)
# for user in 用户列表
>do
>useradd -g group -s shell $user
>smbpasswd -a $user
>done
编辑SMB的用户账号相关命令
smbpasswd
smbpasswd -a 增加一个账号
smbpasswd -d 禁用一个账号
smbpasswd -e 启用一个账号
smbpasswd -x 删除一个账号
smbpasswd 更改用户密码
pdbedit
pdbedit -L 列出SMB中的账号
pdbedit -a 增加一个账号
pdbedit -x 删除一个账号
注:上面两个命令,大家根据需要选择

Linux客户端的访问工具
smbtree 显示局域网中的所有共享主机和目录列表
smbtree -D 只显示局域网中的工作组或域名。后面可以加上-U username%passwd ,则表示是相关用户的访问权限
nmblookup 某个主机的netbios主机名或工作组。       #  显示相应的IP
smbclient命令格式
       smbclient  -L  //主机名或IP地址 -U 登录用户名   #  列出目标主机共享资源列表
       smbclient    //主机名或IP地址/共享目录名 -U 登录用户名  #  使用共享资源
mount命令格式
mount  //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名  # 挂载共享
umount 挂载点  # 卸载共享
smbtar  -s server –u user –p passwd –x shareneam –t output.tar  # 把远程的内容备份到本地
tar tvf *.tar  # 查看TAR文件包里面的的内容

第四部分:实例详解
【实例1】员工可以在公司内流动办公,无论在任何一台机器上工作,都能把自己的文件放到服务器里,同时不能使用服务器上的SHELL。(注解:SMB中有关于用户家目录的默共享设置,我们只要设置USER级别,然后再增加用户和指定不可用的SHELL)
smb.conf配置文件更改的内容如下
security = user
[homes]
       comment = Home Directories
       browseable = no

       writable = yes
       valid users = %S

配置好后,就重新启动SMB服务
# useradd user -s /dev/null
# smbpasswd -a user

增加好用户和密码后,就可以直接测试了!这个不用重新启动SMB服务了哦!

  
【实例2】建立共享目录student,它的本机路径为“/home/student”,只有teachers组的用户可以读写该目录,students用户组只能读取。(注解:这个关键是不同组对同一个目录的权限设置,student这个目录属于students用户组,并设置他的OTHER 权限为7,我们通过这个OTHER权限来实现teachers组对student目录的访问,通过SMB的配置文件来限制用户访问)
# mkdir /home/student
# groupadd students
# groupadd teachers
# useradd -g students user
# useradd -g teachers user
# smbpasswd -a user
# chgrp students /home/student
# chmod 757 /home/student
# chmod g+s /home/student

smb.conf配置文件更改的内容如下
security = user
[student]
       path = /home/student
       comment = student
      
write list = @teachers
       valid users = @teachers @students

重新启动SMB服务,进行测试。

【实例3】公司有二个部门( sales  market ),销售部和市场部有自己单独的共享目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。(注解:这一个内容与第二个类似,只是用户组变成用户,多了一个用户组,只需要把文件夹所有者给总经理,所属组为用户组就OK)

# mkdir /home/sales
# mkdir /home/market
# groupadd sales
# groupadd market
# useradd -g sales user
# useradd -g market user
# smbpasswd -a user
# chgrp sales /home/sales
# chgrp market /home/market
# chown ceo /home/sales
# chown ceo /home/market
# chmod 770 /home/sales
# chmod 770 /home/market
# chmod g+s /home/sales
# chmod g+s /home/market

smb.conf配置文件更改的内容如下
security = user
[sales]
       path = /home/sales
       comment = sales
       write list = @sales ceo
       valid users = @sales ceo

       create mask = 0770
       directory mask = 0770
[market]
       path = /home/market
       comment = market
       write list = @market ceo
       valid users = @market ceo

       create mask = 0770
       directory mask = 0770
重新启动SMB服务,进行测试。

【实例4】实现在登陆的时候只能看到自己的共享目录,没有权限访问的看不到。
(注解:其实实现这个主要靠加载独立的配置文件来实现,只要把独立的文件设置好相应的权限就OK,SMB主配置文件中加入独立的配置文件,其他不用设置)
关于用户的增加我这里就不写出来了,和上面的没有区别。(略过)

首先把源始的smb.conf  COPY 出来,后面加上相应的用户或者组,如:smb.conf.user   smb.conf.group
然后配置各己的配置文件

如:smb.conf.ceo
    [sales]
        comment = sales
        path = /home/sales
        writeable = yes
        valid users = ceo
        create mask = 0770
        directory mask = 0770

    [markets]
        comment = markets
        path = /home/markets
        writeable = yes
        valid users = ceo
        create mask = 0770
        directory mask = 0770

如:smb.conf.sales
    [sales]
        comment = sales
        path = /home/sales
        writeable = yes
        valid users = @sales
        create mask = 0770
        directory mask = 0770

如:smb.conf.markets
        [markets]
        comment = markets
        path = /home/markets
        writeable = yes
        valid users = @markets
        create mask = 0770
        directory mask = 0770


主配置文件如下:
security = user
        include = /etc/samba/smb.conf.%G
        include = /etc/samba/smb.conf.%U

其他的不用设置,重新启动SMB服务,然后测试!祝大家好远!!!


第五部分:Samba服务搭建的注意事项
1、防火墙和SELinux
2、主机名
3、建立Samba用户
4、用户的权限
5、目录的权限
6、其他事项

第六部分:Samba服务排错
(1)错误信息
(2)配置文件
(3)日志文件
testparm                       #查看配置文件
testparm /etc/samba/smb.conf 主机名 IP   #测试具体机器能否访问及访问的范围
netstat –tlunp | grep service  #显示服务的对应端


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/107231/showart_2109972.html

论坛徽章:
0
2 [报告]
发表于 2013-07-22 15:00 |只看该作者
想问一下,如果启动不了,提示smbd dead but pid file exists,应该怎么解决呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP