SAMBA是一种局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
SAMBA共享默认只支持同时用一个用户挂载SMB共享,CentOS7中可启用多用户挂载功能客户端挂载samba共享目录后,在客户端登录的不同用户,访问同一个samba的挂载点,可获得不同权限,这样可以有效的管理和利用共享的功能来进行网络中的文件传输。
本次实验就是针对centos7的功能特性来进行的。
第一步安装samba,服务器配置
yum install samba systemctl start nmb smb
服务进程:
smbd 提供smb( cifs)服务 TCP:139,445
nmbd NetBIOS名称解析 UDP:137,138
有的人可能问了,你怎么知道是这两个服务的呢?其实当我们安装好一个包之后,我们可以使用rpm -ql samba来查看我们安装这个包之后,具体都安装了什么文件,我们可以在其中发现它的配置文件和服务名等等我们可以对其进行修改的文件,比如我们的samba包的服务名就是:
/usr/lib/systemd/system/nmb.service
/usr/lib/systemd/system/smb.service
所以启动他们的两个服务就ok了!
systemctl start nmb smb
然后确定共享的目录文件,比如/app/share,所以配置文件中我们这样写:
vim /etc/samba/smb.conf [smbshare] path=/app/share #指定共享文件夹 writable=no #可写开启 write list= @admins #可写组为admins组,@为组,不加@是用户
创建samba用户,和mysql一样,我们的samba的用户和linux的用户不是一回事,当然samba用户的机制和mysql的机制也不一样,如果要成为一个samba账号,必须是linux账号,而mysql就没有这方面的限制了。
useradd –s /sbin/nologin smbuser1 #创建一个不可登录的linux账号 smbpasswd -a smbuser1 #把linux账号加入smb账号,需要输入密码 smbpasswd -x smbuser1 #这条命令是删除创建的smb账号 gpasswd -a smbuser1 admins #加入smbuser1到admins
在此我加入了三个账号smbuser1,smbuser2,smbuser3到samba里,可以使用pdbedit -L 查看有哪些samba账号,当我们创建好这几个目录之后,就差不多可以访问了,我们的samba服务和windows的访问查看不win+R,\\ip 可以查看共享的目录,他们就可以瞅见自己的家目录了。
好奇心强的朋友,肯定已经开始尝试了,不过发现密码输入一次之后,再次登录直接进去了,无法进入smbuser2的账号上查看,这时候我们可以进入win+R的cmd中,使用net use查看,发现有一个远程连接在那,使用net use \\ip\ipc$ /del删除即可。
接下来就是我们的设置目录权限和selinux的,关于selinux我们直接使用了关闭,因为在实验中,不关闭有可能出现一些无法解决的位置错误,如果不嫌麻烦可以设置一下ACL权限,或者777的目录权限
setfacl -m g:admins:rwx /app/share/ #给admins组权限
然后我们使用samba客户端启用多用户挂载
yum -y cifs-utils mkdir /mnt/smb echo ‘username=smbuser1‘ >/etc/multiuser #账号写入/etc/multiuser echo ‘password=centos‘ >>/etc/multiuser #密码写入/etc/multiuser vim /etc/fstab #写入/etc/fstab开机启动 //smbserver/smbshare /mnt/smb cifs credentials=/etc/multiuser,multiuser,sec=ntlmssp 0 0 #cifs是挂载的格式,后面是选项credentials使用PATH账号密码 mount -a
挂载完了之后,要客户端和服务器端一样的账户useradd smbuser1,2,3,然后我们得多用户的就完成了!
原文:http://13296640.blog.51cto.com/13286640/1977033