samba服务

samba服务

samba服务的进程由smbd和nmbd组成

主要进程

smbd进程:主要负责管理服务器上的共享目录、打印机、提供登录认证、创建对话进程和SMB资源共享等功能
端口 139和445

nmbd进程:主要负责提供NetBIOS的域名解析和浏览共享资源的服务
端口 137和138

工作原理

工作原理:
1、由Samba客户端向Samba服务器端发送包含使用的协议版本等信息的数据请求包,
当服务器收到数据请求包后对数据包中的内容进行确认,
如果Samba服务器没有响应客户端的请求则本次会话请求连接失败。
2、当数据请求包的信息被Samba服务器确认后,
服务器就向客户端发送建议使用的协议版本、端口等相关信息
3、客户端在收到来自服务器端的信息后,开始根据服务器的要求确认自身的信息,
然后向服务器发送认证信息并等待服务器的响应,如果服务器端响应客户端的请求,
则本次会话请求连接成功,否则,则本次会话请求连接失败。
4、客户端与服务器端成功建立会话连接后,客户端就可以通过相应的命令访问所需的资源。

 部署samba服务

 安装samba服务

yum -y  install samba  samba-client

配置文件,模板文件

全局设置

全局设置
        workgroup = MYGROUP            // 工作目录 
        server string = Samba Server Version %v        // 服务器的版本信息

;       netbios name = MYSERVER        // 主机的NetBIOS设置

;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24        // 接口
;       hosts allow = 127. 192.168.12. 192.168.13.        // 允许访问的主机列表



日志设置
// 日志存放位置
log file = /var/log/samba/log.%m
// 日志文件大小设置,单位kb
max log size = 50


独立服务器选项
security = user        // samba运行模式
passdb backend = tdbsam        // 存储用户信息


security有三种运行方式:
  // user:使用samba自身的数据库验证用户
  // share:无需共享密码,任何人都可以访问samba共享资源
  // server:在此级别下,身份验证由samba主机负责,但是不推荐使用

passdb backend有三种运行方式
    // tdbsam:使用数据库文件passdb.tdp,该文件存放在/etc/samba下,该参数值为默认
    // ldapsam:使用LDAP方式进行验证
    // smbpasswd:使用smbpasswd为系统用户设置samba密码

共享目录测试

[homes]
        comment = Home Directories        // 描述信息    可不加
        browseable = no                    // 共享但是不可读
        writable = yes                    // 共享权限可写
;       valid users = %S                    // 定义可访问的用户,这里表示所有合法登录的用户
;       valid users = MYDOMAIN\%S

[printers]
        comment = All Printers        // 描述信息
        path = /var/tmp            // 定义共享目录
        browseable = no            // 是否可读,yes表示只读,no不能浏览
        guest ok = no                // 定义是否可以匿名
        writable = no                // 定义是否可写,

实验1

将samba服务器端目录/smbshare共享,共享名为myshare,共享可以浏览,允许用户rose和用户marry访问,用户rose具有只读权限,marry具有读写权限  (rose和marry系统存在的用户)

服务端

创建目录smbshare

更改配置文件

[myshare]            // 共享名
        comment = dirextory        // 描述信息
        path = /smbshare            // 共享目录
        browseable = yes            // 共享但不能浏览
        valid users = rose,marry        // 可登录的用户
        write list = marry            //  定义具体读写共享权限

创建rose,marry两个用户,不让他们登录到系统上来

[root@node1 samba]# useradd -s /sbin/nologin rose
[root@node1 samba]# useradd -s /sbin/nologin marry

给他们设置samba密码

[root@node1 samba]# smbpasswd -a rose
New SMB password:
Retype new SMB password:
Added user rose.
[root@node1 samba]# smbpasswd -a marry
New SMB password:
Retype new SMB password:
Added user marry.
[root@node1 samba]# 

smbpasswd后可跟的参数

smbpasswd 
-a:添加用户
-x:删除用户
-e:启用用户
-d:禁用用户

设置权限,使samba用户的访问权限和服务设置的权限一致

[root@node1 samba]# setfacl -m u:rose:r-x /smbshare/
[root@node1 samba]# setfacl -m u:marry:rwx /smbshare/
[root@node1 samba]# getfacl /smbshare/
getfacl: Removing leading '/' from absolute path names
# file: smbshare/
# owner: root
# group: root
user::rwx
user:rose:r-x
user:marry:rwx
group::r-x
mask::rwx
other::r-x

启动服务

[root@node1 samba]# systemctl restart smb nmb
[root@node1 samba]# systemctl enable smb nmb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
[root@node1 samba]# 

客服端

下载在samba

[root@node2 ~]# yum -y install samba-client cifs-utils

此时就可以访问samba服务端的共享资源了

// samba用户浏览samba服务器共享资源列表
[root@node2 ~]# smbclient -L 192.168.100.10 -U rose
Password for [SAMBA\rose]:                            // 输入设置的密码

        Sharename       Type      Comment
        ---------       ----      -------
        myshare         Disk      dirextory
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (Samba 4.19.4)
        rose            Disk      Home Directories
SMB1 disabled -- no workgroup available
[root@node2 ~]# 

// 匿名访问
[root@node2 ~]# smbclient -L 192.168.100.10
Password for [SAMBA\root]:
Anonymous login successful

        Sharename       Type      Comment
        ---------       ----      -------
        myshare         Disk      dirextory
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (Samba 4.19.4)
SMB1 disabled -- no workgroup available

挂载

对共享的目录进行挂载

交互式挂载
mount -t cifs -o username=rose //192.168.100.10/myshare   /test
// 需要输入密码才能挂载

非交互式挂载,直接挂载上
mount -t cifs -o username=rose,password=linux,sec=ntlmssp //192.168.100.10/myshare   /test
// 不需要输入密码

以上两种都可以进行挂载,但是下次启动的时候就会失效,还有一种方法可以使他一直生效

vim  /etc/fstab
//192.168.100.10/myshare   /test   cifs   username=rose,password=linux,sec=ntlmssp  0   0

多用户挂载,使用multiuser选项

vim  /etc/fstab
//192.168.100.10/myshare   /test   cifs   multiuser,username=marry,password=linux,sec=ntlmssp  0   0

 到普通用户内执行

cifscreds  add 192.168.100.10  -u  marry

此时普通用户临时具有了marry的权限,实现其对myshare共享具有marry的读写权限

windows操作系统

 回车,输入samba用户和密码

 实验2

在主机Server30上配置Samba服务。
您的Samba服务器必须是STAFF工作组的一个成员。
共享/common目录,共享名为common。
只有example.com域内的客户端可以访问common共享。
common共享必须是可以浏览的。
用户marry必须能够读取共享中的内容,如果需要的话,验证密 码是:redhat

安装samba服务

yum -y install samba  samba-client

修改配置文件

        workgroup = STAFF            // 服务器必须是STAFF工作组的一个成员
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[common]
        comment = gx
        path = /common
        browseable = yes
        valid users = marry
        write list = marry
        hosts allow = 192.168.100.

创建一个marry用户,不允许登录到系统中,并设置samba密码为redhat

[root@Server30 samba]# useradd -s /sbin/nologin marry
[root@Server30 samba]# smbpasswd -a marry
New SMB password:
Retype new SMB password:
Added user marry.
[root@Server30 samba]# 

设置权限,保证marry用户的访问权限与服务设置的一样

[root@Server30 samba]# setfacl -m u:marry:rwx /common/
[root@Server30 samba]# getfacl /common/
getfacl: Removing leading '/' from absolute path names
# file: common/
# owner: root
# group: root
user::rwx
user:marry:rwx
group::r-x
mask::rwx
other::r-x

启动服务

[root@Server30 samba]# systemctl restart nmb smb
[root@Server30 samba]# systemctl enable nmb smb
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.

使用客服端访问资源,可以访问到公共资源

[root@node2 ~]# smbclient //192.168.100.10/common -U marry
Password for [SAMBA\marry]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sun Jul 21 08:48:46 2024
  ..                                  D        0  Sun Jul 21 08:48:46 2024
  test                                D        0  Sun Jul 21 08:48:46 2024

                52363264 blocks of size 1024. 50584968 blocks available
smb: \> 

实验3

在主机Server30上通过Samba共享目录/storage。
共享名为share。
共享目录share必须可以浏览。
用户jim能以读的方式访问此共享,访问密码为redhat。
用户bob能以读写的方式访问此共享,访问密码是redhat。
此共享永久挂载在desktop30上的/mnt/smb目录,并使用用户jim进行认证,任何用户可临时通过bob来获得读写权限。

下载服务

yum -y install samba  samba-client

[share]
        comment = gx
        path = /storage
        browseable = yes
        valid users = jim, bob
        write list = bob

创建用户并设置他们的权限

[root@node1 ~]# setfacl -m u:jim:r-x /storage/
[root@node1 ~]# setfacl -m u:bob:rwx /storage/

设置密码

[root@node1 ~]# smbpasswd -a jim
New SMB password:
Retype new SMB password:
Added user jim.
[root@node1 ~]# smbpasswd -a bob
New SMB password:
Retype new SMB password:
Added user bob.

挂载

创建挂载的目录

[root@node2 ~]# mkdir /mnt/smb

使用df -Th查看

[root@node2 home]# df -Th
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs                  tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                  tmpfs     777M  9.0M  768M   2% /run
/dev/sda3              xfs        50G  1.7G   49G   4% /
/dev/sda1              xfs       960M  187M  774M  20% /boot
tmpfs                  tmpfs     389M     0  389M   0% /run/user/0
//192.168.100.10/share cifs       50G  1.7G   49G   4% /mnt/smb        // 挂载上了

换到普通用户使用bob用户来读写

[hy@node2 ~]$ smbclient //192.168.100.10/share -U bob
Password for [SAMBA\bob]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sun Jul 21 10:06:15 2024
  ..                                  D        0  Sun Jul 21 10:06:15 2024

                52363264 blocks of size 1024. 50593816 blocks available
smb: \> mkdir test1
smb: \> ls
  .                                   D        0  Sun Jul 21 10:06:42 2024
  ..                                  D        0  Sun Jul 21 10:06:42 2024
  test1                               D        0  Sun Jul 21 10:06:42 2024

                52363264 blocks of size 1024. 50593816 blocks available
smb: \> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值