Linux使用Samba共享文件

创建samba服务器

(1)创建smb.conf文件
(2)在smb.conf文件中加入文件共享小节
(3)在smb.conf文件中加入打印机共享小节
(4)启动samba守护进程nmpd和smbd

配置samba服务器

核心配置文件是smb.conf,通常位于etc文件夹下,也可能在lib目录中,如 /usr/local/samba/lib
smb.conf分为不同小节,每个小节名称用方括号包围,如 [global]。[global]节包含了整个服务器共有的配置,这些配置主要关于网络配置和访问控制的。[global]示例:

[global] 
# server name
netbios name = name 
# server description 
server string = My server via Samba
# workgroup 
workgroup = MYNETWORK

参数含义:

  • netbios name:服务器名称,如果没填,将会使用UNIX主机名称。
  • server string:服务器简介,默认为samba版本号
  • workgroup:SMB工作组

服务器访问控制

在smb.conf文件中添加选项来控制访问服务器的用户和机器。下面是一些可以在[global]节和访问控制节中配置的选项:

  • interfaces:让Samba监听某个网络或端口。例如
interfaces = 10.23.2.0/255.255.255.0 
interfaces = eth0
  • bind interfaces only :使用interfaces时,设置此项为yes,使Samba只对指定的端口服务。
  • valid users:只允许指定的用户访问Samba。
  • guest ok:设置为yes时共享对匿名用户可见。
  • guest only:只允许匿名用户访问。
  • browseable:设置共享内容是否对浏览器可见,设置为no时必须指定具体名字才能访问共享内容。

密码

访问Samba服务器要有密码验证,但是由于UNIX密码系统和windows密码系统不一样,必须要建立一套独立的密码系统,否则只能使用明文的网络密码(不安全)或者windows服务器。下面介绍使用samba的 Trival Database 来建立一套密码系统。它适合于小型网络。
在smb.conf的[global]小节中添加下列条目

security = user passdb 
backend = tdbsam 
obey pam restrictions = yes 
smb passwd file = /etc/samba/passwd_smb

这几行代码能让你通过smbpasswd来操作Samba密码数据库。
** obey pam restrictions** 参数保证了用户通过smbpasswd 修改密码时需要遵照PAM的规则。你也可以passdb backend后指定TDB文件的路径,如tdbsam:/etc/samba/private/passwd.tdb
注意:如果使用windows域,可以使用security = domain让Samba使用域的用户名,这要求两端的用户名一致。

添加用户

为了让windows用户能访问Samba服务器,需要吧windows用户添加到服务器中,使用下列命令:

smbpasswd -a username
删除用户:
smbpasswd -x username
使用户暂时失效
smbpasswd -d username
激活用户
smbpasswd -e username
修改密码

超级用户可以不加选项和关键字就修改任意用户的密码:

smbpasswd username

如果Samba服务正在运行,任何用户都可以在命令行修改自己的密码。
注意:在smb.conf文件中如果存在一行选项

unix passwd sync = yes

这会使Samba在更改smbpasswd时同时改掉linux登录密码。

启动服务器

如果不是使用发行版自带的samba包安装,可能需要手动启动samba服务器,使用下列命令启动:

nmbd -D -s smb.conf路径
smbd -D -s smb.conf路径

nmbd守护进程是一个NetBIOS名字服务器,而smbd才是真正处理共享请求的进程。-D选项用 于指定它们以守护进程模式运行。如果在smbd运行期间修改了smb.conf文件,可以用HUP信 号通知守护进程重读配置,或用发行版的服务重启命令(例如systemctl或initctl)来做到。

诊断和日志文件

运行时的日志文件通常在/var/log/samba/目录下。

配置文件共享

要和一个samba用户共享一个目录,需要在smb.conf文件中添加一个小节:

#共享的名称
[label]
path = path #共享的文件路径
comment = share description #
guest ok = no #是否允许匿名用户
writable = yes #是否可写
printable = no #是否可读
browserable = no #是否允许浏览器查看
veto files = /pattern/
#匹配此模式的文件不参与共享,每个模式用/包围。

共享home目录

在smb.conf文件中添加homes小节:

[homes]
comment = home directories 
browseable = no 
writable = yes

默认地,Samba会读取登录用户的/etc/passwd条目来获知他们的home目录。然而,如果不想用默认的做法(即让Windows的home目录与Linux的不同),可以在path参数处使用%S。 例如,下例就可以将一个用户的[homes]目录切换成/u/user:

path = /u/%S

Samba会将%S替换成当前的用户名。

共享打印机

通过在smb.conf中加入[printers]小节可以共享打印机,下面是使用标准UNIX打印系统CUPS的配置:

[printers] 
comment = Printers 
browseable = yes 
printing = CUPS 
path = cups 
printable = yes 
writable = no

要使用printing = CUPS参数,Samba必须配置和连接了CUPS库。如果需要,还可以配置guest ok =yes来允许用户访问自己的打印机,而不是直接派发账号密码,因为使用防火墙控制打印机访问更方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安布奇

喜欢的朋友给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值