(一)samba的整体介绍:
(1)samba介绍:
实现了linux和windows之间的文件共享,基于netbios协议开发
(2)samba的主要应用:
①文件共享
②打印机服务器
③samba登录时身份验证
④可以进行windows的主机名解析
(3)文件服务器的比较:
(二)samba的安装:
(1)安装包:
samba:主服务包
samba-client:客户端
samba-common:通用工具
samba4-libs:库
samba-winbind:windos域映射
samba-winbind-clients:域映射客户端
systemctl restart smb
systemctl restart nmb
(2)samba的守护进程:
①smbd:提供服务器中文件,打印资源的共享访问139,445
②nmbd:提供基于netbios主机名称的解析137,138
(3)samba配置介绍:
①vim /etc/samba/smb.conf //分为2大块,global settings //全局配置和;share defintions //共享配置,共享配置下面有,用户共享目录设置,打印机共享设置,自定义名称的共享目录设置
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
84 workgroup = mygroup //设置工作组
85 server string = samba server version %v //设置显示的版本
101 log file = /var/log/samba/log.%m //日志的保存位置
140 ; security = domain
security:安全级别,可用值如下:
share:不需要密码就可以访问
user:使用系统用户,samba密码登录
server:由其他服务器提供认证
domain:由域控制器提供认证
141 ; passdb backend = tdbsam
142 ; realm = my_realm
275 [homes] //共享的名字
276 comment = home directories //描述信息
284 path = /var/spool/samba //共享路径
286 guest ok = no //允许所有人访问,等同于public
287 writable = no //所有人可写
read only = //所有人只读
279 ; valid users = %s //指定可以访问的用户
302 ; browseable = no //是否浏览可见
313 ; write list //拥有写权限的用户列表
②vim /etc/samba/lmhosts //对应netbois名与主机的ip的文件,一般samba会自动搜索{只对本机生效}
③vim /etc/samba/smbpasswd //samba密码保存文件,默认不存在
④vim /etc/samba/smbusers //用户别名,用于适用于不同操作系统中用户别名习惯
testparm //检测配置是否正常
⑤常见的变量:
%v:samba的版本号
%s:任意用户可以登录
%m:client端的netbios主机名
%l:服务器端的netbios主机名
%u:当前登录的用户名
%g:当前登录的用户组名
(三)samba的使用:
(1)share权限访问:
①配置文件修改
vim /etc/samba/smb.conf
84 workgroup = mygroup
85 server string = test //定义备注
116 security = user //定义访问的方式
117 passdb backend = tdbsam
//这里写访问的目录
290 [test]
291 comment = test //访问的备注
292 path = /test //共享的路径
293 broswseable = yes //这个文件能不能读?
294 guest ok = yes //允许所有人访问,等同于public
295 writable = yes //是否为可写?
writable = yes //如果不写 write list只有writable允许所有用户都上传
write list = tongxue //仅允许这个用户上传
valid users = tongxue //允许那个用户访问
②chown tongxue /test //权限既要服务权限允许又要系统权限允许,所以要让目录也要有系统权限
useradd tongxue
smbpasswd -a tongxue //添加一个smb用户和系统用户,要给用户添加samba密码,该用户必须已经是系统用户,但该用户的密码可以和系统用户的密码不一致
③测试:
1、然后在windows 输入:\\172.18.152.50 进行访问
2、linux作为客户端访问:
smbclient -l //172.18.152.50 //查看共享列表
smbclient -l //172.18.152.50/test //进入共享目录
3、linux访问windows的共享:
smbclient //172.18.152.86/1 -u sara //这里输入的密码是windows的密码,这里的1是是在smb.cong里定义的[]这个文件夹的目录,不是path指的目录
(2)smb允许某一个用户访问,但是能访问公众的目录
①vim /etc/samba/smb.conf
[homes]
comment = home directories
browseable = no
writable = yes
[pub]
comment = pub
path = /pub
browseable = yes
write list = tongxue
valid users = tongxue
chmod tongxue /pub //更改文件夹的权限,不然也访问不了
如果要想访问和上传,linxu系统权限必须允许,samba服务权限也必须允许
(四)samba的操作:
(1)添加samba用户:
用户必须已经是系统用户,才能添加为samba用户
① smbpasswd -a 系统用户名
(2)查看smba用户:
① pdbedit -l
(3)删除smba用户:
①smbpasswd -x tongxue
(4)备注:
①系统权限要对共享目录生效
②samba服务器权限也会对共享目录生效
③在实际的工作中,可能共享的目录众多,用户众多,权限交叉,建议使用系统的权限控制共享目录权限{acl权限},而不是使用samba权限
(5)smb的挂载:{把smb共享的目录挂载到本地}
mount -t cifs -o username=用户 原路径 目标路径
①演示1:
mount -t cifs -o username=test1 //10.1.1.10/test1 /mnt
password for test1@//10.1.1.10/test1: *********
(6)samba别名{让一个用户可以让两个别名来登录}:
①linux用户如root,nobody在windows中可能对应的用户是amdinstart,guset用户,samba是跨平台的,所以用别名他们可以通用
②smb默认开启别名,需要在/etc/samba/smb.conf中加入 username map=/etc/samba/smbusers,然后重启
vim smbusers
root = administraror admin //原名-别名,{多个别名空格隔开}
zs = zhangsan