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 服务

linux学习共享服务之samba


systemctl start smb nmb  ##开启服务

systemctl enable smb nmb   ##服务开机自启

netstat -antlupe | grep smb  ##查看 smb 端口

netstat -antlupe | grep nmb ##查看 nmb 使用的端口

linux学习共享服务之samba

3.添加 smb 用户

smb 用户必须是本地用户

smbpasswd -a student #给本地用户设置 smb 密码,添加 smb 用户

New SMB password: #输入 smb 当前用户密码

Retype new SMB password: #确认密码

pdbedit -L #查看 smb 用户信息

pdbedit -x smb 用户 #删除 smb 用户

linux学习共享服务之samba

测试端

smbclient -L //172.25.254.134 -U student #使用密码登录 smb 用户

linux学习共享服务之samba


setsebool -P enable_samba_home_dirs on

测试端

smbclient //172.25.254.134/student  -U student

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

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

linux学习共享服务之samba

[westos]

共享名称

comment = local directory 对共享目录的描述

path = /smbshare 共享目录的绝对路径

workgroup = WESTOS

linux学习共享服务之samba

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

linux学习共享服务之samba

测试端

smbclient //172.25.254.134/westos -U student 登录 smb 用户查看公享目录

linux学习共享服务之samba

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

linux学习共享服务之samba

5.samba 的配置参数

匿名用户访问

guest ok = yes

map to guest = bad user


测试端访问控制

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

hosts allow = #仅允许

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

hosts deny = #仅拒绝

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

valid users = #当前共享的有效用户

valid users = westos #当前共享的有效用户为 westos

linux学习共享服务之samba

linux学习共享服务之samba

 linux学习共享服务之samba


valid users = @westos #当前共享的有效用户为 westos 组


valid users = +westos #当前共享的有效用户为 westos 组

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

linux学习共享服务之samba

 

 

#读写控制

所有用户均可写

chmod o+w /mnt

setsebool -P samba_export_all_rw on

vim /etc/samba/smb.conf

writable = yes

linux学习共享服务之samba

linux学习共享服务之samba


设定指定用户可写

write list = westos #可写用户

linux学习共享服务之samba

linux学习共享服务之samba


write list = +westos  #可写用户组

write list = @westos

 linux学习共享服务之samba

linux学习共享服务之samba


admin users = westos #共享的超级用户指定

 

 linux学习共享服务之samba


 linux学习共享服务之samba

 

6.smb 多用户挂载

  client 上

vim /root/westos

username=student

password=westos

chmod 600 /root/westos

yum install cifs-utils -y

linux学习共享服务之samba

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 共享

 

 linux学习共享服务之samba

cifscreds add -u westos 172.25.254.134

Password: ##smb 用户 westos 的密码

ls /mnt

linux学习共享服务之samba