|NO.Z.00029|——————————|^^ 部署 ^^|——|Linux&Samba服务.V02|——|虚拟用户|
一、匿名用户访问(虚拟用户)
### --- 测试机必须要支持samba服务才可以
~~~ Linux中服务端samba服务默认是没有安装
~~~ Linux客户端是不需要安装相关工具,只要执行samba命令即可
### --- windows下需要开启samba协议:
~~~ windows——>控制面板——>程序
~~~ ——>关闭和启动windows功能——>SMB 1.0/CIFS文件共享支持:对勾
~~~ ——>确定——>重启操作系统——>END
### --- 环境准备:
centos6.x server1:20.20.20.21:samba server
centos6.x server2:20.20.20.22:samba client
windows:20.20.20.240 samba client
### --- 部署samba server服务
[root@server21 ~]# yum install -y samba
[root@server21 ~]# service smb start
### --- 创建samba用户,使用的是系统用户,但该用户是有samba专属密码
~~~ 设置张三账户samba专属密码;不可以登录系统
[root@server21 ~]# useradd -s /sbin/nologin zhangsan
[root@server21 ~]# pdbedit -a zhangsan
### --- windows测试:
~~~ windows+R:\\20.20.20.21——>账户名:zhangsan——>密码:空格
~~~ ——>文件共享目录:zhangsan(zhangsan用户的家目录的共享目录)——>END
~~~ 上传照片到张三的共享目录并在服务器端张三的家目录下查看到该文件
[root@server21 ~]# ls /home/zhangsan/
001.jpg
### --- windows下samba实现文件系统挂载:
~~~ 此电脑——>映射网络驱动器——>驱动器:Z(默认是倒着往前写)
~~~ ——>文件夹:\\20.20.20.21\zhangsan——>确定
~~~ ——>在文件系统管理器下可以查看到挂载的:网络位置:Z盘
~~~ ——>在里面可以直接读写改查——>END
二、常见配置参数解释
### --- samba主配置文件
[root@server21 ~]# vim /etc/samba/smb.conf
# SELINUX NOTES: // 有selinux的配置说明:说明samba是被selinux限制的。需遵循samba的规则。
// [global]用于定义samba服务器的总体特性,其配置对所有共享资源生效
workgroup = WORKGROUP
#设定Samba Server 所要加入的工作组或者域
server string = Samba Server Version %v
#设定Samba Server的注释,可以是任何字符串,也可以不填,宏%v表示显示Samba的版本号。
interfaces - lo eth0 192.168.12.2/24
#设置Samba Server监听那些网卡,可以写网卡名,也可以卸载网卡的IP地址
hosts allow = 127.192.168.1 192.168.10.1
#表示允许连接到Samba Server的客户端,多个参数以空格隔开,可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow刚好相反(二选一)
### --- 例如:
hosts allow=172.17.2. EXCEPT172.17.2.50
~~~ 表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
~~~ 表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
log file = /var/log/samba/log.%m
#设置Samba Server日志文件的存储位置以及日志文件名称,在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。
max log size = 50
#设置Samba Server日志文件的最大容量,单位为kB,0代表不限制
security = user
#设置用户访问Samba Server的验证方式。
passdb backend = tdbsam
load printers = yes/no
### --- 设置是否在启动Samba时就共享打印机
~~~ [homes]用于设置用户宿主目录的共享属性(特殊共享)
[homes] // 共享名(特殊共享,泛指每个用户对应的家目录)
comment = Home Directories // 共享描述
browseable = no // 共享是否可被查看
writable = yes // 共享是否可写
;valid users = %S // 允许访问该共享的用户
### --- 例如:valid users = bob, @bob (多个用户或者组中间用逗号隔开,如果要加入一个组就用"@组名"表示。)
~~~ [printers]用于设置打印机共享资源的属性(特殊共享,共享打印设备,现在基本不用)
[printers] // 共享名
comment = All Printer // 共享描述
path = /var/spool/samba // 共享路径
browseable =no // 共享是否被查看
guesk ok = no // 是否可以匿名访问,类似于publib
writable = yes // 是否可以打印
[自定义]自定义共享区域
[自定义] // 共享名
comment = the share is xbz // 共享描述
path = /share/zdy // 共享路径
public = yes // 是否可以匿名访问,类似于guest ok
browseable = yes // 共享是否可被查看
writable = yes // 是否可写(同时设置目录的W)
### --- 配置文件检查工具:
~~~ testparm:若显示“Loaded services file OK."信息表示配置文件的语法是正确的
~~~ -v:显示samba所支持的所有选项。
[root@server21 ~]# 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]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
三、访问控制:
### --- 第一方式:建议使用这种方式放行:写入权限的控制方式(类似于vsftp的限制方式);
~~~ 配置文件开启,文件系统严格控制(尽量采用这种)
writable = yes // 使用配置文件进行系统开放。想要写入的时候必须第一项修改
setfacl 或 chmod 777 // 使用文件系统进行限制的方式。更推荐使用setfacl操作,是最安全的。777权限非常危险
### --- 第二种方式:文件系统开启,配置文件严格控制
chmod 777 /dir // 文件系统全部开放
read only = yes // 只读
write list = 用户,@组 // 使用参数来部分放行。设置组来部分限制。
四、访问启动管理
### --- 启动、停止、重启和重新加载Samba服务
service smb start|stop|restart|reload
### --- 开机自动启动samba服务
chkconfig --level 2345 smb on|off
[root@server21 ~]# chkconfig --list smb
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server21 ~]# chkconfig smb on
[root@server21 ~]# chkconfig --list smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
五、客户端登录方式
### --- Linux端:
~~~ smbclient -U 用户名 -L //服务器IP // 查看服务器共享
~~~ smbclient -U 用户名 /服务器IP/共享名 // 登录服务器共享
### --- 查看服务并设置启动
[root@server21 ~]# netstat -antp // 查看samba是否开启
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1681/smbd
[root@server22 ~]# which smbclient // 查看命令所在位置
/usr/bin/smbclient // 查看命令所针对的软件包
[root@server22 ~]# rpm -qf /usr/bin/smbclient
samba-client-3.6.23-33.el6.x86_64
### --- 查看张三及李四账户的信息
[root@server22 ~]# smbclient -U zhangsan -L //20.20.20.21 // 登入张三用户
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
zhangsan Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Server Comment
--------- -------
Workgroup Master
--------- -------
### --- 创建并登入李四账户
[root@server21 ~]# useradd lisi
[root@server21 ~]# pdbedit -a lisi
[root@server22 ~]# smbclient -U lisi -L //20.20.20.21
Enter lisi's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
lisi Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Server Comment
--------- -------
Workgroup Master
--------- -------
### --- homes标签的特殊性,只能看到自己的共享,别人的是看不到的。
### --- 登录账户
[root@server22 ~]# smbclient -U lisi //20.20.20.21/lisi
Enter lisi's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \> // samba里面的命令是自己定义的,不依赖于系统命令
[root@server22 ~]# smbclient -U zhangsan //20.20.20.21/zhangsan
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>
### --- window端
### --- 建立连接 \\服务器IP\共享名
~~~ 直接在windows+R下输入:\\20.20.20.21 回车会出现你需要登录的账户选择
### --- 清理连接:
C:\Users\Administrator>net use * /del // 清空登录缓存
~~~ 你有以下的远程连接:
\\20.20.20.21\IPC$
~~~ 继续运行会取消连接。
~~~ 你想继续此操作吗? (Y/N) [N]: y
~~~ 命令成功完成。
### --- 重新建立连接
~~~ 直接在windows+R下输入:\\20.20.20.21
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv007-network
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通