Linux - samba 目录共享 从无到有 简装版
环境
两台 centos7 虚拟机
服务端 ip11 - 192.168.1.11
客户端 ip12 - 192.168.1.12
目标
服务端创建目录/samba_share
挂载到客户端/mnt/samba_share
创建两个用户 Stark,Thor
stark 有读写权限
thor 仅读权限
部署步骤
服务端
安装相关软件
[root@ip11 ~]# yum install -y samba samba-client cifs-utils
创建用户及共享目录
[root@ip11 ~]# mkdir /samba_share #创建目录
[root@ip11 ~]# useradd stark;useradd thor #添加用户加分号可执行多条命令
[root@ip11 ~]# chcon -R -t samba_share_t /samba_share/ #设置selinux上下文权限
[root@ip11 ~]# setfacl -m u:stark:rwx /samba_share/ #设置文件夹的acl权限,rwx给stark
创建samba用户
#我这里设置的用户名密码一致
[root@ip11 ~]# smbpasswd -a stark
New SMB password:
Retype new SMB password:
[root@ip11 ~]# smbpasswd -a thor
New SMB password:
Retype new SMB password:
修改配置文件
[root@ip11 ~]# vim /etc/samba/smb.conf
- 在文件最后添加samba的相关配置
[sambashare] #在网络上要展示的共享目录名称
comment = Test samba #注释
path = /samba_share #要共享的文件目录
valid users = stark,thor #有效的用户
write list = stark #写权限的用户
browseable = yes #目录可被浏览
重启服务,设置开机自启动,设置防火墙
#samba需要配置smb,nmb两个服务
[root@ip11 ~]# systemctl restart smb nmb
#设置开机自启动
[root@ip11 ~]# systemctl enable smb nmb
#查看防火墙启没启动
[root@ip11 ~]# systemctl status firewalld.service
#如果是active,则需要放开samba端口,才能在其他电脑访问samba
[root@ip11 ~]# firewall-cmd --permanent --add-service=samba
#重新加载防火墙配置,使配置生效
[root@ip11 ~]# firewall-cmd --reload
#查看所有防火墙配置,存在samba即成功
[root@ip11 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client samba
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
- 至此,服务端就配置完成了,可以使用如下脚本查看samba状态
[root@ip11 ~]# smbclient -L localhost #查看本机samba共享情况
Enter SAMBA\root's password: #此处直接回车,没有密码
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
sambashare Disk Test samba `看到熟悉的名字,就说明成功了`
IPC$ IPC IPC Service (Samba 4.10.4)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA IP11
WORKGROUP FQ-201801270535
客户端
安装客户端需要的软件
[root@ip12 ~]# yum install -y samba-client cifs-utils
建用户,建文件夹
[root@ip12 ~]# useradd stark
[root@ip12 ~]# useradd thor
[root@ip12 ~]# mkdir /mnt/samba_share
查看对应的服务
#可以查看,说明理论上应该可以挂载
[root@ip12 ~]# smbclient -L 192.168.1.11
Enter SAMBA\root's password: #没密码,直接回车
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
sambashare Disk Test samba `还好熟悉`
IPC$ IPC IPC Service (Samba 4.10.4)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA IP11
WORKGROUP FQ-201801270535
配置挂载,修改/etc/fstab
[root@ip12 ~]# vim /etc/fstab
`在文件最后添加`
#//192.168.1.11/sambashare 对应的ip11的共享目录,这里的sambashare对应的配置文件里的[sambashare]
#/mnt/samba_share 对应的ip12客户端要挂载的位置
#cifs 要挂载的磁盘类型,这里是cifs
#user=stark,pass=stark 使用stark验证
#_netdev 指明通过网络传输
# 0 0 表示开机不检测
//192.168.1.11/sambashare /mnt/samba_share cifs defaults,user=stark,pass=stark,multiuser,_netdev 0 0
- 执行挂载命令
[root@ip12 ~]# mount -a #挂载fstab中的所有文件系统
[root@ip12 ~]# df -h #查看已挂载的磁盘
#如果可以看到熟悉的名字,说明挂载成功
文件系统 容量 已用 可用 已用% 挂载点
...
//192.168.1.11/sambashare 17G 4.9G 13G 29% /mnt/samba_share
...
测试用户权限
`thor 用户`
[root@ip12 ~]# su - thor
[thor@ip12 ~]$ cd /mnt/samba_share
[thor@ip12 samba_share]$ ls #所有用户首次访问共享目录,均需要获取认证
ls: 正在读取目录.: 权限不够
[thor@ip12 samba_share]$ cifscreds add 192.168.1.11 #该命令从服务端获取认证权限
Password: #服务端创建samba用户的时候对应的密码 我这里用户名密码一致
[thor@ip12 samba_share]$ ls
[thor@ip12 samba_share]$ touch test.txt #只读权限,不能创建文件
touch: 无法创建"test.txt": 权限不够
[thor@ip12 samba_share]$ mkdir test #只读权限,不能创建文件夹
mkdir: 无法创建目录"test": 权限不够
[thor@ip12 samba_share]$ exit
登出
`stark 用户`
[root@ip12 ~]# su - stark
[stark@ip12 ~]$ cd /mnt/samba_share
[stark@ip12 samba_share]$ ls
ls: 正在读取目录.: 权限不够
[stark@ip12 samba_share]$ cifscreds add 192.168.1.11 #该命令从服务端获取认证权限
Password: #用户名密码一致,对应服务端smbpasswd命令对应的密码
[stark@ip12 samba_share]$ ls
[stark@ip12 samba_share]$ mkdir test #stark用户拥有读写的权限
[stark@ip12 samba_share]$ touch test1.txt #stark用户拥有读写的权限
[stark@ip12 samba_share]$ ll #对应目录下存在创建的文件
总用量 0
drwxr-xr-x 2 stark stark 0 5月 19 14:16 test
-rwxr-xr-x 1 stark stark 0 5月 19 14:17 test1.txt
[stark@ip12 samba_share]$ exit
登出
查看服务端对应的目录,文件存在
[root@ip11 ~]# cd /samba_share/
[root@ip11 samba_share]# ll
总用量 0
drwxr-xr-x. 2 stark stark 6 5月 19 14:16 test
-rwxr--r--. 1 stark stark 0 5月 19 14:17 test1.txt
- 至此,所有配置结束。
问题汇总
bug.1. 拼写错误,服务端配置文件[sambashare]写成了[smabashare],导致挂载失败
bug.2. 服务端acl权限,未配置,导致stark虽然拥有读写权限,但是无法创建文件
至此.