samba的简单配置
本文最后更新于 2339 天前,其中的信息可能已经有所发展或是发生改变。

一、什么是samba
Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到。
是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

二、安装配置samba

yum install -y samba samba-client

配置文件解说:

[global] 定义全局的配置

workgroup        ## 用来定义工作组.
security = user  ## 里指定samba的安全等级。关于安全等级有四种.
share            ## 用户不需要账户及密码即可登录samba服务器.
user             ## 由提供服务的samba服务器负责检查账户及密码(默认).
server           ## 检查账户及密码的工作由另一台windows或samba服务器负责.
domain           ## 指定windows域控制服务器来验证用户的账户及密码.
passdb backend = tdbsam   ## passdb backend(用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.

3、samba配置文件

smbpasswd

该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd/etc/samba中,有时需要手工创建该文件。

tdbsam

使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用 smbpasswd -a 创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户

pdbedit参数很多,列出几个主要的:

pdbedit -a username       ## 新建Samba账户。
pdbedit -x username       ## 删除Samba账户。
pdbedit -L                ## 列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv                      ## 列出Samba用户列表详细信息。
pdbedit -c "[D]" -u username     ## 暂停该Samba用户账号。
pdbedit -c "[]" -u username      ## 恢复该Samba用户账号。
ldapsam                          ## 基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 "passdb backend = ldapsam:ldap://LDAP Server"

load printerscups options 两个参数用来设置打印机相关

除了这些参数外,还有几个参数需要你了解:

netbios name = MYSERVER      ## 设置出现在网上邻居中的主机名
hosts allow = 127. 192.168.12. 192.168.13. 172.16.    ## 用来设置允许的主机,如果在前面加 ";" 则表示允许所有主机
log file = /var/log/samba/%m.log    ## 定义samba的日志,这里的%m是上面的netbios name
max log size = 50      ## 指定日志的最大容量,单位是K

[homes] 该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

[printers] 该部分内容设置打印机共享。

四、samba实践一

要求共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读

[global]部分 MYGROUP 改为WORKGROUP
security = user 改为 security = share

末尾处加入:
[share]             ## Name
comment = share all ## 描述
path = /tmp/samba ## 共享目录的路径
browseable = yes ## 是否可以浏览
public = yes ## 是否可以在网络邻居里发现
writable = no ## 是否可写

Terminal Command:

mkdir /tmp/samba ## 创建要共享的目录
chmod 777 /tmp/samba ## 改变权限
echo "111111" > /tmp/samba/sharefiles ## 随便写个文件测试一下
启动:/etc/init.d/smb start ## 启动samba服务
检查配置的smb.conf是否正确 testparm
测试:win机器浏览器输入 file://192.168.0.22/share
或者运行栏输入: \\192.168.0.22 ## 如果可以看见目录和文件说明OK

五、Samba实践二
共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写

[global] 部分内容如下:

[global]
workgroup = WORKGROUP ## 工作组
server string = Samba Server Version %v
security = user ## 认证方式,需要用户名和密码
passdb backend = tdbsam
load printers = yes
cups options = raw

还需加入:

[myshare]
comment = share for users
path = /samba
browseable = yes
writable = yes
public = no

创建目录

mkdir /samba

修改权限

chmod 777 /samba

创建系统账号

useradd user1
useradd user2

添加user1/user2samba账户

pdbedit -a user1
pdbedit -a user2

列出samba所有账号: pdbedit –L

重启服务

service smb restart

测试:

浏览器输入

file://192.168.0.22/myshare

安装客户端软件

yum install -y samba-client

命令格式:

smbclient //IP/共享名 -U 用户名

如:

smbclient //127.0.0.1/share 如果是匿名访问可以省略掉-U

mount挂载samba目录:

mount -t cifs //192.168.0.22/myshare /mnt -o username=user1,password=123456

出现错误解决方案:

错误1:

Connection to 192.168.1.5 failed (Error NT_STATUS_HOST_UNREACHABLE)

解决:

关闭iptables 防火墙 service iptables stop 或是selinux 不想关防火墙需要允许139端口和445端口

错误2:

tree connect failed: NT_STATUS_ACCESS_DENIED

解决:

因为认证方式是share,也就是不需要密码认证,但是你输入了密码,所以就出错了,所以结果是不需要输入密码直接按回车就可以了

错误3:

tree connect failed: NT_STATUS_BAD_NETWORK_NAME

解决:

因为分享的目录是A,因该这样连接:smbclient //192.168.1.5/A,结果输入的命令是这样:smbclient //192.168.1.5/b,所以BAD_NETWORK_NAME

mount -t cifs这种方式挂载出现错误,是因为缺少一个命令 mount.cifs

解决:

yum -y install cifs-utils

再连接时如果认证方式是share,输入的密码的步骤一样是按回车直接跳过

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇