samba配置
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。
运行环境
服务端:CentOS 6.3 X86_64 ip: 192.168.1.8
客户端:Microsoft Professional XP ip: 192.168.1.5
配置过程:
确定系统是否安装了samba, 执行rpm –qa|grep samba
没有安装的,可执行yum –y install samba 安装
samba具有两个进程: smbd和nmbd;smbd监听TCP 139, 处理文件共享和用户验证,必须启动,
不然samba不能使用;nmbd 监听 UDP 137 138, 主要处理浏览共享和计算机名称解析, 不一定要启动。
配置文件smb.conf
包括四个设置段:
[global] 设置全局环境选项
[homes] 每个用户宿主目录共享设置(注意,homes不是指目录)
[printers] 设置打印机共享,这个用的很少,可以注释掉。
[sharefiles] 设置文件共享,这个名称可以是自己随便写的的,每一段可以作为一个共享目录。
[global]段的主要选项:
Workgroup = 表示指定的工作组或域
Server string = 描述信息,显示的就是windows客户端访问samba窗口的描述。
Security = 指定安全模式。
Share 无权限验证。
User 缺省,推荐,由Linux samba服务器验证。
所以服务器端肯定要设置用户名和密码。
Server 第三方主机验证。
Domain 第三方主机验证(第三方必须是Windows域控制器)
hosts allow(也可以是deny)= 如果这个选项注释掉了,则表示所有的主机都可以访问。
如: hosts allow = 127. 172.16. 192.168.12. 网段的格式就是这样的。也可以写具体的IP。
[homes]字段主要选项
comment = 这里都是一些描述信息。
browseable = no 指的是用户的宿主目录是否可见。若为yes,则某用户进入samba后,
所有的用户宿主目录都可见,但除了自己的宿主目录外,所有的宿主目录都进不去,
因为不具有其他用户的权限。若设置为no ,则除了自己的宿主目录外,所有的用户目
录均不可见(隐藏的),即不能访问的目录是不可见。
writable = yes yes表示可写的,no 表示只读的。
valid user = xxxxx%s 有效用户,这个默认是注释掉的,%表示匹配每个用户。
valid users = 这个默认也是注释掉的。
所以要根据共享的需要设置[homes]字段。
IP地址。 如果只禁止某几台主机访问,可以使用 hosts deny =
Log file = 指定日志文件存放的位置。
Max log size = 指定日志文件的大小。
使用samba
关闭防火墙的一些应用。
对于 iptables,执行 iptables –F
对于 SElinux ,执行 setsebool –P samba_enable_home_dir on , 配置宿主目录具有读写权限。
在系统添加用户zbw,并给zbw设置samba的验证密码。
useradd zbw
passwd zbw 输入两遍密码,创建成功。
smbpasswd –a zbw 输入两遍密码,samba的验证密码设置成功。
执行 service smbd start 启动服务
现在可以正常连接samba服务器,但是访问宿主目录时候,提示没有权限。这是SElinux的问题。
执行setsebool –P samba_enable_home_dirs on 开启宿主目录的访问权限 如下所示:
这样可正常进入宿主目录了,并且能新建文件和目录,说明对宿主目录具有可写权限。
如果觉得不方便,可右击宿主目录zbw ,选择将其映射至本机,此后对zbw目录的资源
存取就和本地磁盘存取一样方便,如下:
至此单用户 samba 服务配置成功。