您的位置:首页 > 运维架构 > Linux

linux(raspberry) 安装配置 samba

2015-11-13 10:58 399 查看
在网上查了很多sanmba配置的文章,发现要么是错的,要么就是讲的不全,经过1天的摸索,现总结如下。

本文范围:

在raspberry上安装samba , windows上访问

只配置两个例子

一个是匿名访问,windows端不用输入用户名密码即可访问raspberry上的共享资源。

另一个是需要用户名密码才能访问。

1.安装

sudo apt-get install samba

配置文件在:/etc/samba/smb.conf

执行文件在:/usr/sbin/smbd

这样安装默认是开机自启动的

2.配置

samba的所有配置项都在/etc/samba/smb.conf这个文件中进行设置

“#”和“;”用来做行注释

另外可以通过testparm测试该配置文件的配置内容

默认的配置文件中主要有三个部分:

[global]

[homes]

[printers]

其中[global]定义全局变量配置,主要有安全等级、传输加密、log文件位置、认证方式等

后面两个都是共享项目,分别是当前用户的“家”目录,和打印机共享

具体每个配置项对应的意义参考:Samba配置文件常用参数详解

将之前的配置文件备份,重新建立smb.conf文件

下面开始配置匿名访问例子

匿名用户

用户名缺省为:nobody

用户组缺省为:nogroup

[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 3
security = share
#encrypt passwords = true
[share]
path = /home
browseable = yes
writable = yes
public = yes
create mask = 0777
directory mask = 0777


解释:

[global]

security = share

说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。

1. share 任何用户访问共享资源不用用户名和密码验证

2. user 只能由预先被授权的用户才能访问

3. 略

4. 略

encrypt passwords = true

说明:是否将认证密码加密,在security=share情况下,该项可以不用配置,不过配置文件默认是开启该项的。

[share]

share

说明:这个字符串就是在windows上看到的文件夹名。

path = /home

说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。

browseable = yes

说明:用来指定该共享是否可以浏览,缺省为yes,所以要设置为no的时候要写上。

用白话文来说就是,当你在windows上 \192.168.1.100 的时候,当设置为no ,那么什么都没有。

当设置为yes,或者缺省的时候,就能看到share这个目录了。

但是通过 \192.168.1.100\share 依然能过访问到

writable = yes

说明:指定该共享目录是否可写,缺省为no。目录不可写,意思就是不能新建、删除文件。

public = yes

说明:public用来指定该共享是否允许guest账户访问。

注意这一项必须设置,当security=share时。如果缺省这一项,那么windows上访问的时候就需要输入用户名和密码,这个时候你输入毛线都不管用的。

另外该项与guest ok = yes/no 等同效果

create mask = 0777

directory mask = 0777

说明:这两项用来设置新创建文件和文件夹的权限

面开始配置需要用户名密码例子

[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 3
security = user
encrypt passwords = true
passdb backend = smbpasswd
[share]
path = /home
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777


解释:

passdb backend = smbpasswd

说明:用户后台管理模式,其实就是管理认证信息的模式,目前有三种管理模式:smbpasswd、tdbsam和ldapsam我们在这里只了解smbpasswd模式,应该是最简单理解的一种模式。

1. smbpasswd,该方式是使用smb自己的工具smbpasswd来给系统用户设置一个Samba密码,客户端就用这个密码来访问Samba的资源。
当这样设置以后,就需要在/etc/samba下运行sudo smbpasswd -a user_name 这个命令将系统用户加入samba。

例如我的raspberry常用的用户是pi ,那么上面user_name替换为pi,那么windows端通过pi用户名和pi的密码就可以访问share资源,访问的身份就是pi

运行这个命令以后会产生/etc/samba/smbpasswd文件,并且其权限是600,其实这里面就保存的samba可访问用户的用户名和密码信息。

2. 略

3. 略

其他的配置项前面都有讲过,这里省略……

PS.
第一次使用markdown编辑器,不知道空格缩进怎么打出来,晕呼呼!
另外有没讲清楚,或有错误的地方请提出来!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  samba