文章目录
- 一 需求
- 二 系统环境准备
- 三 服务端配置流程
- 1 安装软件
- 2 创建用户组
- 3 创建共享目录并设置权限
- 4 创建用户并映射到samba和本地
- 5 修改配置文件
- 6 重启服务,并设置为开机自启
- 四 客户端配置流程
- 1 安装软件
- 2 创建挂载点(挂载目录)
- 3 挂载文件系统
- 4 检查挂载情况
- 五 对配置好的SMB文件系统进行检验
- 1 检查用户组内的用户
- 2 检查非用户组内的用户
一 需求
共享目录是/data
;
辅助组developer
内的成员具有读写权限;
辅助组developer
外的成员只有读权限;
用户dick
属于辅助组的成员,密码是123456
用户james
不属于辅助组的成员,密码是123456
二 系统环境准备
服务端IP:10.0.0.11
客户端IP:10.0.0.12
[root@client ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
[root@client ~]# uname -r
3.10.0-957.el7.x86_64
更新好yum源,便于安装需要的软件包。
[root@client ~]# cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-7 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
http://mirrors.aliyuncs.com/centos/7/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
-------------------------------------------
中间省略大量内容
-------------------------------------------
[contrib]
name=CentOS-7 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/7/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/7/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
关闭防火墙与SELinux
systemctl stop firewalld
systemctl disable firewalld
[root@server ~]# grep ^SELINUX /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
setenforce 0
三 服务端配置流程
1 安装软件
[root@server ~]# yum install -y samba samba-client
2 创建用户组
[root@server ~]# groupadd -r developer
3 创建共享目录并设置权限
[root@server ~]# mkdir /data
[root@server ~]# chown :developer /data
[root@server ~]# ll /data/ -d
drwxr-xr-x 2 root developer 6 Nov 25 04:10 /data/
给共享目录设置SGID
权限,且阻止其他用户进行写入
[root@server ~]# chmod 2775 /data
[root@server ~]# ll /data/ -d
drwxrwsr-x 2 root developer 6 Nov 25 04:10 /data/
4 创建用户并映射到samba和本地
创建属于developer
用户组的用户dick
[root@server ~]# useradd -s /sbin/nologin -G developer dick
[root@server ~]# smbpasswd -a dick
New SMB password:
Retype new SMB password:
Added user dick.
创建不属于developer
用户组的用户james
[root@server ~]# useradd -s /sbin/nologin james
[root@server ~]# smbpasswd -a james
New SMB password:
Retype new SMB password:
Added user james.
5 修改配置文件
[root@server ~]# vim /etc/samba/smb.conf
[global]
# workgroup参数后面随便填什么都行
workgroup = canway
security = user
passdb backend = tdbsam
=============
中间的内容省略
=============
[my_share_data]
path = /data
write list = @developer
修改完配置文件,记得检查一下语法是否正确。
[root@server data]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
看到提示OK
,就没有问题。然后回车键,会输出你刚才做的修改配置信息。
6 重启服务,并设置为开机自启
[root@server ~]# systemctl restart smb nmb
[root@server ~]# systemctl enable smb nmb
四 客户端配置流程
1 安装软件
[root@client ~]# yum install -y cifs-utils
2 创建挂载点(挂载目录)
[root@client ~]# mkdir -p /mnt/dick
[root@client /]# mkdir -p /mnt/james
3 挂载文件系统
此处挂载设备处写的格式是://挂载主机的IP/挂载主机配置文件的项目名称
[root@client /]# mount -o username=dick //10.0.0.11/my_share_data /mnt/dick
Password for dick@//10.0.0.11/data: ******
[root@client /]# mount -o username=james //10.0.0.11/my_share_data /mnt/james/
Password for james@//10.0.0.11/data: ******
然后在/etc/fstab
进行永久挂载
[root@client /]# tail -2 /etc/fstab
//10.0.0.11/my_share_data /mnt/dick cifs credentials=/root/dick.smb 0 0
//10.0.0.11/my_share_data /mnt/james cifs credentials=/root/james.smb 0 0
然后创建对应的用户名和密码文件
[root@client dick]# cat /root/dick.smb
username=dick
password=123456
[root@client dick]# cat /root/james.smb
username=james
password=123456
/etc/fstab
前两列分别是挂载设备和挂载目录。
第三列是文件系统类型,此处是cifs文件系统类型。
第四列的credentials
是cifs系统挂载时需要输入用户密码,由于是自动挂载,所以需要提供一个密码文件,在挂载时让系统自动读取该文件就可以获得密码,无需交互式输入密码。
4 检查挂载情况
首先将所有挂载的目录重新挂载一次,检查是否有报错。
然后检查挂载的具体信息。
[root@client /]# mount -a
[root@client dick]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 19G 4.1G 15G 23% /
devtmpfs 470M 0 470M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.1M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 197M 143M 55M 73% /boot
//10.0.0.11/my_share_data 19G 4.1G 15G 23% /mnt/dick
//10.0.0.11/my_share_data 19G 4.1G 15G 23% /mnt/james
tmpfs 98M 0 98M 0% /run/user/0
五 对配置好的SMB文件系统进行检验
1 检查用户组内的用户
首先在/mnt/dick
中进行创建文件并写入内容,在客户端一切顺利,且该文件属主是root用户
[root@client /]# echo 123456 > /mnt/dick/a.txt
[root@client /]# cd /mnt/dick/
[root@client dick]# ll
total 1024
-rwxr-xr-x 1 root root 7 Nov 25 2022 a.txt
[root@client dick]# cat a.txt
123456
在服务端,我们看到操作成功,且属主和属组信息发生变化。
[root@server ~]# cd /data/
[root@server data]# ll
total 4
-rwxr--r-- 1 dick developer 7 Nov 25 18:26 a.txt
[root@server data]# cat a.txt
123456
2 检查非用户组内的用户
在/mnt/james
中无法创建文件
[root@client ~]# echo 123456 > /mnt/james/a.txt
-bash: /mnt/James/a.txt: Permission denied
但可以进入到共享目录中,查看已经创建的文件内容
[root@client ~]# cd /mnt/james/
[root@client james]# ll
total 1024
-rwxr-xr-x 1 root root 7 Nov 25 2022 a.txt
[root@client james]# cat a.txt
123456
到此为止,SMB文件共享配置成功。