简单整理下步骤,详细的见下文。

step1:安装samba

yum install samba samba-client samba-swat

step2:配置/etc/samba/smb.conf

centos修改samba端口 centos8配置samba_centos修改samba端口

step3:启动samba

/etc/init.d/smb restart
/etc/init.d/nmb restart

step4:增加samba用户

smbpasswd -a root

step5:其他设置(做成开机自启动的方式,编辑 /etc/rc.local)

/etc/init.d/iptables stop    // 关闭防火墙
setenforce 0                 // 关闭SELinux

step6:设置开机自启动

chkconfig --level 35 smb on
chkconfig --level 35 nmb on

然后restart下smb和nmb。

step7:在windows上或者linux用step4设置的账户密码登陆即可。

step8:改下linux ip为静态ip。编辑:/etc/sysconfig/network-scripts/ifcfg-eth0

centos修改samba端口 centos8配置samba_samba_02

=========================分割线========================

首先,在网上查到一份说明比较清晰的配置文章(详细点击此处),这里就不再赘述,该文章给出了从安装samba服务到samba具体配置的全过程,并有详细的解释。

下面是我按照上面提到的文章配置后的一些错误提示及解决方案。

我的smb.conf文件主要内容如下:

[global]
    security = share
[public]
    comment = Public Stuff
    path = /projects
    public = yes
    writable = yes
    browseable = yes

 

然后重启下smb和nmb服务之后。

 

/etc/init.d/smb restart
/etc/init.d/nmb restart

 

会出现如下错误:

 

windows下的错误提示为:可以浏览文件,但是无法新建文件、写入文件等等,如下图所示。

 

centos修改samba端口 centos8配置samba_linux_03

可以浏览文件。

centos修改samba端口 centos8配置samba_错误提示_04

不能写入文件。

 

linux下的错误提示为:

centos修改samba端口 centos8配置samba_centos修改samba端口_05

 

该错误的解决有2种途径。

一种是在smb.conf的[global]字段中加入

 

client lanman auth = yes
client ntlmv2 auth = no

 

另一种是将security = share改为security = user,即使用用户名密码进行连接。

如此,上述错误解决。

 

又遇到一个错误,可以浏览文件,可以新建文件,可以写入文件,但是不能删除文件或者重命名文件。

linux下的错误提示为:

centos修改samba端口 centos8配置samba_linux_06

该问题的解决方案为改变文件夹权限,需要对我们samba共享的文件夹属性进行更改,改为777。如下:

 

chmod 777 /projects/

 

如此,上述错误解决。

 

有时候会出现连接失败的错误。

windows下错误提示就是连接失败。

linux下的错误提示为:

这是因为smb在linux下没有配置成为开机自启动的服务。

chkconfig smb on
chkconfig nmb on

这2个命令可以解决该问题。

有时候会出现很奇怪的问题,比如在vs下编辑,不能保存,显示错误:没有权限写入,但是如果用记事本编辑/projects/里的文件又可以保存。这个是属主的问题,在linux下用chown改变文件属主为你的samba账户即可。

后来的解决办法是samba不用share模式,用user模式。

将windows下的用户名cj添加到samba用户中,

useradd cj
smbpasswd -a cj

并改变共享文件夹属性,

chown -R cj:cj /projects
chmod 777 /projects

解决了。

 

PS:

1. 有时候提示无法访问的时候,也可以试试换一个目录试试,比如我最开始的时候设置的共享目录为/home/cj/projects,提示无法访问,后来就把该目录换为/projects/,放在根目录下,就可以了。(这里应该还是用户权限的问题)

2. 防火墙没关闭可能也会影响samba共享,关闭防火墙的命令为:

/etc/init.d/iptables stop     关闭防火墙

3. SELinux没有关闭也可能会影响samba共享,关闭SELinux的命令为:

setenforce 0

或者去修改SELinux的配置文件,使之关闭。

再PS:

samba配置中一些常用命令

/etc/init.d/smb restart    启动smb服务
/etc/init.d/nmb restart    启动nmb服务
testparm    查看配置信息
pdbedit -L  查看有哪些smaba用户
smbclient //192.168.112.133/public -U cj    使用cj用户连接samba服务器
 
ll /projects/    查看/project/文件夹属性
vi /etc/samba/smb.conf     编辑samba配置文件
 
chkconfig smb on    启动smb服务
chkconfig nmb on    启动nmb服务
chkconfig --list    查看系统服务项

 

修改samba端口

在配置文件smb.conf的[global]字段中增加 smb ports = 端口号

  

 

曾今遇到的一个错误

在腾讯云上一台linux主机,想通过samba共享给本地windows或者本地linux,配置都正常,防火墙iptables和SElinux都关闭了,但是就是连不上。telnet看了下139(一般用在局域网共享)和445(一般用在Internet共享,不再同一个局域网)端口都无法连通,原因应该是电信运营商交换机那边直接封掉了这2个端口(应该是出于安全考虑,之前流行的那个NSA病毒啥的,有看到运营商封端口的新闻),后来通过配置smb.conf文件修改了samba共享的端口,就可以共享了。

但是问题又来了,共享给本地linux没问题,通过smbclient //192.168.112.133/public -U cj -p 10000连接没问题;但是共享给windows不知道怎么弄?在windows上映射网络驱动器没办法指定自定义端口。。。