Linux samba的安装与使用

摘要: 使用samba在Windows下访问Linux文件夹.

环境: CentOS Linux release 7.6.1810, Win10

samba的安装及配置

1
2
3
4
5
6
7
8
9
10
$ yum install -y samba # 安装samba
$ rpm -qa | grep samba # 检查samba安装情况
samba-common-4.8.3-4.el7.noarch
samba-client-libs-4.8.3-4.el7.x86_64
samba-common-libs-4.8.3-4.el7.x86_64
samba-libs-4.8.3-4.el7.x86_64
samba-common-tools-4.8.3-4.el7.x86_64
samba-client-4.8.3-4.el7.x86_64
samba-4.8.3-4.el7.x86_64
# 有上面这些说明安装成功了

打开samba配置: /etc/samba/smb.conf.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
---------------------- file: /etc/samba/smb.conf ----------------------

...

[global]
workgroup = MYGROUP
security = user # 安全级别, 默认为user, 即由samba验证账户, 在连接samba服务时需要提供

passdb backend = tdbsam

printing = cups
printcap name = cups
load printers = yes
cups options = raw

[home]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

...

以上默认配置勿需处理, 仅需要添加你的共享位置即可.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

...

[share sign] # 共享位置标识
comment = directory # 共享位置描述信息
path = * # 设置主机中的路径为共享位置所访问目录
browseable = yes # 可浏览
public = no # 非公有的, 隶属用户, 与global的安全级别相关
writeable = yes # 开启目录写权限
valid users = user # 指定能够访问该位置的用户
create mask = 0664 # 设置创建文件的权限
directory mask = 0775 # 设置创建目录的权限
force user = youname # 文件所属用户
force group = youname # 文件所属组
available = yes # 指定共享资源是否可用
unix charset = UTF-8 # 设置字符集

...

配置好后, 为samba设置用户, 这个用户可以是当前linux用户.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ sudo smbpasswd -a captzx # 为用户you设置密码
New SMB password:
Retype new SMB password:

# 设置目录权限
$ sudo chmod -R 775 captzx
$ sudo chown -R captzx:captzx captzx

$ sudo systemctl restart smb.service # 重启samba服务使配置生效

# 模拟登陆, 验证samba服务
$ sudo smbclient -U yourname //localhost/share sign # share sign即为smb.conf里的[share sign]
Enter MYGROUP\yourname password:
Try "help" to get a list of possible commands.
smb: \> qiut # 到这就说明smb服务共享位置成功了
smb: \> ls # ls能够打印出共享目录里的文件
...

$ chkconfig smb on # 设置samba开机启动

可能存在的问题:

1> SELinux阻挡访问目录. 使用smbclient访问目录是提示: NT_STATUS_ACCESS_DENIED
解决方案: 将SELinux从Enforceing改成Permissive模式

1
2
3
4
5
6
$ getenforce # 查看SELinux当前模式(1-Enforceing强制模式/0-Permissive宽容模式)
Enforceing

$ sudo setenforce 0 # 设置为宽容模式即可

$ vim /etc/sysconfig/selinux # 永久关闭 SELINUX=enforcing 改为 SELINUX=disabled

2> 防火墙阻止Samba连接. 外部链接失败.
解决方案: 关闭防火墙

1
2
3
4
$ systemctl status firewalld # 查看防火状态
$ systemctl stop firewalld # 暂停防火墙
$ systemctl disable firewalld # 关闭防火墙
$ systemctl enable firewalld # 重启防火墙

windows连接

如下图, 右键电脑映射一个网络地址, 文件夹需要填写samba服务所在主机的ip地址, 和共享文件夹位置share sign, 勾选使用其他凭据连接, 填写上面设置的samba账户和密码

avatar

如上图, 添加成功, 就可以随意的操作里面的文件了! avatar