linux(raspberry) 安装配置 samba

来源:互联网 发布:mac综艺体字体下载 编辑:程序博客网 时间:2024/06/05 07:09

在网上查了很多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编辑器,不知道空格缩进怎么打出来,晕呼呼!另外有没讲清楚,或有错误的地方请提出来!
1 0