Samba(跨平台的共享服务)使用以及配置案例:
实验一:
工作组为Tarena
将目录 /usr/src 共享给所有人
共享名设为 tools
允许所有人访问、无需密码验证
访问权限为只读
实验步骤:
配置服务端与客户端的ip地址,保证连通
通过yum安装samba-client服务
安装:samba-commonsamba-client完成后,进行主配置文件修改来配置共享
[root@localhost samba]# vim smb.conf
74 workgroup = Tarena工作组名
76 server string = Samba Server Version %v版本注释
102 security =share访问用户可为user(需本机用户)可为share(共用的)
222 loadprinters = yes是否显示共享虚拟打印机
290 [tools]共享名
291 comment = Tools Public对此共享的文字说明
292 path= /usr/src共享目录的实际位置
293 public = yes是否都所有人可用
294 readonly = yes 只读,与writeable相反
保存主配置文件后退出。启动并设置开机自启服务
[root@localhost samba]# testparm查看共享目录
进入win7客户机输入//192.168.1.1/tools访问
进入linux客户机访问
[root@localhost ~]# yum -y install samba-client安装客户端samba
[root@localhost ~]# smbclient -L 192.168.10.10 查看共享
[root@localhost ~]# smbclient //192.168.10.10/tools 连接到共享
Password:
Domain=[TARENA] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
Server not using user level security and no passwordsupplied.
smb: \> pwd
Current directory is \\192.168.1.1\tools\
可不输入密码直接访问服务端共享
将共享文件挂载到客户机目录下的/data/smb
[root@localhost ~]# mkdir -p /data/smb 创建挂载点
[root@localhost ~]# mount -t cifs//192.168.10.10/tools /data/smb/ 挂载
[root@localhost ~]# grep smb /etc/fstab 开机自动挂载
//192.168.10.10/tools /data/smb cifs defaults 0 0
测试客户端对共享的权限
在服务端新建文件/usr/src/1.txt
登录到客户端挂载点/data/smb
复制文件1.txt到本地
[root@localhostsmb]# ls挂载点目录
1 1.txt debug file.txt kernels vmware-tools-distrib
[root@localhost smb]# cp 1.txt / 将共享文件1.tx.t复制到本地根下
[root@localhost smb]# ls / 客户端/目录下文件
1 boot home misc root tftpboot
123 data lib mnt sbin tmp
1.txt dev lib64 net selinux usr
可看到文件1.txt从服务器下载到了客户端。说明客户端对共享具有读取的权限
在共享的挂载点创建文件123.txt
[root@localhost smb]# touch 123.txt
touch: 无法触碰“123.txt”: 权限不够
可看出客户端对共享不具备写入权限
试验二Samba用户验证
修改原有的 [tools] 匿名共享设置
1.不再允许所有人访问,拒绝其他用户或匿名访问
2.只允许nick读取、tom写入
3.上传文件的权限为644
4.上传目录的权限为755
创建本地用户tom,jack并为其设置samba密码(本地用户在客户端通过samba访问共享,需用户通过samba独立密码访问),通过命令pdbedit -a [用户名]设置独立密码
服务端修改主配置文件:
74 workgroup = Tarena工作组名
102 security = user 默认使用安全级别
291 comment = Tools Public 对共享的描述
292 path = /usr/src 共享目录
293 public = no 是否对所有人可用
294 readonly = yes 只读
295 write list = tom tom可写
296 directory mask = 0755新建目录权限
297 create mask = 0644 新建文件权限
298 valid users = tom,jack 允许访问用户
保存退出重启服务后并设置用户tom对/usr/src目录的读写权限
[root@localhost 1]# setfacl -m u:tom:rwx /usr/src/
1.新建用户yeyue,tom,jack
[root@localhost tom]# smbclient -U yeyue//192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
tree connect failed: NT_STATUS_ACCESS_DENIED
用户yeyue不可访问,tom,jack允许访问(valid users = tom,jack生效)
2.进入客户端分别对用户tom,jack测试
通过jack登录将共享挂载
[root@localhost~]#mount -o username=jack //192.168.1.1/tools /data/jack/
[root@localhost jack]# cp 1.txt /root
[root@localhost jack]# ls /root
1.txt anaconda-ks.cfg Desktop file.txt install.log install.log.syslog
证明jack拥有读取权限
[root@localhost jack]# touch 11.txt
touch: 无法触碰“11.txt”: 权限不够
证明jack没有写入权限
卸载共享的挂载后通过tom登录挂载共享
[root@localhost ~]# umount /data/jack
[root@localhost ~]# mount -o username=tom//192.168.1.1/tools /data/tom
[root@localhost tom]# cp file.txt /root
[root@localhost tom]# ls /root
1.txt anaconda-ks.cfg Desktop file.txt install.log install.log.syslog
证明用户tom拥有读取权限
[root@localhost tom]# touch 11.txt
[root@localhost tom]# ls
1 11.txt 1.txt debug file.txt kernels vmware-tools-distrib
证明了用户tom拥有对共享的写入权限
3.用户拥有上传文件644权限
[root@localhost tom]# touch file1.txt
[root@localhost tom]# ls -ld file1.txt
-rw-r--r-- 1 root root 17 06-15 16:03 file1.txt
4.用户拥有上传文件夹755权限
[root@localhost tom]# mkdir ceshi
[root@localhost tom]# ls -ld ceshi/
drwxr-xr-x 2 500 500 0 06-15 20:26 ceshi/
试验三Samba账户别名与访问地址控制
1.把普通帐户nick设置别名为kaka
2.设置只允许192.168.1.2地址访问
1.修改samba用户别名文件
[root@localhost ~]# cat /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
tom = kaka增加别名,用户tom可通过别名kaka登录
在主配置文件中增加
77 usernamemap = /etc/samba/smbusers启用别名映射文件
验证:在客户端可通过别名登录
[root@localhost tom]# smbclient -U kaka //192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
smb: \>
2.设置只允许192.168.1.2地址访问
在主配置文件添加
299 hosts allow = 192.168.1.2允许访问的主机
验证:
通过192.168.1.2客户机登录
[root@localhost tom]# ifconfig eth0 | head -2 | tail-1
inetaddr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
[root@localhost tom]# smbclient -U kaka//192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
smb: \>
验证结果:客户机192.168.1.1可登录访问
通过客户机192.168.1.3登录
[root@localhost tom]# ifconfig eth0 | head -2 | tail-1
inetaddr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
[root@localhost tom]# smbclient -U jack//192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]
tree connect failed: NT_STATUS_ACCESS_DENIED
验证结果:客户机192.168.1.3不可访问