samba文件共享服务器安装

2022-08-30 19:57:52 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、安装samba服务以及samba客户端

代码语言:javascript复制
yum list samba
代码语言:javascript复制
yum install samba samba-client

安装好samba软件包以后,在系统中会添加名为smb和nmb的标准系统服务,管理员可以通过service(centos6)或systemctl(centos7)工具来控制Samba服务的启动与终止。

其中smbd程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议),而nmbd服务程序负责监听UDP协议的137、138端口(NetBIOS协议)。

代码语言:javascript复制
netstat -anput | grep mbd
代码语言:javascript复制
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
代码语言:javascript复制
vim /etc/samba/smb.conf

使用如下配置:

代码语言:javascript复制
# 全局设置:这部分配置项的内容对整个samba服务器都有效。

[global]

        workgroup = SAMBA

                # share:允许任何匿名用户访问

                # user:默认、每一个用户访问时都需要提供账号密码

                # domain/server:第三方集中认证

        security = user

        passdb backend = tdbsam

        log file = /var/log/samba/log.%m

        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



[wxzy_app]

        # 共享描述

        comment = app share

        # 设置共享文件夹的路径

        path = /home/app_smb

        # 允许该指定共享目录可浏览

        browseable = yes

        # 设置是否允许匿名访问

        public = no

        # 允许访问共享目录的用户

        valid users = @smb

        # 读写控制共享目录的用户组

        write list = app_admin

        # 默认创建文件权限 rw_rw___

        force create mode = 0660

        # 默认创建目录权限 rwxrwxr__

        force directory mode= 2770

        # 设置强制设定新建文件所属用户

        force user = app

        # 设置强制设定新建文件所属用户组

        force group = smb

        # 该指定共享资源可使用

        available = yes

        unix charset = UTF-8

        dos charset = cp936

[wxzy_app_admin]

        # 共享描述

        comment = app share admin

                path = /samba/app_admin

                browseable = yes

                read only = no

                force create mode = 0660

                force directory mode = 2770

                valid users = app_admin

二、创建samba用户和用户组

添加共享用户组:

代码语言:javascript复制
groupadd -r smb

useradd -s /sbin/nologin -G smb app_smb

useradd -M -d /samba/app -s /sbin/nologin -G smb app

useradd -M -d /samba/app_admin -s sbin/nologin -G smb app_admin

-M 不创建用户的home目录

-d 手动设置用户目录

-s /usr/sbin/nologin – 禁止用户shell登录

-G admin将用户加入到app_admin用户组.

代码语言:javascript复制
smbpasswd -a app

                New SMB password:hengtian@201612

smbpasswd -a app_admin

                New SMB password:admin

smbpasswd -e app

smbpasswd -e app_admin

三、创建samba共享目录以及文件夹权限设置

添加共享路径:

代码语言:javascript复制
cd /

mkdir samba

cd samba

mkdir app

mkdir app_admin

chown -R app:smb app

chown -R app_admin:smb app_admin

chmod 770 /samba/app

chmod 770 /samba/app_admin

重启

代码语言:javascript复制
sambda:systemctl restart smb

四、使用samba进行文件共享

方式1:文件夹挂载

1、安装cifs-utils软件包以支持samba的挂载(否则即使挂载没有报错也无法正常使用)

代码语言:javascript复制
yum install cifs-utils

2、创建挂载点

代码语言:javascript复制
mkdir /mnt/smbmount

3、进行条目挂载或把挂载条目写入/etc/fstab以使开机自动挂载

代码语言:javascript复制
mount -t cifs -o username=app_admin //172.16.137.236/wxzy_app_admin /mnt/smbmount

-o username –访问共享文件夹时候的用户

//172.16.137.236/wxzy_app_admin – 共享文件夹的共享地址

/mnt/smbmount –本地挂载映射路径

如果需要开机自动挂载

代码语言:javascript复制
Vim /etc/fstab

在最后一行添加

代码语言:javascript复制
//172.16.137.236/wxzy_app_admin  /mnt/smbmount cifs default,username=app_admin,password=123 0 0

如果需要针对多用户挂载参考:https://blog.csdn.net/kangvcar/article/details/76093904?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3

方式2:使用samba-client

代码语言:javascript复制
smbclient //172.16.137.236/wxzy_app -U app

五、关于samba的权限控制

samba的权限由两方面构成:一是目录本身的权限,二是samba的配置权限。最终权限定义是两者的最小交集。

在smb.conf中通过一下几个配置项配置sambe的权限

代码语言:javascript复制
       # 允许该指定共享目录可浏览

        browseable = yes

        # 设置是否允许匿名访问

        public = no

        # 允许访问共享目录的用户

        valid users = @smb

        # 读写控制共享目录的用户组

        write list = app_admin

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144796.html原文链接:https://javaforall.cn

0 人点赞