在Linux下配置samba,今天写一篇日志,记录一下。
Samba 和Windows文件共享
1、服务查询
默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分 ,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令
rpm -qa | grep samba ,默认情况下可以查询到两个已经存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2、卸载Samba
用rpm -e 将两个包卸载掉。对于samba-common-3.0.33-3.7.el5,因为与其它rpm包之间存在依赖关系,所以必须加参数-f和--nodeps,-f是指强制,--nodeps是指不检查依赖关系,具体完整命令为:
rpm -e samba-common-3.0.33-3.7.el5 -f --nodeps
rpm -e samba-client-3.0.33-3.7.el5 -f --nodeps
3、安装Samba
用以下命令安装:
rpm -ivh samba-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps
rpm -ivh samba-client-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps
rpm -ivh samba-common-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps
安装完成后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了即可。
启动samba
/etc/rc.d/init.d/smb start
samba 有2个守护进程
smbd 进程 监听139tcp端口
nmbd 监听137和138udp端口
smbd进程作用是处理smb请求包 负责用户验证和文件共享 nmbd进程是处理浏览共享 和计算机名解析
samba 配置文件
/etc/samba/smb.conf
包括4个配置
【global】 设置全局环境选项
workgroup 指定工作组或者域
server string 描述
security 安全模式
share 不需要密码
user 由samba自己验证
server 第三方主机验证
domain 第三方主机验证 必须是window域控制器
hosts allow 限制主机访问 127. 192.168.12. 192.168.13. 只允许这些网段ip、域名、网段 空格分隔
hosts deny 禁止域名
log file 指定日志存放目录
max log size 指定最大日志大小
【homes】 设置用户宿主目录共享
comment 描述 信息
browseable =no 无权访问目录不可见
writable=yes 只读/可写
【printers】 设置打印机共享
【sharefiles】 设置文件共享
注:前面有 “:”或者#表示注释 分号前面一般都是属性 去掉分号就能用
使用samba
smbsataus 查看访问samba的人
testparm 检测samba配置文件是否有误
如果有防火墙先配置防火墙
netfilter/iptables 查看防火墙是否允许 读写 iptables -L
selinux setsebool -P samba_enable_home_dirs on || setsebool -P use_samba_home_dirs on
selinux 查看策略 gesebool -a 查看所有策略 gesebool -a | grep samba 查看samba策略
关闭selinux防火墙 /etc/selinux/config 里面的 SELINUX=disabled 关闭
设置samba验证密码
用户必须是系统用户 不是虚拟用户 已经存在的用户 然后设置 samba密码
smbpasswd -a 用户名 add 如果不加a表示改变
启动samba服务
/etc/rc.d/init.d/smb start
Windows连接samba
运行 cmd 输入 \\samba服务器地址
在window下面的cmd 用 net use 可以查看会话连接
net use * /delete /y 干掉所有连接
为了方便 可以直接把samba的目录 映射网络驱动器 到我的电脑里面
案例:
设置 samba共享目录 software 允许多个用户可以通过window放问 并且有读写权限
创建 software
如果开启了 selinux 需要声明下共享目录 chcon -t samba_share_t /software 共享目录
在samba配置文件smb.conf 末尾添加
[software] 共享名
path = /software 目录名称
valid users = gwyy lt 允许会员 如果不写 就是所有用户都能看到
writable = yes 是否可写可读 写成on就是只读 配合 valid users不写就是个公共只读目录
然后 不光samba的writable设置yes 还要 在linux给这个文件添加写权限 要不然无法写入
最后启动samba服务就好了