一.samba提供cifs协议实现共享文件(主要用户Windows与Linux的网络文件系统)
1.SMB文件共享,通用Internal文件系统(CIFS)也称为服务器信息块(SMB),是适用于Microsoft Windows服务器和客户端的标准文件和打印机共享系统。
2.Samba服务器可用于将Linux文件系统作为CIFS / SMB网络文件共享进行共享,并将linux打印机作为CIFS / SMB打印机共享进行共享
二.安装环境
Samba-common - Samba的支持文件
Samba-client - 客户端应用程序
Samba - 服务器应用程序
yum install samba samba-common samba-client -y
systemctl start smb
systemctl enable smb
三.添加smb用户
1.smb用户必须时本地用户
smbpasswd -a student
New SMB password: 输入smb当前用户密码
Retype new SMB password: 确认密码
pdbedit -L 查看smb用户信息
pdbedit -x smb用户 删除smb用户
2.以student登陆无法显示共享内容,主要是Selinux的开启无法正常访问
在SElinux开启情况下,修改的sebool值,打开访问家目录权限,打开后可以访问
setsebool -P enable_samba_home_dirs on 在selinux中设定smb用户可以访问自己的家目录
四.共享目录的基本设定
1.基本设置
编辑配置文件vim /etc/samba/smb.conf
workgroup = westos 工作组名称
[westos] 共享名称
comment = 对共享目录的描述
path = 共享目录的绝对路径
smbclient -L //172.25.254.128 -U student 可看到所创建的共享目录
2.当共享目录为用户自建立目录时,需要修改新建目录的上下文
semanage fcontext -a -t samba_share_t '目录名称(/.*)?'
restorecon -RvvF 目录名称
3.当共享目录为系统建立目录,为了不影响修改上下文对别的服务影响,修改SElinux的sebool值
setsebool -P samba_export_all_ro on 只读共享
setsebool -P samba_export_all_rw on 读写共享
系统目录文CONFIG /mnt
没有修改,无法看见文件
修改samba的读取权限后可以正常读取文件
开启只读共享后:smbclient //172.25.254.128/CONFIG -U student
五.samba的配置参数
1.匿名用户访问
guest ok = yes
map to guest = bad user 客户访问匿名
2.访问控制
hosts deny = 仅拒绝
拒绝128登陆
hosts allow = 仅允许
hosts allow =172.25.254.28,允许28登陆
valid users = 当前共享的有效用户
valid users = student 当前共享的有效用户为student
未添加共享的有效用户student ,无法访问
编辑配置文件vim /etc/samba/smb.conf,添加共享有效用户后可以访问
valid users = @student 当前共享的有效用户为student组
valid users = +student 当前共享的有效用户为student 组
新建用户lee,属于student组,属于有效访问组的用户
编辑配置文件vim /etc/samba/smb.conf为+student后,lee用户可以访问
3.读写控制
所有用户均可写
chmod o+w /mnt
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes
服务端
mount -o username=student,password=123 //172.25.254.128/CONFIG /mnt/
在客户端上以student身份将172.25.254.128/CONFIG挂载到/mnt上,测试可以写入
4.设定指定用户可写
write list = student 可写用户
用student用户挂载进入到服务机可以有写权限
但用lee用户挂载进入到服务机可以没有写权限
write list = +student 可写用户组
write list = @student
修改配置文件为write list =+student 表示student的这个组的用户都可以有写权限
在客户机用lee用户挂载,lee用户属于student组的用户
admin users = westos 共享的超级用户指定
在配置文件里设置共享的超级用户为lee
在客户端用lee挂载
之前创建文件所属人为lee,修改后为root
六.smb多用户挂载
1.在客户机上 yum install cifs-utils -y
2.创建访问时所需的用户名密码
vim /root/westos
username=student
password=123
chmod 600 /root/westos 只有root能读
3.多用户挂载
mount -o credentials=/root/westos,multiuser,sec=ntlmssp //172.25.254.100/CONFIG /mnt/
credentials=/root/westos 指定挂载时所用到的用户文件
multiuser 支持多用户认证
sec=ntlmssp 认证方式为标准smb认证方式
4.测试
su -student
ls /mnt
ls: cannot access /mnt: Permission denied 因为没有作smb的认证所以无法访问smb共享
cifscreds add -u lee 172.25.254.128
Password: smb用户lee的密码
ls /mnt 可以看到目录下的文件
cifscreds clear -u lee 172.25.254.128 清除认证后,用户lee无法访问
cifscreds add -u student 172.25.254.128 student认证后可以访问