1、配置匿名访问samba共享文件。
2、配置用户以身份验证的方式访问samba共享文件。
3、在samba的主配置文件中设置访问地址限制。
4、配置linux为samba客户端访问别人的共享文件。
首先介绍一下实验环境:开启两台虚拟机,linux-1作为samba共享服务器使用,win 7-1作为客户机使用来访问服务器上的共享文件,并且要有写入权限。
首先是挂载光盘文件,然后使用rpm命令安装作为samba服务器端的安装包。
此时可以先关闭IPtables防火墙服务,以及SElinux策略。
安装完成之后可以使用rpm -qc samba查看samba服务的安装目录。切换到配置文件/etc/samba/目录下,mv先修改其中的主配置文件名称,然后在过滤掉以#开头的注释行,并重定向为配置文件,然后就可以编辑主配置文件了,这样就算是编辑错了,也有个备份文件。
进入samba主配置文件,首先修改security为share表示可以匿名访问。
然后按“G”跳转到行未,添加下列配置文件参数。Benet为共享文件名称。
配置文件设置完成之后,在上面指定的共享路径中创建共享目录。并且设置目录权限。设置完成之后就可以开启samba共享服务了。
此时打开win7虚拟机,配置网卡确保两台虚拟机能够互联互通,然后在运行里面输入samba服务器的IP地址进行访问。
因为前面设置了可以写入的权限,所以任何用户在此目录下都可以写入文件。
回到linux上面使用“ls -l 文件目录”可以看到刚才创建的文件的权限,以及属主和属组为nobody,查看ID号为99。
下面开始做用户身份验证,同样要先配置security参数配置为user。
然后到行未配置共享文件的参数,共享名称为accp,在这里需要指定valid users能够允许访问的用户。
配置文件配置完成之后,首先要创建用户,如果只是为了共享建议不要设置用户密码,可以直接使用“smbpasswd -a 加用户名”设置用户的samba服务密码,然后是创建共享目录并设置权限。
配置完成此时需要重新启动samba服务,注意是重启。
win 7上面同样需要清空刚才访问的数据,以防有缓存作怪。
此时再使用同样的IP地址进行访问,提示你输入用户名和密码,输入刚才创建的用户名zhangsan以及samba密码进行访问。
此时不仅可以看到共享文件目录,还可以看到自己的家目录,而且accp目录是可以写入的(在accp里面创建了一个文件222.txt)。
回到samba服务器的主配置文件中,删除writable代表所有用户都可以写入的参数,在下面添加一条只允许lisi进行写入的条目。
(重启linux的samba服务,清空win 7的缓存之后再进行登陆)此时再使用刚才登陆的zhangsan用户,在accp目录下创建文件表示已经没有权限了。
(重启samba服务,清空缓存之后再进行登陆)然而使用lisi用户登陆依然可以有写入权限。
下面编辑/etc/samba/smbusers文件,做samba用户的别名机制。
直接在下面添加“用户名 = 别名”就OK了。
再编辑samba的主配置文件,在全局配置中添加“username map =别名路径”应用别名机制。
又要重启samba服务,清空缓存之后再进行登陆。
此时使用别名进行登陆,跟直接使用lisi用户登陆是一个效果。
同样可以创建文件,而且创建出来的文件的属主和属组都是lisi。
另外还可以在samba服务的主配置文件中做地址限制,有点像ACL,其中“hosts deny”表示拒绝,“hosts allow”表示允许。
此时在win7上无论是用什么用户都不能够访问samba服务,但是可以ping通。
下面是在linux上安装samba的客户端软件,安装完成之后使用“smbclient -L 加对方IP”就可以访问win 7上面的共享文件了。
经验总结:安装samba服务的软件包时注意不要错了。Samba主配置文件中的各种配置参数需要清楚,匿名访问和身份验证访问的参数别搞混了。还有就是权限问题,有时不能写入就要检查权限设置了。谢谢大家! 真的很辛苦的,支持一下了。