Linux中的samba服务
1.samba的作用
- 提供CIFS协议实现共享文件
- CIFS (Common Internet File System) ,即通用Internet文件系统,CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现
2.samba的安装
yum install samba samba-common samba-client -y (总共需要安装三个软件)
systemctl start smb nmb (开启samba)
systemctl enable smb (设置samba开机启动)
3.添加smb用户
smbpasswd -a student (新建用户)
pdbedit -L (查看samba的用户)
pdbedit -x student (删除用户)
4.共享目录
vim /etc/samba/smb.conf (编辑samba的主配置文件)
写入:
[westos] (名称)
comment=/westos/ (对共享目录的描述)
path=/westos (共享目录的绝对路径)
systemctl restart smb (重启服务)
- 当需要共享的目录为用户自建的目录时,可以修改此目录的安全上下文来允许被访问
mkdir /westos ( 在根下建立一个文件夹)
semanage fcontext -a -t samba_share_t '/westos(/.*)?'(永久更改安全上下文)
restorecon -FvvR /westos/ (使更改生效)
- 当需要分享的目录为系统目录时,需要设置selinux的权限来允许被访问
setsebool -P samba_export_all_ro on (只读分享)
setsebool -P samba_export_all_rw on (读写分享)
测试:
在客户端:smbclient -L //172.25.254.104 -U student
smbclient //172.25.254.104/westos -U student
mount //172.25.254.104/westos /mnt -o username=student,password=westos
注意:
1.如果出现"TIME OUT"超时报错,请检查本地解析
2.如果出现"Unable to find suitable address"不能找到地址报错,请检查防火墙
5.samba的配置参数
/etc/samba/smb.conf
samba的主配置文件
允许匿名用户访问
125行左右 map to guest = bad user
[westos]下:guest ok = yes
samba的访问控制
[westos]下:
hosts allow = student (仅允许student用户访问)
hosts deny = student (仅拒绝student用户访问)
valid users = @student(允许属于student组的用户访问)
valid users = +student(允许属于student组的用户访问)
samba的读写控制
设定所有用户均可写:
chmod o+w /mnt
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes
设定指定用户可写:
[westos]下:
write list = student (设定student用户可写)
write list = +student(设定student用户组可写)
write list = @student(设定student用户组可写)
admin users = student (设定共享的超级用户为student)
6.samba在客户端的多用户挂载
客户端:
yum install cifs-utils -y
vim /root/smbpass写入:
username=student
password=lee (samba用户名和密码)
chmod 600 /root/smbpass
mount //172.25.254.104/westos /mnt -o credentials=/root/smbpass,multiuser,sec=ntlmssp
注意:
(credentials=/root/smbpas 指定挂载时所用到的用户文件)
(multiuser 支持多用户认证)
(sec=ntlmssp 认证方式为标准smb认证方式)
(服务端也需要安装cifs-utils)
测试:su - kiosk
且换到普通用户ls /mnt
Permission denied
(因为没有smb的认证所以无法访问smb共享)
cifscreds add -u student 172.25.254.104
ls /mnt
(可以查看smb共享文件)