一、samba简介
sabma是一个跨平台共享文件及打印机等资源的共享服务,它是由SMB协议实现的,工作于C/S模型,通过NetBIOS协议可以实现Windows与Linux平台共享资源。
CIFS是CommonInternet File System即Internet文件系统是在Windows主机之间进行网络文件共享的一个服务,监听在137/udp,138/udp,139/tcp,445/tcp,其中137、138是NetBIOS在Windows中基于主机实现互相通信的机制。
二、在Linux使用Windows共享的文件
1、在Windows系统中创建一个或几个共享的用户
此次实验使用的是Windows 7的系统,创建用户的方法右击“计算机”---管理------本地用户和组----用户,在用户列表的空白区域右击选择新用户。根据需要创建用户即,这里创建一个linux的用户,密码同用户名。
2、选择在Windows中共享的目录
在确认要共享的目录之后,右击目录选择属性,在属性对话框中选择共享选项,选择共享按钮即可共享此目录,在文件共享对话框中选择要共享的用户,在用户列表下拉表中选择刚才创建的linux用户,在权限级别中选择“读取/写入”权限,点击共享。也可以选择高级共享对共享的权限等操作。
3、在Linux中查看Windows的共享
格式:smbclient -L HOST -U USERNAME
指定主机IP和用户名
[root@stu09 ~]# smbclient -L 172.16.9.7 -Ulinux Enter linux's password: Domain=[ZHENGHONG-PC] OS=[Windows 7Ultimate 7600] Server=[Windows 7 Ultimate 6.1] Sharename Type Comment --------- ---- ------- ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 E$ Disk 默认共享 F$ Disk 默认共享 G$ Disk 默认共享 H$ Disk 默认共享 I$ Disk 默认共享 IPC$ IPC 远程 IPC J$ Disk 默认共享 K$ Disk 默认共享 test Disk #即为我们刚才共享的目录 Users Disk session request to 172.16.9.7 failed(Called name not present) session request to 172 failed (Called namenot present) session request to *SMBSERVER failed(Called name not present) NetBIOS over TCP disabled -- no workgroupavailable
4、smbclient命令交互式
可以使用smbclinet交互式的登录指定要共享的目录中进行操作,删除、创建、上传等,不过要根据用户的权限来进行的。
[root@stu09 ~]# smbclient //172.16.9.7/test-U linux Enter linux's password: Domain=[ZHENGHONG-PC] OS=[Windows 7Ultimate 7600] Server=[Windows 7 Ultimate 6.1] smb: \> ls . D 0 Fri May 15 22:04:53 2015 .. D 0 Fri May 15 22:04:53 2015 46084blocks of size 1048576. 41421 blocks available smb: \> lcd /etc #切换本地的目录至/etc smb: \> put fstab #上传fstab文件 putting file fstab as \fstab (147.3 kb/s)(average 147.3 kb/s) smb: \> put issue putting file issue as \issue (33.5 kb/s)(average 109.4 kb/s) smb: \> ls #查看文件 . D 0 Fri May 15 22:05:17 2015 .. D 0 Fri May 15 22:05:17 2015 fstab A 905 Fri May 15 22:05:11 2015 issue A 103 Fri May 15 22:05:17 2015 46084blocks of size 1048576. 41421 blocks available
注意:可以输入help来获取smbclinet交互式的帮助信息
5、在Linux挂载Windows共享的目录
格式:mount-t cifs //SERVER/shared_name/mount_point -o username=USERNAME,password=PASSWORD
[root@stu09 ~]# mount -t cifs//172.16.9.7/test /mnt -o username=linux,password=123456 [root@stu09 ~]# mount|tail -1 //172.16.9.7/test on /mnt type cifs (rw)
三、在Windows中使用Linux共享的文件
1、安装samba程序
安装samba直接使用yum安装即可
yum -yinstall samba
安装完之后生成的服务脚本文件/etc/rc.d/init.d/nmb和/etc/rc.d/init.d/smb文件,主配置文件为/etc/samba/smb.conf文件,samba使用的是账号为Linux的系统用户,密码是samba服务自己的密码文件,使用smbpasswd命令为账号生成密码。
2、smb的配置文件
配置文件分成全局设定和某特定共享的设备,其中特定的共享设备可以是私有家目录,打印机共享,自定义共享。
3、共享/shared/test目录
(1)创建/shared/test目录
[root@stu09 ~]# mkdir -p /shard/test
(2)创建共享认证的用户名及设置密码
[root@stu09 ~]# useradd smbtest [root@stu09 ~]# smbpasswd -a smbtest New SMB password: Retype new SMB password: Added user smbtest.
(3)更改共享目录的权限
在访问共享目录的权限是由samba的权限加系统的权限的交集所决定的。
[root@stu09 ~]# setfacl -m u:smbtest:rwx/shared/test [root@stu09 ~]# getfacl /shared/test getfacl: Removing leading '/' from absolutepath names # file: shared/test # owner: root # group: root user::rwx user:smbtest:rwx group::r-x mask::rwx other::r-x
(4)配置smb.conf配置文件
通用自定义的选项来实现:
选项格式说明:
[shared_name]
path = /path/to/share_directory #共享目录
commnet = Commnet String #备注信息
guest ok = {yes|no} #是否允许来宾用户访问
public = {yes|no} #是否公开
writable = {yes|no} #是否可写
read only = {yes|no} #是否可读
write list = +staff #可写用户列表,“+”表示组名
更改[global]为workgroup =WORKGROUP,然后在文件尾部添加如下内容
[shared] comment = My shard testing path = /shared/test guest ok = yes writable = yes
(5)启动samba服务
(1)配置文件语法检查
在启动服务之前可以使用testparm命令进行配置文件语法检测
[root@stu09 ~]# testparm Load smb config files from/etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) tominimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[shared]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your servicedefinitions #需要按下回车才能出现以下内容 [global] serverstring = Samba Server Version %v logfile = /var/log/samba/log.%m maxlog size = 50 idmapconfig * : backend = tdb cupsoptions = raw [homes] comment= Home Directories readonly = No browseable= No [printers] comment= All Printers path= /var/spool/samba printable= Yes printok = Yes browseable= No [shared] comment= My shard testing path= /shared/test readonly = No guestok = Yes
(2)启用samba服务
[root@stu09 ~]# service nmb start;servicesmb start Starting NMB services: [ OK ] Starting SMB services: [ OK ]
(6)在Windows访问共享目录
在Windows的资源管理器中的地址栏输入服务器的地址,格式 如下:
\\SERVER_IP\
后会出现登录提示对话框,输入用户名和密码即可登录查看共享的目录。就可以进行文件的创建、删除等操作。
四、samba的图形界面
samba的图形界面需要安装samba-swat程序,图形化samba是Web页面界面,它是瞬时守护进程,由超级守护进程xintetd代为管理。在图形界面中可以对samba的配置文件进行管理操作,图形界面是通过网页的形式,此图形界面功能强大。
(1)安装samba-swat程序
yum install samba-swat -y
(2)配置/etc/xinetd.d/swat文件
根据需要进行修改
service swat { port = 901 socket_type = stream wait = no only_from = 172.16.0.0/16 #只允许172.16.0.0/16的网络访问 user = root server = /usr/sbin/swat log_on_failure += USERID disable = no #开启服务 }
(3)启动xinetd服务
[root@stu09 ~]# service xinetd start Starting xinetd:
(4)访问samba的图形界面
要访问samba的图形界面只需要在浏览器输入http://SERVER_IP:901。
在第一次使用samba的图形界面时需要输入操作系统root账号和密码,推荐登录后更改登录的用户名和密码。第一次登录建议使用本地进行登录,更改密码之后在进行远程登录配置samba服务。