Cifs和Samba的基本概念

CIFS是实现文件共享服务的一种文件系统,主要用于实现windows系统中的文件共享,linux系统中用的比较少linux系统中利用CIFS文件系统实现文件共享,需要安装samba服务。它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。

samba作用

samba是一款软件,主要功能是提供cifs服务

samba服务器的安装及访问调试

yum install samba-client samba-common.x86_64 samba.x86_64 -y

更改samba端口 samba的端口_更改samba端口


systemctl start smb

systemctl stop firewalld.service

samba的基本信息
端口: 139/tcp 139/udp 445/tcp 445/udp
主配置文件:/etc/samba/smb.conf

基本配置信息
workgroup = WESTOS ##工作组的设定
server string = hello world ##全局共享信息
hosts allow = 172.25.254.223 ##客户端黑名单
hosts deny = 172.25.254.223 ##客户端白名单

测试:

smbclient -L //172.25.254.140 -U student

更改samba端口 samba的端口_xml_02


smbclient //172.25.254.140/student -U student

更改samba端口 samba的端口_vim_03


注意student是必须是服务端有的smb用户

smb用户

注意:smb用户必须是服务端本地所拥有的用户

smbpasswd -a student ##student 必须是本机用户

更改samba端口 samba的端口_vim_04


pdbedit -L ##查看

更改samba端口 samba的端口_更改samba端口_05


pdbedit -x student ##删除setsebool -P samba_enable_home_dirs on ##-P永久生效(使用后可以查看用户家目录)

关闭状态时不能访问用户家目录

更改samba端口 samba的端口_更改samba端口_06


更改samba端口 samba的端口_vim_07


开启状态时可以访问用户家目录

更改samba端口 samba的端口_vim_08

samba共享目录

用户自己建立的目录需要修改安全上下文

semanage fcontxet -a -t samba_share_t ‘/gxml(/.*)?’

restorecon -FvvR /gxml/

更改samba端口 samba的端口_ci_09


##共享目录自建立目录时需要修改selinux属性,此方式只针对修改目录配置文件

vim /etc/samba/smb.conf

[共享名称]

comment = 共享说明

path = 共享目录路径

更改samba端口 samba的端口_ci_10

测试:

更改samba端口 samba的端口_更改samba端口_11


共享系统建立目录需要修改的linux属性,此方式修改针对所有目录,一旦开放selinux不保护目录访问

setsebool -P samba_export_all_rw on ##可以读写(开启后自建的目录也可以不用修改安全上下文)

setsebool -P samba_export_all_ro on ##只读测试:

更改samba端口 samba的端口_更改samba端口_12


注意:新建的目录没有修改安全上下文也可以访问

基本配置信息

vim /etc/samba/smb.conf
89 workgroup = DZH ##工作组的设定

95 hosts allow = 172.25.254.140 ##允许140挂载

94 hosts deny = 172.25.254. ##不允许172.25.254.这个网段挂载

挂载

mount //172.25.254.140/haha /mnt -o username=zyx,password=redhat

更改samba端口 samba的端口_vim_13

永久挂载
vim /etc/fstab
//172.25.254.140/haha /mnt cifs defaults,username=zyx,password=redhat 0 0

samba匿名访问

vim /etc/samba/smb.conf

125 map to guest = bad user

更改samba端口 samba的端口_xml_14

322 [haha]
323 comment = sad dir
324 path = /sad
325 guest ok = yes

更改samba端口 samba的端口_vim_15


测试:

smbclient //172.25.254.140/haha -U guest

更改samba端口 samba的端口_ci_16


随便输入一个密码就行

samba共享目录的管理参数

vim /etc/samba/smb.conf

[haha]
comment = gxml
path = /gxml
guest ok = yes
writable = yes ##写权力开放
#write list = +lee ##写权力对lee组开放 +和@表示组(使用时记得注释writeable,用;注释)
#valid users = lee ##设定当前共享的有效用户
#valid users = @lee
#browseable = no ##当前共享是否可以显示(不影响操作,只关乎显示,用-L测试)
#admin users = lee ##设定lee用户为当前共享的root(建立出来的文加属于root)

测试:

writable = yes

##写权力开放后,给目录777的权限(给757也可以,操作是o进行的)

更改samba端口 samba的端口_ci_17

更改samba端口 samba的端口_vim_18


因为挂载的时候是用zyx,所以属于的用户和组是zyx

write list = +zyx

更改samba端口 samba的端口_ci_19


mount //172.25.254.140/haha /mnt -o username=jsq,password=redhat

然后不能写

更改samba端口 samba的端口_vim_20


usermod -G zyx jsq

更改samba端口 samba的端口_更改samba端口_21


重新进入挂载点后可以写了

更改samba端口 samba的端口_xml_22

valid users = jsq

更改samba端口 samba的端口_vim_23


mount //172.25.254.140/haha /mnt -o username=zyx,password=redhat

不能挂载,只有jsq可以挂载

更改samba端口 samba的端口_xml_24

browseable = no

更改samba端口 samba的端口_ci_25


smbclient -L //172.25.254.140/haha -U student

更改samba端口 samba的端口_vim_26


haha没有显示

admin users = zyx

把写权限打开

更改samba端口 samba的端口_ci_27

更改samba端口 samba的端口_xml_28


文件的u是root

smb多用户挂载

yum install cifs-utils(在客户端安装)

vim /root/passfile

username=smb用户

password=smb用户密码

更改samba端口 samba的端口_vim_29

为了安全,可以chmod 600 /root/passfile

在客户端

mount -o credentials=/root/passfile,multiuser,sec=ntlmssp //172.25.254.140 /mnt ##multiuser表示多用户

credentials=/root/smbpasswd ##挂载时的用户认证

sec=ntlmssp ##其他用户的认证方式

更改samba端口 samba的端口_更改samba端口_30

此时超级用户可以进入/mnt,其他用户进入不了

su - test

[test@love mnt]$ cifscreds add -u jsq 172.25.254.140

Password:

[test@love mnt]$ ls

123 234 asd file file1 file2 file6 meia wdt

更改samba端口 samba的端口_vim_31

##其他用户添加认证,如果密码正确,可以查看,如果密码错误,不能重新添加,需要先删除再添加
cifscreds clear -u jsq 172.25.254.140