天天看点

smb

(一)samba的整体介绍:

(1)samba介绍:

实现了linux和windows之间的文件共享,基于netbios协议开发

(2)samba的主要应用:

①文件共享

②打印机服务器

③samba登录时身份验证

④可以进行windows的主机名解析

(3)文件服务器的比较:

smb

(二)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: *********

smb

(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