samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba配置
Samba启动脚本:
/etc/rc.d/init.d/nmb #实现netbios协议
/etc/rc.d/init.d/smb #实现cifs协议
主配置文件:
/etc/smb/samba.conf
认证用户:
帐号:都是系统用户,/etc/passwd
密码:samba服务自有密码文件,
将系统用户添加为samba的命令:smbpsswd
Smbpasswd:
-asys_name:添加系统用户为samba用户
-d:禁用
-e:启用
-x:删除
添加samba用户
[root@Server ~]# useradd smbuser1 [root@Server ~]# smbpasswd -a smbuser1 New SMB password: Retype new SMB password: Added user smbuser1.
这个时候samba的共享用户就添加好了,可以使用Windows或Linux客户端进行测试了,访问的位置是用户的家目录。
自定义共享:
[share_name] Commont=Comment String #共享描述 Path=/path/to/share_directory #共享路径 Guest ok={yes|on} #是否允许来宾帐号访问 Browseable={yes|no} #如果用户没有权限访问,是否可以浏览 Public={yes|no} #是否公开 Read only ={yes|no} #只读,不可写入和删除 Writable ={yes|no} #可写 同时也可以删除 Write list =+GROUP_NAME #定义那个用户可以写入 @组名 可以定义那个组可以写入 Valid users = #可以设置运行那个用户访问 白名单 Invalid users = #置那个用户不可以访问 黑名单 #如果同时黑白名单则使用白名单生效
Smb创建共享:
[root@Server ~]# vim /etc/samba/smb.conf [shared] comment = My shared Testing. path = /shared/samba read only = No guest ok = Yes
创建目录,并对共享用户赋予读写执行权限
[root@Server ~]# mkdir -p /shared/samba [root@Server ~]# setfacl -m u:smbuser1:rwx/shared/samba/
重启服务
[root@Server ~]# service nmb restart;service smbrestart
Client端访问共享
[root@client ~]# smbclient //172.16.4.100/shared -Usmbuser1 Enter smbuser1's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba3.6.23-12.el6] smb: \> ls . D 0 Thu Apr 23 22:11:22 2015 .. D 0 Thu Apr 23 22:11:22 2015 40061blocks of size 524288. 37390 blocks available smb: \> lcd /etc/ smb: \> put fstab putting file fstab as \fstab (99.9 kb/s) (average99.9 kb/s) smb: \> ls . D 0 Thu Apr 23 22:16:01 2015 .. D 0 Thu Apr 23 22:11:22 2015 fstab A 921 Thu Apr 23 22:16:01 2015 40061blocks of size 524288. 37390 blocks available
samba配置示例:
建立samba共享,共享目录为/data,要求:
1)共享名为shared,工作组为magedu;
2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;
4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;
创建共享目录
[root@samba ~]# mkdir /data [root@samba ~]# chmod 777 /data/
创建相关用户
[root@samba ~]# groupadd develop [root@samba ~]# useradd -G develop gentoo [root@samba ~]# useradd -G develop centos [root@samba ~]# useradd ubuntu [root@samba ~]# passwd gentoo [root@samba ~]# passwd centos [root@samba ~]# passwd ubuntu
创建samba用户
[root@samba ~]# smbpasswd -a gentoo [root@samba ~]# smbpasswd -a centos [root@samba ~]# smbpasswd -a ubuntu
设置共享
workgroup = magedu hosts allow = 172.16.
[shared] comment =test browseable =yes path = /data guest ok =yes read only =yes write list =+develop
重启服务
[root@samba ~]# service nmb restart;service smbrestart
验证:使用ubuntu用户访问测试,无法上传文件
[root@client ~]# smbclient //172.16.4.100/shared -Uubuntu Enter ubuntu's password: Domain=[MAGEDU] OS=[Unix] Server=[Samba3.6.23-12.el6] smb: \> lcd /etc/ smb: \> put fstab NT_STATUS_ACCESS_DENIED opening remote file \fstab smb: \> ls . D 0 FriApr 24 20:18:59 2015 .. DR 0 Fri Apr 24 20:18:59 2015 40061blocks of size 524288. 37415 blocks available
使用gentoo用户访问,可以上传文件 [root@client ~]# smbclient //172.16.4.100/shared -Ugentoo Enter gentoo's password: Domain=[MAGEDU] OS=[Unix] Server=[Samba3.6.23-12.el6] smb: \> lcd /etc/ smb: \> put fstab putting file fstab as \fstab (243.9 kb/s) (average243.9 kb/s) smb: \> ls . D 0 Fri Apr 24 20:46:18 2015 .. DR 0 Fri Apr 24 20:18:59 2015 fstab A 999 Fri Apr 24 20:46:18 2015 40061blocks of size 524288. 37415 blocks available
Samba挂载Windows共享的文件夹
查看Windows客户端的远程共享
语法:smbclient –L HOST –U USERNAME
示例:查看172.16.4.230的共享文件夹
[root@Server ~]# smbclient -L 172.16.4.230 -Uximenfeibing Enter ximenfeibing's password: Domain=[ximenfeibing-PC] OS=[Windows 7 Ultimate7600] Server=[Windows 7 Ultimate 6.1] Sharename Type Comment --------- ---- ------- ADMIN$ Disk 远程管理 IPC$ IPC 远程 IPC sambatest Disk #这个是自己创建的共享 session request to 172.16.4.230 failed (Called namenot present) session request to 172 failed (Called name notpresent) session request to *SMBSERVER failed (Called namenot present) NetBIOS over TCP disabled -- no workgroup available
交互式访问Windows共享
语法:smbclient //SERVER/share_name –U USERNAME
示例:访问172.16.4.230共享的sambtest文件夹
[root@Server ~]# smbclient //172.16.4.230/sambatest-U ximenfeibing Enter ximenfeibing's password: Domain=[ximenfeibing-PC] OS=[Windows 7 Ultimate7600] Server=[Windows 7 Ultimate 6.1] smb: \> ls . D 0 Mon May 4 19:39:43 2015 .. D 0 Mon May 4 19:39:43 2015 test.txt A 0 Mon May 4 19:39:41 2015 34017blocks of size 8388608. 29721 blocks available smb: \> lcd /etc/ #切换目录 smb: \> put fstab #上传数据 putting file fstab as \fstab (179.9 kb/s) (average179.9 kb/s) smb: \> ls . D 0 Mon May 4 19:50:25 2015 .. D 0 Mon May 4 19:50:25 2015 fstab A 921 Mon May 4 19:50:25 2015 test.txt A 0 Mon May 4 19:39:41 2015 34017blocks of size 8388608. 29721 blocks available
挂载Windows共享
语法:mount -t cifs //SERVER/shared_name /mount_point-ousername=USERNAME,password=PASSWORD
示例:挂载Windows的sambatest到本地的/mnt目录下
[root@Server ~]# mount -t cifs//172.16.4.230/sambatest /mnt/ -o username=ximenfeibing Password: [root@Server ~]# ll /mnt/ total 4 -rwxr-xr-x 0 root root 921 May 4 2015fstab -rwxr-xr-x 0 root root 0 May 4 2015 test.txt [root@Server ~]# df -H Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg0-root 22G 327M 20G 2% / tmpfs 515M 0 515M 0% /dev/shm /dev/sda1 199M 29M 160M 16% /boot /dev/mapper/vg0-usr 11G 2.1G 7.9G 22% /usr /dev/mapper/vg0-var 22G 262M 20G 2% /var //172.16.4.230/sambatest 286G 37G 250G 13% /mnt
转载于:https://blog.51cto.com/ximenfeibing/1652149