#################
1.SMB的用处和怎么登陆
#################
用处是通过存储分离保护服务器的稳定
用法
server为服务器
172.25.254.128
设置好yum源
安装samba服务
yum install samba samba-common samba-client.x86_64 -y
开启服务
关闭火墙
关闭内核
添加一个用户
添加用户身份
smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
查看有什么用户
pdbedit -L
怎么删除
smbpasswd -x westos
为了实验需要删除后重新添加westos
客户端为desktop
172.25.254.228
配置好yum源
关闭火墙
关闭内核
安装samba服务
yum install samba-client.x86_64 -y
匿名访问
smbclient -L //172.25.254.128
不输入密码直接回车
直接访问
smbclient //172.25.254.128/westos -U westos
put上传服务端的/home/westos/文件到westos下
!ls能查看服务端/home/westos下的文件
挂载到/mnt下访问能在客户端创建文件保存到服务端
mount -o username=westos,password=westos //172.25.254.128/westos /mnt/
此时在客户端/mnt下创建的文件保存在服务端的/home/westos下
在服务端/home/westos/下查看文件
开机自动挂载,修改/etc/fstab文件
#############################
2.怎么设置smb配置文件和内核允许访问
#############################
打开配置文件
vim /etc/samba/smb.conf
更改组
记得重启服务
systemctl restart smb.service
打开内核
尝试登陆,此时无法登陆
conf文件的30行有提示
按照提示打开开关
setsebool -P samba_enable_home_dirs on
打开配置文件
在任意位置写下
hosts allow = 172.25.254.228
意思是允许某个ip登陆
这就是白名单
重启服务后在客户端登陆
任意位置写下
意思是允许某个ip不能登陆
hosts deny = 172.25.254.228
这就是黑名单
重启服务后在客户端登陆
##################
3.设置共享路径
##################
打开smb.conf文件
[linux]
324 comment = westos dir share
325 path = /westos
退出保存后重读服务
在根下创建目录westos
mkdir /westos
登陆后进不去
原因是内核检查安全上下文不匹配
修改westos的安全上下文后就能进去了
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF /westos/
查看安全上下文
smbclient //172.25.254.128/linux -U westos
但有一种情况就是我们设置共享路径为系统文件,
由于有别的服务会匹配原安全上下文我们不能随意修改
326
327 [opt]
328 comment = opt
329 path = /mnt
退出保存后重读服务
匿名用户登录失败后能显示我们添加的目录
smbclient -L //172.25.254.128
smbclient //172.25.254.128/opt -U westos
发现登陆进不去,原因是/mnt下的安全上下文不匹配
我们需要修改内核开关,使服务端的内核开启samba所有的读权限
setsebool -P samba_export_all_ro on
smbclient //172.25.254.128/opt -U westos再次登陆
此时无法上传文件原因是这个目录下写文件的权限没有开启
########################
4.设置用户在目录下的权限
########################
配置/etc/samb/sam.conf
126 map to guest = bad user
[linux]
324 comment = westos dir hare
325 path = /westos
326 writable = yes
327 ; write list = @westos
328 ; valid users = +student
329 browseable = yes
330 ; admin users = student
331 guest ok = ye
map to guest = bad user
设置匿名用户以什么身份登陆
设置在此目录下可写
writable = yes
设置在此目录下可写的组
write list = @westos
设置只能登陆此目录的用户身份
valid users = +student
设置能在此目录下浏览就是ls
browseable = yes
设置此目录下什么身份的用户有root权限
admin users = student
设置允许匿名用户登陆
guest ok = yes
于此同时设置126行匿名以什么身份登陆
(按照规范应该写在126行,但写在别的地方也能生效)**
(1)测试匿名登陆上传文件的效果
登陆命令为
smbclient //172.25.254.128/linux
上传一个文件anaconda-ks.cfg 有报错
这个错误是因为服务端/westos这个目录的权限不够
修改权限为777
修改后再次登陆上传
在服务端查看文件权限,nobody意思是匿名用户
(2)测试组可写权限
添加一个组
westos属于这个组
设置为组可写write list = @westos
完成后重启服务
此时匿名用户无法上传文件
此时属于westos组的westos能在此目录写文件(上传和删除)
(3)测试valid users = +student只有student能登陆
设置配置文件
添加用户student的身份
用westos登陆被拒绝
用student登陆成功
(4)设置某用户在这个目录下有root权力
表现方式为上传文件的所有人为root
以westos的身份上传文件
查看上传的文件的所有人
################
5.多用户不交叉登陆
################
在客户端以westos身份创建文件后客户端的普通用户student可以不通过认证查看文件,这不合理,我们需要设置一个认证方式
在服务端只保留浏览和写权限
加入一个用户身份student
在客户端
yum install cifs-utils
设置客户端root以westos的身份登陆
vim /root/smbpass
username=westos
password=westos
chmod 600 /root/smbpass
挂载登陆服务端
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.128/linux /mnt/
移动到mnt下
cd /mnt
创建root文件
touch root
切换到student
su - student
移动到mnt
cd /mnt
查看文件发现被拒绝
ls
为客户端的student添加在服务端的身份,
此时的student是服务端的student身份,
密码为服务端设置的密码
cifscreds add -u student 172.25.254.128
查看文件
ls
如果密码错误需要清除之前登陆的帐号
cifscreds clearall