samba简单配置
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB
(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它
为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
samb启动的进程
nmbd NetBIOS服务
smbd
监听端口
早些版本的TCP139 445
UDP 137和138
我这里用的samba4没有找到UDP端口,只开放了139和445端口
如果系统自带可以先卸载,rpm -e smba-common samba-client --nodeps
yum install samba samba-client samba-swat samba-common
有依赖关系的包samba-winbind-clients、libsmbclient将自动安装上去。
服务脚本
/etc/rc.d/init.d/smb
配置文件
/etc/samba/
smb.conf
[globle] 全局定义
[shared name] 共享名称
comment = //注释内容
path = //定义指定共享的目录
browseable = Yes/No //目录是否可浏览
public = Yes/No //是否允许所有人访问
read only = Yes/No //是否只读
writable = Yes/No //是否可写
write list = user1, user2 //定义可写用户列表
@group1, +group2 //用@或者+加组名定义某些组可写
valid user = //白名单,定义共享哪些用户访问
invalid user = //黑名单
testparm 专门测试/etc/samba/samba.conf是否有语法错误
smaba的用户都是系统用户,但密码不是系统密码
smbpasswd
-a 添加系统用户为samba用户,密码最好不要和系统用户密码一样
-d 启用samba账户
-e 禁用samba账户
-x 删除samba账户
windows访问linux/unix使用UNC路径 格式 \\ip\sharednmae 可以在浏览器直接输入,也可以映射到本地
linx访问windows使用命令smbclient,使用的也是系统用户,密码为系统用户密码
smbclient
-L 指定IP
-U 指定用户
smbclient -L 192.168.136.135
smbclient UNC 路径 -U //UNC路径不是反斜杠
smbclient //192.168.136.131/test
挂载windows目录到本地
-o指定额外挂载选项,以test用户挂载test到本地
mount -t cifs //192.168.136.131/test /mnt/test -o username=test
开机自动挂载编辑/etc/fstab,为了安全,credentials指定挂载时使用的username和password
//192.168.136.131/test /mnt/test cifs credentials=/etc/samba/cred.pass 0 0
操作文件命令类似于FTP
lcd 切换linux本机路径
cd 切换共享目录路径
put 上传
get 下载
用户的权限是共享权限和文件系统权限的交集
samba访问控制
1. iptables139,445
2.主配置文件中的hosts allow,指定某些主机,或者某些网络,空格隔开
linux上配置samba
1.在samba主配置下面添加共享配置
[samba]
comment = test
path = /samba
public = yes
writable = yes
write list = @samba
2.测试文件有没有语法错误testparm
[root@localhost /]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[samba]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
3.查看端口是否开启TCP139端口,netstat -ntlup
4.添加samba用户,可以自己事先创建的系统用户
smbpasswd -a samba
5.window访问linux共享
如果访问不成功,检查selinxu是否关闭,防火墙是否允许
右击windows设备计算机,添加网络驱动器然后添加地址
然后输出添加samba账户是设定账户和密码
如果没有写权限,则要检查,配置时是否可写,登录的用户(对应的系系统用户)是否对共享目录可写。必须两者同时满足才可写。
配置samba4-swat samba独立的web服务器
yum install samba4-swat会安装依赖xinetd,
xinetd是swat的超级守护进程(独立守护进程),为哪些平时不经常启动的服务(非独立守护进程,瞬时进程,短暂进程),监听端口。如果有请求 服务,xinetd为转交给对应的服务,服务完成后,瞬时进程关闭。
启动swat服务只需要启动xinetd服务即可,超级守护进程(独立守护进程)有运行级别(--level),瞬时守护进程没有运行级别。
每一个非独立守护进程在/etc/xinet.d/ 下面有配置文件
启动瞬时进程两个方法
1.chkconfig swat on
2.编辑/etc/xinet.d/ 下面的配置文件,修改disable=yes 改为no
/etc/xinet.d/swat配置
service swat { port = 901 //监听端口 socket_type = stream //套接字类型,STREAM是TCP协议 wait = no //是否允许多个请求 only_from = 127.0.0.1 //默认只允许本机访问,可以修改 user = root //访问时使用的账户,第一次登陆必须为root server = /usr/sbin/swat //启动的程序 log_on_failure += USERID //如果错误记录USERID disable = no //no表示允许 } ~
重启swat service xinetd restart,查看901端口
LISTEN 2187/smbd tcp 0 0 :::2049 :::* LISTEN - tcp 0 0 :::901 :::* LISTEN 3111/xinetd tcp 0 0 :::59303 :::* LISTEN - [root@localhost ~]#
windows访问192.168.136.135:901输入root账号和密码
如果事先没有启动nmb服务,需要启动nmb服务