一、下载地址
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 文件共享支持 如下图
