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