1.smaba是什么?
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
对于一些企业来讲,smb是一个很好解决文件共享的方案,这个软件可以在linux下运用,
smb支持混合型的共享:window和linux、windows和类unix、windows和windows,所以会很好用。
因为我没有windows虚拟机,因此直接做linux和linux之间的实验
一共两台主机,一个客户端,一个服务端
2.SMB文件共享:
实验步骤:
先配置两个虚拟机的ip
配置yum源
(以上操作大家应该都知道,我就不再重复了)
在client105上面:
yum install samba-client -y安装这个服务,我这个客户端才可以使用smb服务端
***在server205上面:***
yum search samb安装smb服务
yum install 3个一共需要安装三个
samba-client.x86_64 samba-common.x86_64 samba.x86_64
rpm -ql samba 查看
rpm -ql samba-common 查看
getenforce
vim /etc/sysconfig/selinux
getenforce
vim /etc/samba/smb.conf 查看配置文件里面的要求
mkdir /westos建立一个共享目录
semanage fcontext -a -t samba_share_t '/westos(/.*)?'更改安全上下文
restorecon -RvvF /westos加载
vim /etc/samba/smb.conf编辑配置文件
加入:[LEE]对外共享的总名称
path=/westos实际共享的目录
systemctl restart smb 重启
systemctl enable smb 开机启动
systemctl status firewalld
systemctl stop firewalld关闭火墙
id westos查看westos用户是否存在
useradd westos先建立westos用户
smbpasswd -a westos设置密码
pdbedit -L查看用户
cd /westos切换到共享目录下面
ls
touch file建立测试的文件
ls
在client105上面:
smbclient -L //172.25.254.111匿名用户不可以
smbclient -L //172.25.254.111/LEE查看对方共享出来的东西
smbclient //172.25.254.111/LEE -U westos加上用户之后查看共享目录
ls
mount //172.25.254.111/yyh /mnt -o username=westos,password=lee挂载才能使用
df
cd /mnt
ls
rm -rf * (read-only 服务本身不允许)
所以接下来就是在配置文件里写上该有的权力,这样才可以进行一系列的工作
########################################以下是在配置文件修改权限,之后在客户端进行测试;
服务端:
vim /etc/samba/smb.conf
加入:comment=westos dir 加入对这个共享目录的说明
systemctl restart smb.service
客户端测试:
列出信息smbclient -L //172.25.254.205/yyh,可以看到刚才的说明
服务端:
vim /ect/samba/smb.conf
browseable=no 隐藏这个共享目录,-L看不见,但是可以进去
systemctl restart smb
客户端测试:
smbclient -L //172.25.254.111/yyh 看不到LEE
smbclident //172.25.254.111/LEE -U westos 登陆进去可以
服务端:
vim /etc/samba/smb.conf
valid users=westos 客户端可以用来登陆服务端的用户身份
pdbedit -L查看smb用户(我的用户已经存在就不再建立了,但是命令还是有滴)
useradd lee
smbpasswd -a lee
pdbedit -L
假如系统本身就有此用户,比如student用户,就不用新建立,只需添加金smb服务里就行
smbpasswd -a student(student是系统本身的本地用户,现在加到smb服务里面)
pdbedit -L
pdbedit -x student删除
pdbedit -L
测试:
smbclient //172.25.254.111/LEE -U westos可以
smbclient //172.25.254.111/LEE -U lee 不可以
服务端:
valid users=+westos 属于westos组的用户才可以
usermod -G westos lee 将lee用户加入westos组
id lee
刚才lee不可以,现在lee就可以了
服务端:
writable =yes 登陆进去是可以rm删除和put上传(不识别touch)
setfacl -m u:lee:rwx /westos设定权限
测试:看是否符合设定
注意:服务和目录本身的写权力都要开启才可以
服务端:
write list =@westos westos这个组的用户才可以写(这个和writable=yes不能同时出现)
测试:
服务端:
guest ok =yes 使匿名用户可以
测试:直接可以
但是不能挂载
mount //172.25.254.111/LEE /mnt -o username=guest,password=""
加入map to guest = bad user 使匿名用户可以挂载
3.怎样实现smb的多用户挂载?
刚才在服务端将smb服务设置好之后
客户端实现挂载,对smb的共享目录进行修改
这个时候客户端以服务端lee身份实现登陆
现在客户端的linux用户也想使用smb服务
当linux用户直接可以查看root用户挂载在/mnt的东西时,这样是很不安全的
应该客户端地每一个用户在smb服务端均有自己的用户
实验步骤如下:
客户端:
mount //172.25.254.111/LEE /mnt -o username=lee,password=lee客户端挂载
df查看挂载
cd /mnt
ls
useradd linux
id linux
su - linux
cd /mnt
ls也可以看到root用户挂载后/mnt下面的东西
mount 可以看到是lee身份的smb
umount /mnt
df
yum install cifs-utils -y 安装可以实现多用户挂载的服务
vim /root/smbauth smb挂载用户身份的一个认证文件
之前挂载的时候用户是裸露在外面的,现在写在认证文件里面
username=lee
password=lee
chmod 600 /root/smbauth
ls -l /root/smbauth
mount //172.25.254.111/LEE /mnt -o credentials=/root/smbauth
mount(仍然可以看到挂载用户)
su - linux
cd /mnt
ls 还是可以看到共享的文件
exit
umount /mnt
mount //172.25.254.111/LEE /mnt -o credentials=/root/smbauth,sec=ntlmssp,multiuser
su - linux
cd /mnt
ls
被拒绝
4.现在为linux用户创建挂载用户
cifscreds --help
cifscreds add -u westos 172.25.254.111
cd /mnt
ls
此时就可以看了
cifscreds clear -u westos 172.25.254.111
(清理一些文件的东西,但是已经创建的samba用户的这个结果在,想要清除的话,就得关闭系统)
在服务端:
cd /westos
ll 在服务端是属于westos的
5.怎样实现永久挂载
在客户端:
先卸载掉之前临时挂载的
vim /etc/fstab
//172.25.254.111/LEE /mnt cifs defaults,credentials=/root/smbauth,sec=ntlmssp,multiuser 0 0
mount -a
df