Samba下载与安装


一、下载地址
Index of /repo/pkgs/samba/samba-4.21.2.tar.xz/sha512/c26311a60d3994561aa12c36e54bc37d1161ec1063aa9876ea03dee24984e9c827e5836dc86bc392e37193010275a642b960e775b5a9e029246ba56ae1697682
版本samba-4.21.2.tar.gxz
说明:最新版本需要python3环境

二、下载与安装Python3环境
Python Source Releases | Python.org
版本Python-3.10.12.tar.xz
#1.解压
tar -xvf Python-3.10.12.tar.xz
#2.配置
cd /home/soft/Python-3.10.12
./configure --prefix=/usr/python
#3.编译安装
make
make altinstall
#4.验证安装
/usr/python/bin/python3.10 --version
#5.创建符号链接
ln -s /usr/python/bin/python3.10 /usr/bin/python3
python3 --version

三、安装samba

#1.上传到/home/soft,使用
tar -xvf samba-4.21.2.tar.xz

#2. 进入解压后目录的子目录source,因为代码在里面
cd samba-4.21.2

#3.安装相关依赖

yum update -y

yum install -y dnf-plugins-core
yum install -y epel-release

yum -v repolist all
yum config-manager --set-enabled powertools -y

yum install -y \
    --setopt=install_weak_deps=False \
    "@Development Tools" \
    acl \
    attr \
    autoconf \
    avahi-devel \
    bind-utils \
    binutils \
    bison \
    ccache \
    chrpath \
    crypto-policies-scripts \
    cups-devel \
    curl \
    dbus-devel \
    docbook-dtds \
    docbook-style-xsl \
    flex \
    gawk \
    gcc \
    gdb \
    git \
    glib2-devel \
    glibc-common \
    glibc-langpack-en \
    glusterfs-api-devel \
    glusterfs-devel \
    gnutls-devel \
    gnutls-utils \
    gpgme-devel \
    gzip \
    hostname \
    htop \
    jansson-devel \
    jq \
    keyutils-libs-devel \
    krb5-devel \
    krb5-server \
    krb5-workstation \
    libacl-devel \
    libarchive-devel \
    libattr-devel \
    libblkid-devel \
    libbsd-devel \
    libcap-devel \
    libcephfs-devel \
    libicu-devel \
    libpcap-devel \
    libtasn1-devel \
    libtasn1-tools \
    libtirpc-devel \
    libunwind-devel \
    libuuid-devel \
    libxslt \
    lmdb \
    lmdb-devel \
    make \
    mingw64-gcc \
    ncurses-devel \
    openldap-devel \
    pam-devel \
    patch \
    perl \
    perl-Archive-Tar \
    perl-ExtUtils-MakeMaker \
    perl-Parse-Yapp \
    perl-Test-Simple \
    perl-generators \
    perl-interpreter \
    pkgconfig \
    popt-devel \
    procps-ng \
    psmisc \
    python3 \
    python3-cryptography \
    python3-devel \
    python3-dns \
    python3-gpg \
    python3-iso8601 \
    python3-libsemanage \
    python3-markdown \
    python3-policycoreutils \
    python3-pyasn1 \
    python3-requests \
    python3-setproctitle \
    quota-devel \
    readline-devel \
    redhat-lsb \
    rng-tools \
    rpcgen \
    rpcsvc-proto-devel \
    rsync \
    sed \
    sudo \
    systemd-devel \
    tar \
    tracker-devel \
    tree \
    wget \
    which \
    xfsprogs-devel \
    xz \
    yum-utils \
    zlib-devel

# 4.配置信息
./configure --prefix=/usr/local/samba

#5.编译安装
make
make install

#6.将原来解压的目录的子目录 examples 中的 smb.conf.default 配置文件复制到上面的lib目录中去(记得把.default去掉)
cp /home/soft/samba-4.21.2/examples/smb.conf.default /usr/local/samba/etc/smb.conf

#7.在 /etc/ld.so.conf 的文件中加入一行 /usr/local/samba/lib
vi /etc/ld.so.conf
/usr/local/samba/lib

#7.更新库文件
ldconfig

三、配置samba

#1.添加用户并将用户添加到samba用户,设置密码
adduser ${要创建的用户名}
/usr/local/samba/bin/smbpasswd -a ${要创建的用户名}
#查看samba用户
/usr/local/samba/bin/pdbedit -L

#2.配置samba文件
vi /usr/local/samba/etc/smb.conf
# 全局配置
[global]
netbios name = samba #连接的别名,如//samba连接
security = user #访问方式,user用户登录方式
workgroup = MYGROUP
hosts allow = 211.66.87. 211.66.86. 127. #允许访问的网段
#开启审计
log file = /var/log/samba/%m.log
max log size = 500000 #以kb为单位,超过大小会新建,旧的文件名.old
log level = 2

#注释或删除标有[home]的配置项

# 共享文件配置(下拉到smb.conf最下面写入)
[myshare] #共享文件名称
comment = Home Public Folder
path = /home/${文件名} #共享文件路径
valid users = ${用户名} #可访问文件的用户,多用户用','分隔,组用@组名
public = no
writable = yes
printable = no
create mask = 0765
# 添加回收站功能
vfs object = recycle
recycle:repository = deleted/%U
recycle:versions = Yes
recycle:keeptree = Yes
recycle:maxsixe = 0
recycle:exclude = .tmp|.mp3
recycle:noversions = *.doc

权限配置
实现不同同一工作组下不同用户访问权限不同
一、修改配置文件
vi /usr/local/samba/etc/smb.conf
例如
#工作文件共享
[Work]
path = /home/samba/Work
valid users = @developer #组成员访问
read only = no
create mask = 0776
directory mask = 0776
vfs object = recycle
recycle:repository = deleted/%U
recycle:versions = Yes
recycle:keeptree = Yes
recycle:maxsixe = 0
recycle:exclude = .tmp|.mp3
recycle:noversions = *.doc
#素材文件共享
[Material]
path = /home/samba/Material
valid users = @developer
read only = yes
write list = admin #可修改文件的人员
create mask = 0775
directory mask = 0775
vfs object = recycle
recycle:repository = deleted/%U
recycle:versions = Yes
recycle:keeptree = Yes
recycle:maxsixe = 0
recycle:exclude = .tmp|.mp3
recycle:noversions = *.doc
二、文件权限创建和设置
创建文件,权限设置为775
mkdir 文件名
chown -R admin:developer 文件名
chmod -R 775 文件名
1、根据角色配置权限
#设置目录权限
setfacl -R -m u:admin:rwx ${文件路径}(/home/samba/Material)
setfacl -R -m u:user:rx ${文件路径}(/home/samba/Material)
#在目录下新创建的文件和子目录都会自动继承这些 ACL 规则,使得新创建的文件和目录默认就允许用户 admin 拥有读、写和执行权限
setfacl -R -m d:u:admin:rwx /home/samba/Material
setfacl -R -m d:u:user:rx /home/samba/Material
#查看ACL的权限配置情况 getfacl /home/samba/Material
2、根据用户组配置权限
setfacl -R -m g:developer:rwx ${文件路径}
setfacl -R -m d:g:developer:rwx ${文件路径}
之后创建的用户如果需要写权限,可以在配置文件的write list中添加即可

四、启动samba

#1.检查配置文件是否有语法错误
/usr/local/samba/bin/testparm

#2.启动服务
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D

#3. 用systemctl管理
vi /etc/systemd/system/samba.service
#添加下面内容
[Unit]
Description=Samba SMB and NMB Daemons
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/smbd -D
ExecStartPost=/usr/local/samba/sbin/nmbd -D
ExecStop=/usr/bin/killall smbd nmbd
Restart=always

[Install]
WantedBy=multi-user.target

#刷新配置
systemctl daemon-reload
#开机自启
systemctl enable samba.service
systemctl start samba.service

#4. 连接方式
Win + R】输入“\\服务器地址

如果连接出现下面错,按步骤执行

1、【Win + R】打开在“运行”对话框,
2、在“打开(O)”位置输入:control,点击“确定”,打开“控制面板”对话框。
3、在“控制面板”中点击“程序与功能”,打开“程序与功能”对话框。
4、在“程序与功能”对话框中点击“启用或关闭 Windows 功能”,弹出“Windows 功能” 对话框。
5、在“Windows 功能” 对话框勾选以下内容并点击“确定”进行安装:
☑ SMB 1.0/CIFS 文件共享支持 如下图