linux cpu占用率如何看
204
2022-11-08
共享服务之 samba
samba
解决Linux和windows之间的共享,跨平台的服务
SAMBA服务简介 SMB:Server Message Block 服务器消息块,IBM发布,最早是DOS网络文件共享协议,是私有协议 CIFS:common internet file system,微软基于SMB发布 SAMBA:1991年Andrew Tridgell,实现 windows和UNIX相通 官方网站:http://samba.org/ SAMBA的功能: 共享文件和打印,实现在线编辑 实现登录SAMBA用户的身份认证 可以进行NetBIOS名称解析 外围设备共享 Windows计算机网络管理模式: 工作组WORKGROUP:计算机对等关系,帐号信息各自管理 域DOMAIN:C/S结构,帐号信息集中管理,DC,AD
相关包
samba 提供smb服务器端 samba-client 客户端软件 samba-common 通用软件 cifs-utils smb客户端工具 samba-winbind 和AD相关
相关服务进程:
smbd 提供smb(cifs)服务 TCP:139,445 nmbd NetBIOS名称解析 UDP:137,138 主配置文件:/etc/samba/smb.conf 帮助参看:man smb.conf 语法检查: testparm [-v] [/etc/samba/smb.conf] 客户端工具:smbclient,mount.cifs
dnf install samba systemctl start smb systemctl start nmb
samba-client 访问 Windows
# Windows创建用户,且在win上把一个文件夹作为共享文件夹 C:\Users\Administrator>net user winuser1 123456 /add #查看是否按照了samba-client 客服端 [root@c7-107 ~]# rpm -q samba-client samba-client-4.10.16-15.el7_9.x86_64 #查看远程服务器的共享 [root@c7-107 ~]# smbclient -L 10.0.0.1 -U winuser1%123456 Sharename Type Comment --------- ---- ------- ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 IPC$ IPC 远程 IPC share Disk Reconnecting with SMB1 for workgroup listing. do_connect: Connection to 10.0.0.1 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) Unable to connect with SMB1 -- no workgroup available 带$的表示是隐藏文件夹 #查看Windows上掩藏文件里面的内容 [root@c7-107 ~]# smbclient -L 10.0.0.1 -U winuser1%123456 Sharename Type Comment --------- ---- ------- ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 IPC$ IPC 远程 IPC share$ Disk Reconnecting with SMB1 for workgroup listing. do_connect: Connection to 10.0.0.1 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) Unable to connect with SMB1 -- no workgroup available [root@c7-107 ~]# smbclient //10.0.0.1/share$ -U winuser1%123456 Try "help" to get a list of possible commands. smb: \> ls [root@c7-17 ~]# smbclient -L 10.0.0.1 -U winuser1%123456 Sharename Type Comment --------- ---- ------- 2021.06 Disk ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 IPC$ IPC 远程 IPC Users Disk Reconnecting with SMB1 for workgroup listing. do_connect: Connection to 10.0.0.1 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) Unable to connect with SMB1 -- no workgroup available [root@c7-17 ~]# smbclient -L 10.0.0.1 -U winuser1%123456 Sharename Type Comment --------- ---- ------- 2021.06 Disk ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 IPC$ IPC 远程 IPC Users Disk wangyu Disk Reconnecting with SMB1 for workgroup listing. do_connect: Connection to 10.0.0.1 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) Unable to connect with SMB1 -- no workgroup available [root@c7-17 ~]# smbclient //10.0.0.1/wangyu -U winuser1%123456 Try "help" to get a list of possible commands. smb: \> ls . D 0 Sun Jun 27 12:34:53 2021 .. D 0 Sun Jun 27 12:34:53 2021 wangyu.txt A 0 Sun Jun 27 12:34:49 2021 26065526 blocks of size 4096. 11608851 blocks available smb: \> !ls anaconda-ks.cfg phpMyAdmin-5.0.2-all-languages.zip wang.txt wordpress-5.7.2-zh_CN.tar smb: \> put anaconda-ks.cfg #上传文件 putting file anaconda-ks.cfg as \anaconda-ks.cfg (997.0 kb/s) (average 997.1 kb/s) smb: \> ls . D 0 Sun Jun 27 12:36:35 2021 .. D 0 Sun Jun 27 12:36:35 2021 anaconda-ks.cfg A 1021 Sun Jun 27 12:36:35 2021 wang.txt A 0 Sun Jun 27 12:36:05 2021 wangyu.txt A 0 Sun Jun 27 12:34:49 2021 26065526 blocks of size 4096. 11608830 blocks available smb: \> smb: \> ls . D 0 Sun Jun 27 12:36:35 2021 .. D 0 Sun Jun 27 12:36:35 2021 anaconda-ks.cfg A 1021 Sun Jun 27 12:36:35 2021 wang.txt A 0 Sun Jun 27 12:36:05 2021 wangyu.txt A 0 Sun Jun 27 12:34:49 2021 26065526 blocks of size 4096. 11608573 blocks available smb: \> get wang.txt #下载文件 getting file \wang.txt of size 0 as wang.txt (0.0 KiloBytes/sec) (average -nan KiloBytes/sec) smb: \> !ls anaconda-ks.cfg phpMyAdmin-5.0.2-all-languages.zip wang.txt wordpress-5.7.2-zh_CN.tar smb: \>
cifs-utils 提供挂载包
[root@c7-107 ~]# yum -y install cifs-utils #提供了挂载的包 [root@c7-107 ~]# rpm -ql cifs-utils /etc/cifs-utils/idmap-plugin /etc/request-key.d/cifs.idmap.conf /etc/request-key.d/cifs.spnego.conf /usr/bin/cifscreds /usr/bin/getcifsacl /usr/bin/setcifsacl /usr/lib64/cifs-utils/idmapwb.so /usr/sbin/cifs.idmap /usr/sbin/cifs.upcall /usr/sbin/mount.cifs #提供了挂载的包 /usr/share/man/man1/cifscreds.1.gz /usr/share/man/man1/getcifsacl.1.gz /usr/share/man/man1/setcifsacl.1.gz /usr/share/man/man8/cifs.idmap.8.gz /usr/share/man/man8/cifs.upcall.8.gz /usr/share/man/man8/idmapwb.8.gz /usr/share/man/man8/mount.cifs.8.gz [root@c7-107 ~]# [root@c7-107 ~]# yum install mlocate -y [root@c7-107 ~]# locate cifs.ko locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory [root@c7-107 ~]# updatedb [root@c7-107 ~]# locate cifs.ko /usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/fs/cifs/cifs.ko.xz
搭建samba 服务器
监听端口 :TCP 139 445
#10.0.0.17 作为服务器 #安装samba 包 开启服务 [root@c7-17 ~]# yum install samba -y [root@c7-17 ~]# rpm -ql samba-common /etc/logrotate.d /etc/logrotate.d/samba /etc/samba /etc/samba/lmhosts /etc/samba/smb.conf /etc/samba/smb.conf.example /etc/sysconfig/samba /run/samba /run/winbindd /usr/lib/tmpfiles.d/samba.conf /usr/share/man/man5/lmhosts.5.gz /usr/share/man/man5/smb.conf.5.gz /usr/share/man/man5/smbpasswd.5.gz /usr/share/man/man7/samba.7.gz /var/lib/samba /var/lib/samba/lock /var/lib/samba/private /var/log/samba /var/log/samba/old [root@c7-17 ~]# [root@c7-17 ~]# systemctl enable --now smb [root@c7-17 ~]# ss -tnlpu |egrep '139|445' tcp LISTEN 0 50 *:445 *:* users:(("smbd",pid=1555,fd=36)) tcp LISTEN 0 50 *:139 *:* users:(("smbd",pid=1555,fd=37)) tcp LISTEN 0 50 [::]:445 [::]:* users:(("smbd",pid=1555,fd=34)) tcp LISTEN 0 50 [::]:139 [::]:* users:(("smbd",pid=1555,fd=35)) [root@c7-17 ~]# [root@c7-17 ~]# rpm -qf `which smbpasswd` samba-common-tools-4.10.16-15.el7_9.x86_64 # yum install samba-common-tools -y #创建samba账户之前要创建虚拟用户 [root@c7-17 ~]# useradd -s /sbin/nologin smb1 [root@c7-17 ~]# useradd -s /sbin/nologin smb2 [root@c7-17 ~]# useradd -s /sbin/nologin smb3 #将 虚拟的用户转化为Samba用户 [root@c7-17 ~]# smbpasswd -a smb1 (如果不加a 是该现有的samba 账号改密码) New SMB password: Retype new SMB password: Added user smb1. [root@c7-17 ~]# smbpasswd -a smb2 New SMB password: Retype new SMB password: Added user smb2. [root@c7-17 ~]# [root@c7-17 ~]# smbpasswd -a smb3 New SMB password: Retype new SMB password: Added user smb3. 这样就创建了samba 账户 [root@c7-17 ~]# pdbedit -L 显示账号 smb1:1000: smb3:1002: smb2:1001: [root@c7-17 ~]# pdbedit -L -v #详细的显示账号的信息 --------------- Unix username: smb1 NT username: Account Flags: [U ] User SID: S-1-5-21-2013099399-2622747258-3431419736-1000 Primary Group SID: S-1-5-21-2013099399-2622747258-3431419736-513 Full Name: Home Directory: \\smbs\smb1 HomeDir Drive: Logon Script: Profile Path: \\smbs\smb1\profile Domain: C7-17 Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Wed, 06 Feb 2036 23:06:39 CST Kickoff time: Wed, 06 Feb 2036 23:06:39 CST Password last set: Sun, 27 Jun 2021 22:10:11 CST Password can change: Sun, 27 Jun 2021 22:10:11 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF --------------- Unix username: smb3 NT username: Account Flags: [U ] User SID: S-1-5-21-2013099399-2622747258-3431419736-1002 Primary Group SID: S-1-5-21-2013099399-2622747258-3431419736-513 Full Name: Home Directory: \\smbs\smb3 HomeDir Drive: Logon Script: Profile Path: \\smbs\smb3\profile Domain: C7-17 Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Wed, 06 Feb 2036 23:06:39 CST Kickoff time: Wed, 06 Feb 2036 23:06:39 CST Password last set: Sun, 27 Jun 2021 22:11:35 CST Password can change: Sun, 27 Jun 2021 22:11:35 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF --------------- Unix username: smb2 NT username: Account Flags: [U ] User SID: S-1-5-21-2013099399-2622747258-3431419736-1001 Primary Group SID: S-1-5-21-2013099399-2622747258-3431419736-513 Full Name: Home Directory: \\smbs\smb2 HomeDir Drive: Logon Script: Profile Path: \\smbs\smb2\profile Domain: C7-17 Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Wed, 06 Feb 2036 23:06:39 CST Kickoff time: Wed, 06 Feb 2036 23:06:39 CST Password last set: Sun, 27 Jun 2021 22:11:23 CST Password can change: Sun, 27 Jun 2021 22:11:23 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF #10.0.0.37 的客服机上安装包: [root@c7-37 ~]#yum install samba-client #连接samba服务端 [root@localhost ~]#smbclient -L 10.0.0.17 -U smb1 Enter SAMBA\smb1's password: Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (Samba 4.10.16) smb1 Disk Home Directories Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- ------- [root@c7-37 ~]#smbclient //10.0.0.17/smb1 -U smb1 Enter SAMBA\smb1's password: Try "help" to get a list of possible commands. smb: \> ls . D 0 Sun Jun 27 22:07:59 2021 .. D 0 Sun Jun 27 22:08:04 2021 .bash_logout H 18 Fri Nov 20 13:02:30 2015 .bash_profile H 193 Fri Nov 20 13:02:30 2015 .bashrc H 231 Fri Nov 20 13:02:30 2015 18307072 blocks of size 1024. 16288112 blocks available smb: \>
配置文件
[global] 服务器通用或全局设置的部分 [homes] 用户的家目录共享 [printers] 定义打印机资源和服务 [sharename] 自定义的共享目录配置 其中:#和;开头的语句为注释,大小写不敏感 %m 客户端主机的NetBIOS名 %M 客户端主机的FQDN %H 当前用户家目录路径 %U 当前用户的用户名 %g 当前用户所属组 %h samba服务器的主机名 %L samba服务器的NetBIOS名 %I 客户端主机的IP,是i的大写字母 %T 当前日期和时间 %S 可登录的用户名 4.5.1 SAMBA服务器全局配置 workgroup 指定工作组名称 server string 主机注释信息 netbios name 指定NetBIOS名,可以被SAMBA客户端使用,但不支持ping 注意:netbios name需要启动nmb服务 [global] workgroup = workgroup netbios name = smbserver #此设置需要启动nmb服务才可能生效 hosts deny 拒绝指定主机访问,格式和hosts allow 相同 config file=/etc/samba/conf.d/%U 用户独立的配置文件 Log file=/var/log/samba/log.%I 不同客户机采用不同日志 log level = 2 日志级别,默认为0,不记录日志
[root@c7-17 samba]# grep '^[^#]' smb.conf [global] workgroup = SAMBA security = user netbios name = smbs #解析用,相当于DNS passdb backend = tdbsam config file= /etc/samba/conf.d/%U printing = cups printcap name = cups load printers = yes cups options = raw [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775 [share] path = /data/dir writeable=yes Guest ok = yes
==#直接代替IP访问==[root@c7-17 ~]# grep "netbios name" /etc/samba/smb.conf==netbios name = smbs #配置文件加入此项==[root@c7-37 ~]#==smbclient -L smbs==Enter SAMBA\root's password: Anonymous login successful
Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers share Disk IPC$ IPC IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.Anonymous login successful
Server Comment --------- ------- Workgroup Master --------- ------- SAMBA SMBS
如何在samba中单独共享
# 在服务器端写配置文件 [root@c7-17 ~]# tail -5 /etc/samba/smb.conf [share] path = /data/dir valid users = smb1,@admin #smb1 和 admin组都可以访问 writeable=yes browseable=yes #创建组且将用户加入到组 [root@c7-17 ~]# groupmems -l -g admin #将smb2 加入到组 smb2 # 让 smb1 对文件有读写权限 [root@c7-17 ~]# getfacl /data/dir getfacl: Removing leading '/' from absolute path names # file: data/dir # owner: root # group: root user::rwx user:smb1:rwx group::r-x group:admin:rwx mask::rwx other::r-x #让smb1去访问共享文件夹模块share。可以上传下载 [root@c7-37 ~]#smbclient //10.0.0.17/share -U smb1%123456 smb: \> ls . D 0 Mon Jun 28 00:11:35 2021 .. D 0 Mon Jun 28 00:21:28 2021 anaconda-ks.cfg A 1021 Sun Jun 27 23:56:26 2021 20.sh A 139 Sun Jun 27 23:56:49 2021 samba1 A 0 Sun Jun 27 23:59:19 2021 18307072 blocks of size 1024. 16288232 blocks available smb: \> !ls anaconda-ks.cfg smb: \> get 20.sh getting file \20.sh of size 139 as 20.sh (22.6 KiloBytes/sec) (average 22.6 KiloBytes/sec) smb: \> !ls 20.sh anaconda-ks.cfg #由于smb2 属于admin组,所以smb2也可以访问该模块 smb: \> ls . D 0 Wed Jun 30 15:51:12 2021 .. D 0 Mon Jun 28 00:21:28 2021 18307072 blocks of size 1024. 16288272 blocks available smb: \> !ls 20.sh anaconda-ks.cfg smb: \> put 20.sh putting file 20.sh as \20.sh (67.9 kb/s) (average 67.9 kb/s) smb: \> ls . D 0 Wed Jun 30 15:52:01 2021 .. D 0 Mon Jun 28 00:21:28 2021 20.sh A 139 Wed Jun 30 15:52:01 2021 18307072 blocks of size 1024. 16288268 blocks available
实现不同的用户访问不同的文件夹
[root@c7-17 samba]# tail -5 smb.conf [share] path = /data/dir writeable=yes Guest ok = yes [root@c7-17 samba]# cd conf.d/ [root@c7-17 conf.d]# ls smb1 smb2 [root@c7-17 conf.d]# cat smb1 smb2 [share] path=/data/dir1 #smb1 针对的是 该文件夹 Read only = NO Create mask =0644 [share] path=/data/dir2 #smb2 针对是该文件夹 Read only = NO Create mask =0644 [root@c7-17 conf.d]# ll /data/dir1 total 0 -rw-r--r-- 1 root root 0 Jun 28 00:10 dir1.txt [root@c7-17 conf.d]# ll /data/dir2 total 0 -rw-r--r-- 1 root root 0 Jun 28 00:21 dir2.txt #编写总配置文件 [root@c7-17 samba]# grep '^[^#]' smb.conf |head [global] workgroup = SAMBA security = user netbios name = smbs passdb backend = tdbsam log level = 2 log file = /var/log/samba/log.%I config file = /etc/samba/conf.d/%U #让每个用户都有自己的配置文件 printing = cups printcap name = cups #虽然都是share 模块但是实现smb2看到的是 dir2.txt smb1 看到的是 dir1.txt [root@c7-37 ~]#smbclient //10.0.0.17/share -U smb2%123456 Try "help" to get a list of possible commands. smb: \> ls . D 0 Mon Jun 28 00:21:54 2021 .. D 0 Mon Jun 28 00:21:28 2021 ==dir2.txt == N 0 Mon Jun 28 00:21:54 2021 18307072 blocks of size 1024. 16288268 blocks available smb: \> ^C [root@c7-37 ~]#smbclient //10.0.0.17/share -U smb1%123456 Try "help" to get a list of possible commands. smb: \> ls . D 0 Mon Jun 28 00:10:07 2021 .. D 0 Mon Jun 28 00:21:28 2021 dir1.txt N 0 Mon Jun 28 00:10:07 2021 18307072 blocks of size 1024. 16288268 blocks available smb: \>
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~