Samba服务全攻略(配置实例详解)

发布时间:2019-07-14编辑:脚本学堂
本文介绍下,linux中的文件共享服务samba的安装与配置攻略,相当不错的一篇文章,有需要的朋友,参考下吧。

第一部分:Samba服务的控制选项(用户控制、访问控制)

1,用户控制
 

public = no 不允许匿名用户访问
browseable = yes 不隐藏目录(知道目录同样可以访问) (系统默认yes,可以不写)
valid users = 用户或列表或@用户组
writable = yes 可写(目录本身要可写)
writable list = 用户或列表或@用户组
readonly = yes 是否设置只读(系统默认yes,可以不写)
create mask = 0744 控制客户机创建文件的权限(系统默认0744)
directory mask = 0744 控制客户机创建目录的权限(系统默认0755)

2,访问控制
 

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服务,进行测试。