一.samba介绍
1.提供cifs协议实现共享文件,主要用于windows与linux的网络文件系统
二.搭建环境安装服务
1.配置yum仓库
2.关闭防火墙
systemctl stop firewalld
3.安装软件,设置开机自动启动
yum install samba samba-common samba-client -y
systemctl start smb 开启samba服务
systemctl enable smb 设置开机自动启动
(samba-common samba的支持文件);(samba-client 客户端应用程序);(samba 服务器的应用程序)
三.添加smb用户
1.smb用户必须是本地用户
smbpasswd -a student (添加student用户)
New SMB password: 输入smb当前用户密码
Retype new SMB password: 确认密码
pdbedit -L 查看smb用户信息
pdbedit -x smb用户 删除smb用户
2.查看selinux的状态,如果是enforencing,修改samba服务的sebool值,并且打开家目录的访问权限。
getenforce 查看selinux的状态
setsebool -P enable_samba_home_dirs on(selinux是enforce的状态下)
3.以student用户的身份(客户端)去访问samba服务共享出来的student用户的家目录。
smbclient //172.25.254.124/student -U student 访问student用户的家目录
Enter student‘s password: 输入该用户的密码
四.设定共享目录
1.基本配置
编辑配置文件 vim /etc/samba/smb.conf
workgroup mkdir= westos 工作组的名称
[DATA] 共享目录的名称
comment = local directory 对共享目录的描述
path= /westos 共享目录的路径
查看创建的共享目录 smbclient -L //172.25.254.124 -U student
2.当共享目录为用户自己建立的目录时,需要修改新建目录的安全上下文(否则无法在共享目录中看到文件)
mkdir /westos 创立共享目录
touch /westos/linuxfile{1..3} 建立文件
ls -lZd /westos/ 查看目录的安全上下文
semanage fcontext -a -t samba_share_t ‘目录名称(/.*)?‘ (/.*)?表示匹配目录及目录以下所有文件
restorecon -RvvF 目录名称 刷新目录里内容的安全上下文
3.当共享目录为系统级目录,为了不影响修改安全上下文对别的服务的影响,修改selinux中的sebool值(否则无法看到文件)
编辑配置文件 vim /etc/samba/smb.conf
[CONFIG] 共享目录的名称
comment = config directory 对共享目录的描述
path= /mnt 共享目录的路径
以student身份查看共享的系统目录 smbclient //172.25.254.124/CONFIG -U student
ls 无法查看到文件
getsebool -a | grep samba 过滤出samba服务的sebool值
setsebool -P samba_export_all_ro on#只读共享
setsebool -P samba_export_all_rw on#读写共享
4.再次以student用户的身份去访问samba服务共享的文件
smbclient //172.25.254.124/CONFIG -U student
ls 可以看到目录下文件
五.samba的配置参数
1.匿名用户访问
编辑配置文件 vim /etc/samba/smb.conf
guest ok = yes
map to guest = bad user
2.访问控制
hosts deny = ip 只拒绝该主机访问
hosts allow = ip 只允许该主机访问
valid users = 用户 当前共享有效的用户
valid users = @student 当前共享的有效用户为student组
valid users = +student 当前共享的有效用户为student组
3.读写控制
服务端:
所有用户均可写
chmod o+w /mnt 给其他用户/mnt目录写权限
setsebool -P samba_export_all_rw on 改变selinux中sebool值,打开读写权限
vim /etc/samba/smb.connf
writable = yes 打开配置文件中的写权限
客户端:
mount -o username=student,password=redhat //172.25.254.124/CONFIG /mnt/ 以student身份将172.25.254.124共享的CONFIG挂载到/mnt上
测试读写权限
4.设定指定用户可写
编辑配置文件 vim /etc/samba/smb.conf
write list = student 可写用户
用student用户挂载目录,可以进行写操作;用lu用户挂载目录,没有权限进行写操作
weite list = +student 可写用户组
write list = @student 可写用户组(两种方式都表示组用户可写)
六.smb多用户挂载
1.在客户端安装cifs-utils软件
2.创建访问时所需要的用户名和密码
vim /root/westos (创建身份认证文件)
username=student
password=redhat (格式)
chmod 600 /root/westos 只有root拥有读写权限
3.多用户挂载
mount -o credentials=/root/westos,multiuser,sec=ntlmssp //172.25.254.124/CONFIG /mnt/
credentials=/root/westos 指定挂载时用到的用户身份认证文件
multiuser 支持多用户认证
sec=ntlmssp 认证方式为smb认证
4.测试
su - kiosk
ls /mnt
ls: cannot access /mnt: Permission denied#因为没有做smb的认证所以无法访问smb共享
(没有作smb的认证所以无法访问smb共享)
cifscreds add -u student 172.25.254.124 为用户tom认证
Password: smb用户student的密码
ls /mnt 可以看到/mnt目录下的文件
cifscreds clear -u student 172.25.254.124 清除认证后,用户lu无法访问
cifscreds add -u student 172.25.254.124 student认证后tom可以访问