首页 > 代码库 > samba 服务
samba 服务
samba服务:1、用于Linux 和Windows 之间的文件共享,可以实现匿名用户和本地用户之间的文件共享
2、工作原理:smb 进程 —>控制发布共享目录与权限 tcp 139 445 138 139
搭建samba服务步骤:1、关闭防火墙和 selinux
2、配置 yum 源(一般是本地源)
3、软件三部曲(查看、安装、查看软件列表)
# rpm -aq|grep samba
samba-winbind-clients-3.6.9-164.el6.x86_64 客户端工具
samba-3.6.9-164.el6.x86_64 服务端
samba-client-3.6.9-164.el6.x86_64 客户端工具
samba4-libs-4.0.0-58.el6.rc4.x86_64 库文件
samba-common-3.6.9-164.el6.x86_64 工具包
samba-winbind-3.6.9-164.el6.x86_64 客户端工具
# rpm -ql samba|grep etc
/etc/logrotate.d/samba 日志轮转文件
/etc/pam.d/samba 验证机制
/etc/rc.d/init.d/nmb 启动脚本
/etc/rc.d/init.d/smb
/etc/samba/smbusers 用户别名文件
/usr/sbin/nmbd 二进制命令
/usr/sbin/smbd
# rpm -ql samba-client
/usr/bin/smbclient 客户端工具
# rpm -ql samba-common
/etc/samba 主目录
/etc/samba/smb.conf 主配置文件
/usr/bin/pdbedit 查看smb数据库用户
/usr/bin/smbpasswd 设置用户密码
/usr/bin/testparm 检测语法
4、了解主配置文件
# cat /etc/samba/smb.conf |grep -v ^#|grep -v ‘^;‘|grep [a-z]
[global] 全局标签
workgroup = MYGROUP 工作组
server string = Samba Server Version %v samba 服务器版本描述
# logs split per machine
log file = /var/log/samba/log.%m 日志文件
# max 50KB per log file, then rotate
max log size = 50 日志大小kb
security = user 认证模式:user用户名密码; share匿名;server
passdb backend = tdbsam smb数据库 /var/lib/samba/private/
# the login script name depends on the machine name
# the login script name depends on the unix user used
# disables profiles support by specifing an empty path
load printers = yes 加载打印机
cups options = raw 打印机选项
#obtain list of printers automatically on SystemV
[homes] 局部标签 共享本地用户的家目录
comment = Home Directories 描述
browseable = no 隐藏标签
writable = yes 可写
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no 等于 public = yes
writable = no 等于 read only = yes
printable = yes
5、没有需求,不用修改配置文件(测试验证默认情况下的共享文件)
6、启动服务,开机自启动
# service nmb restart
# service smb restart
# smbclient -L 192.168.1.4 ——>client 端查看
Enter root‘s password: ——>直接回车是匿名查看
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED
本地用户查看: 需要将本地 (server端) 的用户加入到 smb 数据库里
# smbpasswd -a stu1
New SMB password:
Retype new SMB password:
Added user stu1.
# pdbedit -L 查看用户是否在smb数据里面
stu1:500:
# smbclient -L 192.168.1.4 -U stu1 ——> 以Samba 数据库的某个用户查看
本地用户访问: 标签
# smbclient //192.168.1.4/share -U stu1
Enter stu1‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ?
Windows 查看:cmd-》\\192.168.1.123
1、默认情况下,匿名用户不可以访问 server 端共享出来的本地用户家目录
2、本地用户需要通过用户名和密码访问本地用户的家目录(需要将本地 (server端) 的用户加入到 smb 数据库里)
需求 1 :匿名用户查看
#vim /etc/samba/smb.conf
[homes]
comment = Home Directories
browseable = no
writable = yes
guest ok = yes 允许匿名用户访问
测试 (client) 端:
#smbclient //192.168.1.123/stu1 匿名用户登录
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* 家目录没有权限
server 端: ——> 修改权限
[stu1@vm01 ~]$ ll -d
drwx------. 5 stu1 stu1 4096 Jul 29 14:45 .
[stu1@vm01 ~]$ chmod o+rx .
[stu1@vm01 ~]$ ll -d
drwx---r-x. 5 stu1 stu1.
smb: \> ls
需求 2 :认证模式更改为 share(匿名用户访问)
# vim /etc/samba/sbm.conf
...
security = share
...
结果: 匿名用户可以查看,本地用户不可以访问查看
需求 3 :共享本地目录 /samba/share
# vim /etc/samba/smb.conf
...
[share]
comment = share dir
path = /samba/share
public = no
read only = yes
browseable = yes
▼客户端挂载使用: 开机自动挂载、自动挂载
#mount.cifs -o username=stu1,password=stu1 //192.168.1.4/share /u02 ——>手动挂载
#vim /etc/fstab ——>开机自动挂载
...
//192.168.1.4/share /u02
#vim /etc/auto.master ——>自动挂载
...
/smb /auto.samba
#vim /auto.samba
...
▼控制读写访问:
writable = yes / no ——>可写
read only = yes / no
read list = tom,@admin ——>限制可读的用户
write list = tom,@admin
▼对象的访问控制:
valid user = tom,@admin —> 指定可用用户
invalid user = tom,@admin —> 指定不可用用户
两个参数不要同时存在
▼网络访问控制: allow 和 deny 冲突 —> allow 优先
hosts allow = 150.203. EXCEPT 150.203.6.66 —> 允许哪个网段访问,除了哪个IP
hosts allow = 150.203.15.0/255.255.255.0
hosts allow = *.uplooking.com
hosts deny = 192.168.1.3 vm01.example.com
需求:
公司:uplooking
1、财务部门 /samba/upl_cw cw01财务总监有可读可写权限,财务部门员工可读,boss01>对其有管理权限。
2、市场部门 /samba/upl_sc 市场部门员工可读可写,公司员工可以查询资料,boss02对>其有管理权限。
3、HR部门 /samba/upl_rs rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户>可以查询
4、休息区 /samba/upl_pub 自己管理自己的文件
步骤:
1、创建相应的共享目录
#mkdir /samba/upl_{cw,sc,rs,pub} -p
2、创建相应的用户组
groupadd uplooking
groupadd cw
groupadd rs
groupadd sc
useradd -g cw -G uplooking cw01
useradd -g cw -G uplooking cw02
useradd -g rs -G uplooking rs01
useradd -g rs -G uplooking rs02
useradd -g sc -G uplooking sc01
useradd -g sc -G uplooking sc02
useradd -g uplooking boss01
useradd -g uplooking boss02
useradd vip
3、更改目录相应的权限
chown root.uplooking /samba -R
chmod 770 /samba -R
chown root.cw /samba/upl_cw
chown root.rs /samba/upl_rs
chown root.sc /samba/upl_sc
chown root.uplooking /samba/upl_pub
chmod 1777 /samba/upl_pub
4、发布共享目录
[share_cw]
comment = cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限
path = /samba/upl_cw
valid users = @uplooking
read list = @cw,@rs
write list = cw01,boss01
[share_rs]
comment = HR总监可以读写,vip用户可以查询
path = /samba/upl_rs
valid users = @rs,vip
read list = @rs,vip
write list = rs01
[share_sc]
comment = 市场部门员工可以读写,公司员工可以查询资源,boss02对其部门管理
path = /samba/upl_sc
valid users = @uplooking
read list = @uplooking
write list = @sc,boss02
[share_pub]
comment = 自己的文件自己管理
public = yes
path = /samba/upl_pub
writable = yes
hosts allow = 192.168.1.0/24
5、语法检测 # testparm
6、将用户加入到smb数据里
# smbpasswd -a rs01
# smbpasswd -a rs02
# smbpasswd -a cw01
# smbpasswd -a cw02
# smbpasswd -a sc01
# smbpasswd -a sc02
# smbpasswd -a vip
# smbpasswd -a boss01
# smbpasswd -a boss02
# pdbedit -L 查看是否将用户加入到smb数据
7、重启服务测试验证
清空 windows 缓存:cmd——>net use * /del /y
使用samba服务最好挂载使用(linux中这样方便)
#mount.cifs -o username=stu1,password=stu1 //192.168.1.4/share /yum(挂载点)
本文出自 “11447124” 博客,谢绝转载!
samba 服务