samba配置

时间:23-03-19 网友
SAMBA文件共享服务简介:

SAMBA服务是跨平台的,即windows与linux之间实现文件共享。

\ 该符号为命令未输完,换行继续输入。

windows文件共享的基本概念和SAMBA服务器的功能

1、 windows文件共享

a) windows主机之间使用SMB/CIFS网络协议实现文件和打印资源的共享

实现windows主机之间共享的协议是:SMB(service message block)服务信息会;

该协议是微软开发的,微软早期在局域网中为实现文件共享,开发出来的;

微软为了将SMB推广为标准协议,后来又将SMB协议扩展,即SMB/CIFS;

b) windows无法与UNIX/LIUNX主机之间实现资源共享

TCP/IP协议最早在unix系统上实现的,早期微软并没有TCP/IP协议,后来才加上;

UNIX/LINUX操作系统之间,有自己的协议:NFS(network file system)实现共享;

为了实现windows与Linux之间的共享,Linux相关人员要求微软公开SAMBA协议的开发细节,但微软拒绝了。Linux人员就通过黑盒测试,研究SAMBA协议的原理,最后就开发出了SAMBA服务(它包含了SMB)。不合理的说,SAMBA服务就是SMB的linux的版本;

2、 SAMBA服务器

a) SAMBA服务器在unix系统中实现了SMB/CIFS协议

b) 通过SAMBA服务可以实现UNIX/LINUX主机与windows主机之间的资源互访

SAMBA服务器与SAMBA客户机的配置管理

1、 SAMBA服务器的基本原理

a) SAMBA服务器包括两个服务程序(两个进程)

i. SMBD:smbd服务程序为客户机提供了服务器中共享资源(目录和文件等)的访问

ii. NMBD:nmbd服务程序提供了NetBios主机名称的解析,为windows网络中域或者工作组内的主机进行主机名称的解析

2、 SAMBA服务器的安装

a) RHEL4中缺省安装了SAMBA相关的软件包

i. Samba-common软件包中提供了samba服务器和客户机中都必须使用的公共文件。

ii. Samba软件包中包括了samba服务器程序的所有文件

iii. Samba-client软件包中提供了samba客户机的所有文件

iv. System-config-samba软件包中提供了red hat公司专门为samba服务器管理编写的图形界面的管理程序,该程序是redhat系统管理工具中的一部分。

3、 SAMBA服务器的配置

a) Samba.conf配置文件

i. Samba服务器的主配置文件是smb.conf,保存在目录“/etc/samba/”中

ii. 文件中注释行使用“#”开始,是对配置内容的说明文字

iii. 样例行使用“;”开始,是对配置内容的举例

iv. 查看smb.conf有效配置的命令

# grep –v “^#” /etc/samba/smb.conf | grep –v “^;” -v 排除的意思

b) smb.conf中的全局配置【global】

workgroup 设置samba服务器所在的工作组的名称,默认设置MYGROUP

server string 设置Samba服务器的说明文字,用于描述samba主机,默认为samba服务器的名称

log file =/var/log/samba/%m.log %m表示客户端主机名

max log size = 50 表示日志的大小kb

security = user 设置samba服务器的缺省安全级别为”user”,表示需要经过samba服务器的用户认证才能够访问服务器中的资源

注意:security的安全级别

Share 表示用户不需要账户及密码即可登入samba服务器

User 表示由提供服务的samba服务器负责检查账户及密码,samba默认级别

Server 表示检查账户及密码的工作指定由另一台windows服务器或samba服务器负责

Domain 表示指定windows域控制服务器来验证用户的账户及密码

c) smb.conf中的[homes] 用户目录共享设置

i. [homes]共享目录不特指某个目录,而是表示samba用户的宿主目录

ii. 【homes】

Comment = Home Directories 注释说明

Browseable = no 表示用户A无法看到其他用户共享文件。Broweeable设置为no表示所有samba用户的宿主目录不能被看到,只有登录用户才能看到自己的宿主目录共享,加强samba服务器的安全性

Writable = yes 设置为yes,表示用户对该共享目录写入,设置用户对自己的宿主目录具有写权限是比较合理的

d) Samba用户帐号

是系统用户不一定能访问samba。如果是一个samba服务帐号的话,首先是系统用户,然后通过特定命令,把用户添加成samba用户。

i. Samba帐号管理

1. samba用户帐号使用独立的smbpasswd文件保存用户的帐号和加密口令信息

2. samba服务器中的用户帐号应该具有与其同名的linux系统用户帐号,因为samba用户是使用同名的系统帐号身份访问linux系统资源(文件和目录)的

3. samba用户的口令和同名系统用户的口令是独立的,可以相同或不同,需要分别进行维护和更改

4. 当samba用户不需要登录linux系统时,同名的系统用户帐号可不设置口令。

ii. Samba服务器的用户帐号

1. samba服务器的用户帐号文件保存在”/etc/samba/”目录中,文件名称是”smbpasswd”

2. 初始状态”smbpasswd”文件不存在,在第一次使用smbpasswd命令创建samba用户时将自动建立

3. “smbpasswd”文件中同时保存有用户帐号和用户密码,因此该文件只对root用户有读写权限。

iii. Smbpasswd命令

1. smbpasswd命令用于维护samba服务器的用户帐号

2. 添加samba用户帐号

#smbpasswd –a sambauser

3. 禁用samba用户帐号

#smbpasswd –d sambauser

4. 启用samba用户帐号

#smbpasswd –e sambauser

删除samba用户帐号
#smbpasswd –x sambauser

e) 共享目录配置实例

i. 公共共享目录配置要求

1. 在smb.conf中添加名为[public]共享目录

2. 公共共享目录的路径是”/home/public”

3. 任何samba的用户都可以访问公共目录并对目录具有读写权限

4. 任何用户在公共目录中都以linux中”nobody”系统用户的身份出现,即在公共目录中任何用户建立的文件都属于“nobody”系统用户。Nobody相当于windows中的guest。(此意,不管张三,李四,在公共目录中建立,修改文件,都会将身份映射为nobody用户的操作,而非具体的用户)

ii. 共享目录配置实例

1. 在smb.conf中添加的配置内容

[public]

Path = /home/public

Public = yes 表示共享目录对所有samba用户可见

Only guest = yes 所有用户都映射成nobody用户

Writable = yes 表示共享目录对用户可写.

iii. 配置文件语法检测服务启动

1. 测试smb.conf文件的内容

a) Testparm命令是配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示当前配置的清单。

f) 启动samba服务器

i. 启动samba服务器

1. 启动脚本文件:/etc/init.d/smb

2. 启动服务命令:service smb start

3. 查询服务状态:service smb status

4. 停止服务命令:service smb stop

5. 重启服务命令:service smb restart

4、 服务器端命令:

a) Smbstatus

i. Smbstatus命令用于显示当前主机中的samba服务器的连接状态信息

ii. 显示信息包括连接服务器的每个samba客户端IP地址,主机名称,登录用户名,锁定的文件等。

5、 SAMBA客户端安装使用

a) Smbclient命令,linux客户端命令

i. Smbclient是samba服务器的命令行方式的登录客户端,使用的形式类似于telnet,ftp命令

ii. 显示指定samba服务器中的共享资源列表

#smbclient –L 192.168.1.2(ip)

iii. 以指定用户身份登录到指定服务器的指定共享目录

Smbclient //192.168.1.2/sharefolder -U smbusername

//ip/sharefolder:表示服务器ip中的共享目录sharefolder

-U smbusername: 表示以samba用户的身份进行登录

实现windows主机和Linux主机共享文件互访

1、 实现windows主机访问SAMBA服务器

2、 实现linux主机访问windows共享文件

SAMBA WEB工具管理(swat)

1、 简介:

在服务器端安装,客户端可以远程管理SAMBA服务器。Swat管理工具以web界面的形式提供了对samba服务器的管理功能

2、 安装swat

a) Swat软件包位于REHL4系统的第4张安装光盘,系统默认没有安装,需要使用rpm命令手工进行安装

Rpm –ivh samba-swat-….

b) 设置swat的启动状态

Chkconfig swat on,非独立进程,有超级守护进程守护,要先启动自己,再重新启动超级守护进程

Service xinetd restart

c) Swat对客户端的访问控制

文件”/etc/xinetd.d/swat”中设置了允许访问swat服务的客户主机的IP地址,可以根据管理需要进行更改。

only_from = ip //只接受指定IP管理

d) Swat的访问地址

i. 在允许访问swat的客户机中使用网页浏览器登录swat

ii. Swat服务使用”901”号端口

http://192.168.1.2:901/

iii. 访问swat服务需要使用root用户帐号进行登录

3、 Swat自动完成的工作

a) Swat中的操作将修改smb.conf配置文件

i. 在swat界面中的进行的操作将自动保存在smb.conf配置文件中

ii. Swat中进行的操作会即时生效,不需要手工执行smb脚本重新启动服务程序。

SAMBA操作具体步骤

1、#rpm –qa | grep samba #查看所需软件包是否安装

2、#rpm –ql samba-client #查看软件包中包含的命令

3、#smbclient –L x #查看ip为x的主机上所有的共享文件夹

4、#smbclient //x/share -U username #访问ip为x主机的共享文件夹share,不支持空密码

5、#get filename #将文件名为filename的文件下载到当前目录。

6、#put filename #将文件名为filename的文件上传到到共享目录。

(显示了ftp功能,这不是我们想要的)

7、#quit #退出samba

8、#smbmount //ip/share /mnt -o username=administrator #share目录挂载到本地的/mnt下

9、#mount #检查挂载的情况

至此,可以使用linux命令来操作该挂载目录。

10、smbmount命令

A、smbmount命令用于将samba共享目录挂载到linux文件系统中

#smbmount //192.168.1.2/public /mnt

11、mount命令

A、使用”-t”命令选项指定文件系统类型为”smbfs”。

B、使用”-o”选项设置使用指定用户帐号

#mount –t smbfs –o username= administrator //192.168.1.2/public /mnt

和smbmount命令一样

C、卸载smb文件系统

#umount /mnt/

SMB具体安装配置步骤

1、 ifconfig 查看ip是否配置

2、 netconfig 配置IP地址

3、 ifconfig 查看配置是否成功

4、 ping IP 查看是否连通

5、 rpm –qa | grep smb 查看是否已安装smb安装包

6、 rpm –ql smb 查看包安装了哪些东西。

Rpm –ql | more 分页查看

Which smbpasswd 查看一个命令所在位置,rpm –qf 该位置,查看该命令是哪个软件包安装的

7、 useradd username 添加一个系统账户(smb账户必须为系统账户)

8、 smbpasswd –a username 添加一个smb账户

9、 mkdir /pub 建立一个共享目录

10、 vi /etc/samba/smb.conf 修改主配置文件

a) [global]

Workgroup = WORKGROUP(windows工作组)

b) Share Definitions中

[tmp]

[public]

Path = /pub

Write list = @zhangsan //仅张三组的成员可写

11、 Testparm 查看smb.conf格式是否正确

12、 Service smb start

13、 即可查看linux是否加入该workgroup组。Windows要求,所有加入组的成员,每 隔30分钟,发一个广播地址,做自我介绍。

权限不仅仅服务器允许,还要文件系统允许,才可以访问。

《samba配置》相关文档:

samba配置03-19

Top