linux学习共享服务之samba
####### samba #######
通用 Internet 文件系统(CIFS)也称为服务器信息块(SMB),是适用于 Microsoft
Windows 服务器和客户端的标准文件和打印机共享系统。
Samba 服务可用于将 Linux 文件系统作为 CIFS/SMB 网络文件共享进行共享,并将 Linux
打印机作为 CIFS/SMB 打印机共享进行共享。
Samba 服务的组成部分
1. 软件包:
Samba-common – Samba 的支持文件
Samba-client – 客户端应用程序
Samba – 服务器应用程序
2. 服务名称:smb nmb
3. 服务端口: 通常使用 TCP/445 进行所有连接。还使用 UDP137、UDP138 和 TCP/139 进行
向后兼容
4. 主配置文件:/etc/samba/smb.conf
1.samba 作用
提供 cifs 协议实现共享文件
2.安装(测试端也需要安装)
yum install samba samba-common samba-client -y ##安装 smaba 服务
systemctl start smb nmb ##开启服务
systemctl enable smb nmb ##服务开机自启
netstat -antlupe | grep smb ##查看 smb 端口
netstat -antlupe | grep nmb ##查看 nmb 使用的端口
3.添加 smb 用户
smb 用户必须是本地用户
smbpasswd -a student #给本地用户设置 smb 密码,添加 smb 用户
New SMB password: #输入 smb 当前用户密码
Retype new SMB password: #确认密码
pdbedit -L #查看 smb 用户信息
pdbedit -x smb 用户 #删除 smb 用户
测试端
smbclient -L //172.25.254.134 -U student #使用密码登录 smb 用户
setsebool -P enable_samba_home_dirs on
测试端
smbclient //172.25.254.134/student -U student
4.共享目录的基本设定
vim /etc/samba/smb.conf
[westos] 共享名称
comment = 对共享目录的描述
path = 共享目录的绝对路径
workgroup = WESTOS
#在 selinux 中设定 smb 用户可以访问自己家目录
student ##sma 用户登录查看家目录1)当共享目录为用户自建立目录时
mkdir /smbshare 建立共享目录及文件
touch /smbshare/westostest
vim /etc/samba/smb.conf
[westos]
共享名称
comment = local directory 对共享目录的描述
path = /smbshare 共享目录的绝对路径
workgroup = WESTOS
semanage fcontext -a -t samba_share_t '目录名称(/.*)?'
配置安全上下文
restorecon -RvvF 目录名称
eg
[[email protected] ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
[[email protected] ~]# restorecon -RvvF
/smbshare restorecon reset/smbshareunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restoreconreset/smbshare/westostestunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
测试端
smbclient //172.25.254.134/westos -U student 登录 smb 用户查看公享目录
2)当共享目录为系统建立目录
setsebool -P samba_export_all_ro on #只读共享
setsebool -P samba_export_all_rw on #读写共享
eg
[westos]
共享名称
comment = local directory
对共享目录的描述
path = /mnt
共享目录的绝对路径
[[email protected] mnt]# touch test{1..6}
[[email protected] mnt]# setsebool -P samba_export_all_ro on 可读权限
测试端
[[email protected] ~]# smbclient //172.25.254.134/westos -U student
5.samba 的配置参数
匿名用户访问
guest ok = yes
map to guest = bad user
测试端访问控制
hosts allow = #仅允许
hosts deny = #仅拒绝
valid users = #当前共享的有效用户
valid users = westos #当前共享的有效用户为 westos
valid users = @westos #当前共享的有效用户为 westos 组
valid users = +westos #当前共享的有效用户为 westos 组
#读写控制
所有用户均可写
chmod o+w /mnt
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes
设定指定用户可写
write list = westos #可写用户
write list = +westos #可写用户组
write list = @westos
admin users = westos #共享的超级用户指定
6.smb 多用户挂载
在 client 上
vim /root/westos
username=student
password=westos
chmod 600 /root/westos
yum install cifs-utils -y
mount -o credentials=/root/westos,multiuser,sec=ntlmssp //172.25.254.134/westos /mnt/
#credentials=/root/westos 指定挂载时所用到的用户文件
#multiuser支持多用户认证
#sec=ntlmssp认证方式为标准 smb 认证方式
su - student
[[email protected] mnt]$ ls
ls: reading directory .: Permission denied #因为student用户没有作 smb 的认证所以无法访问 smb 共享
cifscreds add -u westos 172.25.254.134
Password: ##smb 用户 westos 的密码
ls /mnt