您的位置:首页 > 其它

用Samba创建配置共享文件夹 (无用户名密码验证)

2016-01-21 16:51 549 查看
什么是Samba?

https://www.samba.org/samba/what_is_samba.html

以下摘选网络上对Samba的几个权威描述

samba.org的描述: Samba是一套开源/免费的软件包,它给SMB/CIFS客户端提供了无缝的文件和打印服务。

SMB = Server Message Block

CIFS = Common Internet File System

和其他SMB/CIFS实现不同,Samba是免费的,它实现了Linux/Unix服务器和Windows客户端之间的互通性。

另一个描述:

Samba是一种软件,它可以运行在非Windows平台上,比如UNIX, Linux, IBM System 390, OpenVMS或其他操作系统。Samba使用安装在主机上的TCP/IP协议。当正确配置完成后,Samba可以使主机与Windows客户端或服务器交互,这台主机就好像变成了Windows的文件和打印服务器。

在The
Official Samba HOWTO又有一个描述:

Samba项目背后的目的之一就是为实现互操作性(Interoperability)扫除障碍。

总结: Samba是一个软件包,它提供给网络管理员在安装,配置,选择系统和设备上的灵活性和自由度。由于这些特性,Samba自1992年发布以来,受欢迎程度逐年增加,从未停止。

使用Samba在Linux上配置一个共享文件夹供Windows使用(无用户密码认证)

以下内容描述配置在Linux上用Samba配置一
4000
个可读写有完全权限的文件夹,不需要用户密码认证。

1. 安装Samba

Linux默认安装可能已经装上samba客户端(samba-client-xxx),如果samba server没有安装,先安装

yum install samba

2. Samba配置文件

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

系统已有smb.conf,先备份。原始smb.conf中内容很全,有详细注释,解释了所有可配置的参数。值得研究。

新建smb.conf,写入以下内容。

[global]
workgroup = WORKGROUP
netbios name = [hostname]
server string = [your comment]
security = share

[Public]
comment = [your comment]
path = /home/Share
browseable = yes
writable = yes
public = yes
guest ok = yes


这个是最简单的配置,指定了/home/Share文件夹作为本机的共享文件夹。[Public]中Public名字可任意指定,Windows访问时看到的文件夹名字就是Public

security = share 安全等级,share没有用户名和密码保护,Windows用户直接打开路径就可以访问Samba服务器

其他参数browseable, writable, public, guest ok不确定默认值是否都是yes,都写上。writeable设置为可写。(Notes: Windows支持写此共享文件夹还需要额外一步,下面会提到)

security=share在新版中已经被废弃了

把security = share

改为

security = user

map to guest = Bad User

3. 配置完成,设置文件夹权限,启动Samba服务

/home/Share设置权限,可读写的完全权限

chmod 777 /home/Share


启动Samba服务(重启)

service smb restart


测试配置文件smb.conf是否正确

testparm


如果正确,在Windows上,浏览器或文件管理器中输入\\IP(or hostname)就可以看到此文件夹

4. 在Windows中写共享文件夹

以上设置完成,在Windows中可以顺利看到和浏览共享文件夹。但是尝试写入文件时失败,权限不足。需要让Windows对此文件夹有完全的权限,还需要额外一步。

在smb.conf中可以找到以下描述。

# If you create a new directory you want to share you should mark it as
# "samba_share_t" so that selinux will let you write into it.
# Make sure not to do that on system directories as they may already have
# been marked with othe SELinux labels.
#
#---------------
# SELINUX NOTES:
....
# Use ls -ldZ /path to see which context a directory has
#
# Set labels only on directories you created!
# To set a label use the following: chcon -t samba_share_t


SELinux不允许修改此文件夹,需要标记为samba_share_t。

SELinux指Security-Enhanced Linux,是Linux的一个内核安全模块,提供了一套机制,支持访问控制和安全策略,其中包括美国国防部风格的强制访问控制(Mandatory Access Control - MAC)。在目前可用的Linux安全模块中,SELinux是功能最全,测试最充分的。

最后一步,对/home/Share运行如下命令

chcon - change file SELinux security context

chcon -t samba_share_t /home/Samba


再在Windows中尝试写入文件到共享目录,成功!

任务完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: