centos7安装新版samba-4.14.3

如考虑后期版本漏洞安全等保等问题,能改用NFS就尽量用NFS吧,samba版本漏洞,我绝望了,最新版安装方式我也搞不定了------来自2022-11-17的觉悟; 以下是历史版本的安装方式!

通过yum安装samba会得到是一个带漏洞的低版本,以下是源码编译安装新版本4.14.3(2021-4-21发行)

关闭SELINUX

sed -i 's/SELINUX=enforcing/SELINUX=disabled/'   /etc/selinux/config

setenforce 0

安装Python3

yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

wget  https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

tar -zxvf Python-3.6.5.tgz && cd Python-3.6.5 && mkdir /usr/local/python3

./configure -prefix=/usr/local/python3

make && make install

ln -s /usr/local/python3/bin/python3  /usr/bin/python3

ln -s /usr/local/python3/bin/pip3  /usr/bin/pip3

python3  

安装samba依赖

yum install -y attr bind-utils docbook-style-xsl gcc gdb krb5-workstation libsemanage-python libxslt perl perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python python2-crypto gnutls-devel libattr-devel keyutils-libs-devel libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel  pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel

安装gnutls

       因直接samba编译安装会报GnuTLS version >= 3.4.7

wget https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz

tar -zxf nettle-3.4.1.tar.gz  && cd nettle-3.4.1

./configure --disable-openssl --prefix=/usr/

vim config.make

# 在CFLAGS一行后面加上-std=c99

make

make install

yum  -y  install libunistring-devel

wget  https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.4.tar.xz

tar  -xvJf  gnutls-3.6.4.tar.xz  && cd gnutls-3.6.4

./configure  --without-p11-kit

make

make install

       建立软连接

       ln -sf /usr/local/lib/pkgconfig/gnutls.pc /usr/lib64/pkgconfig/gnutls.pc

       ln -sf /usr/local/lib/libgnutls.so /usr/lib64/libgnutls.so

       ln -sf /usr/local/lib/libgnutls.so.30 /usr/lib64/libgnutls.so.30

安装samba

wget  https://download.samba.org/pub/samba/stable/samba-4.14.3.tar.gz

tar -zxvf samba-4.14.3.tar.gz  &&  cd  samba-4.14.3

       ./configure --disable-python --without-ad-dc --without-json --without-libarchive --without-acl-support --without-pam --with-shared-modules=\!vfs_snapper --without-ldap --without-ads

       make

       make install

     检测版本号

/usr/local/samba/sbin/smbd -V

开启samba共享文件夹

cat > /usr/local/samba/etc/smb.conf << EOF
[global]
    workgroup = WORKGROUP
    security = user
    map to guest = Bad User
    log file = /usr/local/samba/var/log.%m
    max log size = 50
    unix charset = UTF-8
#display charset = UTF-8
    guest account = nobody
    dos charset = cp936
    create mask = 777
    directory mask = 777
[myshare]
    comment = share for users
    path = /samba/myshare
    browseable = yes
    writable = yes
    public = no
    directory mode = 0777
    create mode = 0770
EOF
  1. 创建共享目录文件夹

       mkdir -p  /samba/myshare

  1. 先创建操作系统用户

       useradd   myshare  -s /sbin/nologin  --no-create-home

  1. 创建smb登录用户

       /usr/local/samba/bin/smbpasswd -a myshare

  1. 授权共享文件目录

chown -R myshare:myshare  /samba/myshare

启动

/usr/local/samba/sbin/smbd -D

netstat -tlnp|grep smbd

查看帮助

/usr/local/samba/sbin/smbd --help

关闭靠kill

可用以下脚本

vim   /resamba.sh
#!/bin/sh
port=445
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
#杀掉对应的进程,如果pid不存在,则不执行
if [  -n  "$pid"  ];  then
    kill  -9  $pid;
fi
sleep 3s  #3秒内CTRL+C 停止就是关闭
 clear
 echo 启动中............
/usr/local/samba/sbin/smbd -D
netstat -tlnp|grep smbd | grep 445 && echo  445-OK

  1. 添加环境变量

vim   /etc/profile

       export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin

source /etc/profile

  1. 添加开机启动

       vim /etc/rc.local

      /usr/local/samba/sbin/nmbd -D  #非必要

     /usr/local/samba/sbin/smbd -D

与旧版4.10的区别

  1. 不监听UDP(137,138),默认只使用TCP-445和139(当自定义了端口,139会不监听)

参考文献

samba源码编译安装(版本4.13.0)_灵葱的博客-CSDN博客_编译安装samba

samba-4.12.3版本 smb.conf 详细的配置内容解释 - Suozhiyuan - 博客园

Samba 4.14.5 Free Download, Linux | IceWalkers

samba-4.12.3版本 smb.conf 详细的配置内容解释 - Suozhiyuan - 博客园

http://www.linuxidc.com/Linux/2014-12/110459.htm Samba-4.1.14服务器安装和配置 http://www.2cto.com/os/201408/327930.html 【Linux笔记】sambav4.1.9源码安装及基本使用说明 http://blog.sina.com.cn/s/blog_627617bf0101s4ps.html samba4.1.6源代码部署及配置 (2014-04-04 09:41:00)转载 2016/6/14 15:23 由于ubuntu14.04.4麒麟版本使用: sudo apt-get install samba安装samba是:V4.3.9 共享文件时ubuntu上的samba V4.3.9会出错(崩溃)。 所以直接使用源码安装来共享文件了(从win7来访问ubuntu14.04.4麒麟版本)。 标签: samba linux资源共享 smb 分类: Samba SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。 samba服务器搭建: 1.解压samba-4.1.6.tar.gz得到samba-4.1.6目录 tar -xvzf samba-4.1.6.tar.gz 2.进入samba-4.1.6目录,在该目录下输入: ./configure --prefix=/usr/local sudo ./configure --prefix=/usr/local/samba-4.1.6 make make install sudo make install 注意:4.x版本的samba的build system是基于python的,必须安装有python2.5版本以上。(python3.x系列的不行) 如果系统没有符合条件的python版本,可以运行samba-4.1.6目录下的install_with_python.sh,会自动帮你安装python。(./install_with_python.sh /usr/local) 3.创建一个文件夹,用来共享文件 mkdir -p /home/fzuir/share chmod 777 /home/fzuir/share 4.samba配置 将samba源码目录samba-4.1.6中的samba-4.1.6/examples/smb.conf.default复制到安装目录,一般是/usr/local/samba/etc/中 cp ~/samba-4.1.6/examples/smb.conf.default /usr/local/samba/etc/ 修改配置文件 sudo vim /usr/local/samba/smb.conf (1)修改samba服务器的安全模式,samba的安全模式有:(默认是user,不修改也可) share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。 user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。 server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。 domain:域安全级别,使用主域控制器(PDC)来完成认证。 修改方法:在配置文件中查找security=user,把前面的注释#去掉。 (2)添加文件共享定义信息 修改方法:在配置文件末尾添加如下内容: [Share] comment=Shared Folder path=/home/fzuir/share #public=yes(允许匿名访问) writable=yes(可写) #readonly=yes(只读) valid users=fzuir (可访问用户名,组可用 @组名) create mask=0700 directory mask=0700 available=yes browseable=yes [rootroot] comment=rootroot Shared Folder path=/ #public=yes writable=yes #readonly=yes valid users=rootroot create mask=0700 directory mask=0700 available=yes browseable=yes (3)修改编码 在[global]段内添加如下三行: display charset=UTF-8 unix charset=UTF-8 dos charset=cp936 5.添加samba用户 添加fzuir这个网络访问账户,fzuir用户如果已存在则不用。 sudo useradd fzuir 上面只是新增了fzuir这个用户,却没有赋予本机登录密码,所以只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。 现在在samba中添加这个帐号 sudo /usr/local/samba/bin/smbpasswd -a fzuir sudo /usr/local/samba-4.1.6/bin/smbpasswd -a fzuir cm04@cm-System-Product-Name:/usr/local/samba-4.1.6/etc$ sudo /usr/local/samba-4.1.6/bin/smbpasswd -a rootroot Ignoring unknown parameter "display charset" New SMB password: Retype new SMB password: Added user rootroot. cm04@cm-System-Product-Name:/usr/local/samba-4.1.6/etc$ cm04@cm-System-Product-Name:/usr/local/samba-4.1.6/etc$ cm04@cm-System-Product-Name:/usr/local/samba-4.1.6/etc$ 6.测试并启动samba sudo /usr/local/samba/bin/testparm cm04@cm-System-Product-Name:/usr/local/samba-4.1.6/etc$ sudo /usr/local/samba-4.1.6/bin/testparm Load smb config files from /usr/local/samba-4.1.6/etc/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Unknown parameter encountered: "display charset" Ignoring unknown parameter "display charset" Processing section "[homes]" Processing section "[printers]" Processing section "[rootroot]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] dos charset = cp936 workgroup = MYGROUP server string = Samba Server server role = standalone server log file = /usr/local/samba/var/log.%m max log size = 50 dns proxy = No idmap config * : backend = tdb [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /usr/spool/samba printable = Yes print ok = Yes browseable = No [rootroot] comment = rootroot Shared Folder path = / valid users = rootroot read only = No create mask = 0700 directory mask = 0700 cm04@cm-System-Product-Name:/usr/local/samba-4.1.6/etc$ 重启samba: sudo /usr/local/samba/sbin/smbd restart sudo /usr/local/samba/sbin/nmbd restart sudo /usr/local/samba-4.1.6/sbin/smbd restart sudo /usr/local/samba-4.1.6/sbin/nmbd restart 7.在不同的系统之间访问samba (1)windows下:在文件管理器地址栏中输入\\samba服务器IP 即可以查看共享文件夹或者打印机。 \\192.168.0.8 (2)linux下: 方法1:使用smbclient 客户机以同样方式安装samba ①列出某个IP地址所提供的共享文件夹 sudo /usr/local/samba/bin/smbclient -L 192.168.0.1 -U username%password ②使用smbclient获取共享文件 sudo /usr/local/samba/bin/smbclient //192.168.0.1/Share -U username%password 执行成功后进入smbclient环境,出现命令提示符:smb:\> 这里可使用的命令有: ?:列出所有可用命令 cd:进入共享文件目录 del:删除某个文档 lcd:变换本机目录 ls:查看目前所在目录 dir:同ls get:下载单个文件 mget:下载多个文件 mput:上传多个文件 put:上传单个文件 rm:删除文件夹 exit:离开 方法2:使用mount进行挂载 可以使用mount挂载远程共享文件夹: sudo mount -o username=fzuir,password=123456 //192.168.0.1/Share /mnt/tmp
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值