简介
Samba(SMB是Server Message Block其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用.Samba即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件,不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的.大家知道在Windows 网络中的每台机器即可以是文件共享的服务器.Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器.我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用.在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用.这在一定意义上说和FTP是不一样的,Samba是用的NETBIOS协议.
+个人理解
- Samba 应该范围主要是Windows和Linux系统系统之间共享文件或设备使用;
- Samba 是在网络上的计算机之间共享文件和打印服务的软件包;
- Samba 协议是客户端服务协议;
- Samba 提供的一个类似FTP客户程序的客Samba客户程序smbclient命令;
- Samba 一般都用在内网中使用;
守护进程
Samba有两个守护进程:smbd和nmbd
- smbd 监听 139 TCP 端口 * 这个进程不启用nmbd不能用启动,smbd不启动smbad是用不了的
- nmbd 监听 137和138 UDP断口 * nmbd不启动smbd一样用
- Samba主页:http://www.samba.org
- #安装环境
- yum -y install samba
- #更改配置文件
- vi /etc/samba/smb.conf
- #配置段
- [global] # 设置全局环境选项
- workgroup # 制定工作组或域
- server string # 描述
- security # 指定系统的安全模式
- #security选项
- 1.share # 不需要任何的验证(不采用)
- 2.user # 默认的设置,推荐的,由*unx samba服务器做验证
- 3.server # 第三方主机验证
- 4.domain # 第三方主机验证(必须是windows域控制器)
- #服务的基本限定:
- #哪些主机访问
- #默认有两个选项
- 1.hosts allow # 只写这个主机可以访问,可以写网段,可以写IP地址,可以写域名
- 2.hosts deny # 定义禁止访问的客户端
- log_file # 日志目录
- max log size # 每个最大日志是50KB
- [homes] # 设置用户家目录共享 的名称
- comment # 描述
- public = no
- writeable = yes
- browseable = yes
- valid users = *** 设置允许的用户名
-
- [printers] #设置打印机共享
- [sharefiles]#设置文件共享
- /etc/init.d/smb start #开启
- /etc/init.d/smb stop #停止
- /etc/init.d/smb restart #重启
- pkill smb;pkill nmbd #干掉Samba
- pgrep smb ; pgrep nmbd #查看是否开启守护进程
添加samba用户并设定密码的方法:
1.直接用mksmbpasswd.sh这个工具将系统用户转换成samba用户
cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd
2.用smbpasswd命令直接设置.首先要添加系统用户然后用
smbpasswd -a 用户名 #添加samba用户
smbpasswd -e 用户名 #激活用户
配置之后,发现无法访问,修改了配置文件:
[global]
workgroup=随便写
sercurity=user
[共享名]
path=路径
browseable=yes
writable=yes
guest ok =yes
退出保存
进入共享文件目录
改共享文件的所有者
chown nobody:nobody 文件名
关闭了selinux
在/etc/sysconf下有一个SeLinux文件,使用vi打开,更改其中的SELINUX项的值就可以了。
SELINUX=disable 禁用SeLinux
SELINUX=enforcing 使用SeLinux
禁用了防火墙,
然后发现可以读,但是不能写入:运行如下命令:
setsebool -P samba_export_all_rw on
看/etc/samba/smb.conf:
If you need to share a system created directory you can use one of the
# following (read-only/read-write):
# setsebool -P samba_export_all_ro on
# or
# setsebool -P samba_export_all_rw on
然后可以了。