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
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
smbclient //172.25.254.140/student -U student
注意student是必须是服务端有的smb用户
smb用户
注意:smb用户必须是服务端本地所拥有的用户
smbpasswd -a student ##student 必须是本机用户
pdbedit -L ##查看
pdbedit -x student ##删除setsebool -P samba_enable_home_dirs on ##-P永久生效(使用后可以查看用户家目录)
关闭状态时不能访问用户家目录
开启状态时可以访问用户家目录
samba共享目录
用户自己建立的目录需要修改安全上下文
semanage fcontxet -a -t samba_share_t ‘/gxml(/.*)?’
restorecon -FvvR /gxml/
##共享目录自建立目录时需要修改selinux属性,此方式只针对修改目录配置文件
vim /etc/samba/smb.conf
[共享名称]
comment = 共享说明
path = 共享目录路径
测试:
共享系统建立目录需要修改的linux属性,此方式修改针对所有目录,一旦开放selinux不保护目录访问
setsebool -P samba_export_all_rw on ##可以读写(开启后自建的目录也可以不用修改安全上下文)
setsebool -P samba_export_all_ro on ##只读测试:
注意:新建的目录没有修改安全上下文也可以访问
基本配置信息
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
永久挂载
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
322 [haha]
323 comment = sad dir
324 path = /sad
325 guest ok = yes
测试:
smbclient //172.25.254.140/haha -U guest
随便输入一个密码就行
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进行的)
因为挂载的时候是用zyx,所以属于的用户和组是zyx
write list = +zyx
mount //172.25.254.140/haha /mnt -o username=jsq,password=redhat
然后不能写
usermod -G zyx jsq
重新进入挂载点后可以写了
valid users = jsq
mount //172.25.254.140/haha /mnt -o username=zyx,password=redhat
不能挂载,只有jsq可以挂载
browseable = no
smbclient -L //172.25.254.140/haha -U student
haha没有显示
admin users = zyx
把写权限打开
文件的u是root
smb多用户挂载
yum install cifs-utils(在客户端安装)
vim /root/passfile
username=smb用户
password=smb用户密码
为了安全,可以chmod 600 /root/passfile
在客户端
mount -o credentials=/root/passfile,multiuser,sec=ntlmssp //172.25.254.140 /mnt ##multiuser表示多用户
credentials=/root/smbpasswd ##挂载时的用户认证
sec=ntlmssp ##其他用户的认证方式
此时超级用户可以进入/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
##其他用户添加认证,如果密码正确,可以查看,如果密码错误,不能重新添加,需要先删除再添加
cifscreds clear -u jsq 172.25.254.140