samba

1.samba

提供cifs协议实现共享文件

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

2.安装

yum install samba samba-common samba-client -y

systemctl start smb nmb

systemctl enable smb nmb

安装所需服务

wKioL1mUPl2SwZXCAAASUGwZbBU736.png

wKioL1mUPl3S4QKtAAAwVbyz674117.png

3.添加smb用户

smb用户必须是本地用户

smbpasswd -a student

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

Retype new SMB password: #确认密码


pdbedit -L #查看smb用户信息

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


setsebool -P enable_samba_home_dirs  on    ##在selinux中设定smb用户可以访问自己的家目录

匿名用户查看共享目录信息

wKioL1mUQNuxcB5EAAB-Q21eOlU208.png

添加student到smb用户,尝试添加不存在的用户westos不成功,用命令查看是否添加成功

wKioL1mUQNuTBXA4AACh4zD-jho019.png

student用户查看共享目录的信息

wKioL1mUQAPCGe1kAAB2HcfiUVY558.png

以student用户查看student共享目录,查看selinux状态为强制,更改状态为警告,再进行查看

wKioL1mUQAOhh_puAAERVn0fAFs292.png

已经可以在别的主机进行挂载

wKioL1mUQZCAkldlAAEuwxsq0GQ161.png

修改sebool值,打开家目录访问权限,设定smb用户可以访问自己的家目录

wKioL1mUQZHiexlZAACnOVdsQlQ903.png

wKioL1mUQfySjrXGAACkZWCwRTM237.png4.共享目录的基本设定

vim /etc/samba/smb.conf

[haha] 共享名称

comment =  对共享目录的描述

path = 共享目录的绝对路径

workgroup = WESTOS

更改域名为westos,允许172.25.254.0/24网段查看

wKioL1mUQj7hSzt5AABTH48Rxfs353.png

域名已被更改

wKioL1mUQlbxdzdsAABxP4cC9co956.png

创建两个共享目录,一个路径为自建的/westos,一个为系统建立目录/mnt

wKioL1mUQlehjUk9AABApAj4GqQ903.png

student用户登陆,可以看到新添加的共享目录

wKioL1mUQvGykm1HAACrP1IYqDQ980.png当共享目录为用户自建立目录时

semanage fcontext -a -t samba_share_t '目录名称(/.*)?'

restorecon -RvvF 目录名称

wKioL1mUQ0iS64fYAAGZQSq_whw755.png

当共享目录为系统建立目录

setsebool  -P samba_export_all_ro on #只读共享

setsebool  -P samba_export_all_rw on #读写共享

wKioL1mUQ2-zLaUJAAEpXLuf9ZE609.png

wKioL1mUQ3CA_5z6AADJHNwDM04178.png

5.samba的配置参数

#匿名用户访问

guest ok = yes

map to guest = bad user

在DATA目录配置下写入匿名用户可登陆

wKioL1mUQ6OSXqryAABKC1QGhEY738.png

wKioL1mUQ6Sxp0asAAAsFnugHto284.png

在26主机测试可以以匿名用户的形式挂载共享目录

wKioL1mUQ6ihfFqFAAE4ELW0Gfk799.png

26自动挂载配置

wKioL1mURNbjrRFQAAD-4lSLpNA233.png挂载成功

wKioL1mURH_xakzhAAEY08WhDN4237.png

#访问控制

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

挂载后尝试建立文件失败

wKioL1mURVGyOcaiAABTizxXApA853.png

更改配置为所有用户均可写

wKioL1mURVLQjW5JAABGfNoS_9M882.png

在126主机给/westos一个满权限

wKioL1mURVOwLEvxAAAQiYCulhA033.png

可以创建和删除文件

wKioL1mURVPy4P7YAABdKKKAn2E526.png

设定指定用户可写

write list = student #可写用户

write list = +student #可写用户组

write list = @student

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

配置CONFIG内容如下

wKioL1mUSJKjOxY9AAApJkNUaJE825.png

给与/mnt满权限,打开读写权限

wKioL1mUSJOyj2rsAADYVeh-_eE546.png

挂载共享目录到26主机的/mnt,可以创建文件和删除文件

wKioL1mUSJSTDyn0AAGZq3XacR8966.png

6.smb多用户挂载

创建新用户lee,且让lee成为smb用户

wKioL1mUS7KxvuUtAABNiYccJBw348.png

lee用户可以挂载,但权限不够

wKioL1mUS7Og1pjCAAGqScF0nw0835.png

添加student组可以执行读写操作

wKioL1mUTCajm4M-AAAy-l5EY6o183.png

把lee添加进student组

wKioL1mUTCfgy-ClAABXzKVB2nc049.png

可以删除

wKioL1mUTCejqiR2AABBcblRdY0579.png

设定lee登陆后创建的文件属于root

wKioL1mUTQiChAtHAAA5Y0UsW2M563.png

因为26主机中没有uid为1001的用户,所以显示的为1001,126主机中显示为lee

wKioL1mUTRGTJqpUAABhqQV91sk937.png

wKioL1mUTRmBQuKvAABR_Kkx5qk653.png

在client上

vim /root/haha

username=student

password=lee

chmod 600 /root/haha

yum install cifs-utils -y

wKioL1mUTheCbyPuAAAujYAo_LY834.png

wKioL1mUThfgd1gBAAAs6nKzWho776.png

mount -o credentials=/root/haha,multiuser,sec=ntlmssp //172.25.254.100/haha /mnt/


#credentials=/root/haha 指定挂载时所用到的用户文件

#multiuser 支持多用户认证

#sec=ntlmssp 认证方式为标准smb认证方式

wKioL1mUTk7hCjKTAAHb43nYYdc848.pngsu - kiosk

ls /mnt

ls: cannot access /mnt: Permission denied #因为没有作smb的认证所以无法访问smb共享

cifscreds add -u westos 172.25.254.100

Password: ##smb用户westos的密码

ls /mnt

wKioL1mUT6DysdEPAACPwYOI5_E185.png

wKioL1mUT7PSTC_OAACz9LZ-vFE646.png