Linux基本知识点总结——Samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

以下通过两个基础实验来学习samba,实验平台为CentOS 6.2,环境为:

Samba服务器

主机名:luffy IP地址:192.168.56.53

客户端测试机

主机名:zoro IP地址:192.168.56.54 

实验一 

假设公司有一台samba服务器,提供了一个共享名为/share的共享目录,现在要求只允许192.168.56.0网段的用户可以使用自己的samba帐户登录此目录,并可读写,但不允许动别人的资料。 

一、准备工作 

1.创建用户user1、user2,并在根目录下创建共享文件夹share及其共享文件,其中share的文件夹属性为777。

创建结果如下:

[root@luffy ~]# cat /etc/passwd

……省略部分内容……

user1:x:502:502::/home/user1:/bin/bash

user2:x:503:503::/home/user2:/bin/bash

[root@ luffy ~]# ls -l /share

total 8

-rw-r--r--. 1 root root 4 May 24 06:41 a

-rw-r--r--. 1 root root 4 May 24 06:41 b

[root@ luffy ~]# ls -ld /share

drwxrwxrwx. 2 root root 4096 May 24 06:41 /share

 

2.安装samba软件

[root@luffy ~]# yum install samba*

Samba*涉及到的组件是samba,samba-common,samba-client

其中samba必需安装,后面两个在装系统时其实已默认安装(因此其他linux客户端可以直接使用smbclient命令访问samba的共享文件夹)。

 

3.添加samba用户

Samba中添加的用户,必须是samba服务器所在系统中预先创建的,但该用户登录samba时使用的密码,需由samba创建并保存。

使用到的命令是smbpasswd,参数-a表示添加用户,-x表示删除用户,-d表示禁用用户。

下面将user1和user2加入到samba中,

[root@ luffy ~]# smbpasswd -a user1

New SMB password:

Retype new SMB password:

Added user user1.

[root@ luffy ~]# smbpasswd -a user2

New SMB password:

Retype new SMB password:

Added user user2.

 

二、配置共享

 

在服务器SELinux开启(Enforcing状态)的情况下,进行以下实验。

 

1.在samba主配文件/etc/samba/smb.conf末尾添加以下内容:

1
2
3
4
5
6
[share]
comment = sharefile #描述信息
path = /share #指定共享文件夹的路径
hosts allow = 192.168.56. #允许访问该目录的网段
browseable=yes #可浏览
writable = yes #可写

 

注,hosts allow字段如果不写,则表示所有可访问该服务器的客户端都可访问该共享目录。在本实验和许多实际环境中,都是内网共享,只有同网段的内网用户才可访问,“hosts allow=本网段”其实不需要写。

 

另外,主配文件第100行附近,

1
2
3
security = user
#smb passwd file = /etc/samba/smbpasswd
passdb backend = tdbsam

表示,当前(默认)使用的是user认证方式,即客户端需要有samba中记录的用户及其密码才能登录,如果是security = share,则表示采用匿名登录方式。

 

配置修改完成后,重启samba服务,

[root@luffy ~]# service smb restart

 

客户端访问时,报错:

[root@zoro ~]# smbclient //192.168.56.53/share -U user1

Enter user1's password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]

smb: \> ls

NT_STATUS_ACCESS_DENIED listing \*

 

40317 blocks of size 262144. 31467 blocks available

smb: \> quit

没有访问权限,是由于请求被selinux拦截了。

(注:如果是出现NT_STATUS_BAD_NETWORK_NAME的报错,大概是因为主配文件中定义共享文件块时,中括号里的名字出错,访问路径//192.168.56.53/share中的share不是指根目录中的share文件夹,而是主配文件中自定义的[share]中括包内的share。)

相关推荐