Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。我们主要使用samba软件来完成cifs协议文件共享。
软件的安装 首先我们需要安装samba服务所需要的软件
yum install samba samba-common samba-client -y然后开启相关的服务
systemctl start smb nmb systemctl enable smb nmb然后基本的安装完成 用户的管理 samba用户的添加 smb用户必须是本地的用户 添加我们可以使用如下命令(zyc为本机已经有的用户)
smbpasswd -a zyc然后按照要求输入密码即可(密码无回显) 查看用户信息
pdbedit -L删除smb用户
pdbedit -x zyc为了防止SElinux阻止用户访问自己的家目录我们需要对其进行修改
setsebool -P samba_enable_home_dirs on首先我们需要进入samba的主配置文件中进行修改
vim /etc/samba/smb.conf进行一下修改 修改内容为 [共享的名称] comment = 对共享目录的描述 path = 共享目录的绝对路径 当目录为用户自建目录时我们需要进行以下操作
semanage -a -t smaba_share_t '目录名称(/.*)?' resrorecon -RvvF 目录的名称当共享目录为系统建立目录
setsebool -P samba_export_all_ro on #只读共享 setsebool -P samba_export_all_rw on #读写共享接下来进行测试
cd /mnt touch test{1..5} smbclient //192.168.173.150/test -U student之前我们在主配置文件中设置过共享目录,如果需要对用户的权限进行限制同样的我们也是在这个主配置文件中进行修改。
vim /etc/samba/smb.conf其中各个参数的意义分别为
hosts allow = #仅允许 hosts deny = #仅拒绝 valid users = #当前共享的有效用户 valid users = test #当前共享有效用户为test valid users = @test或者+test #当前共享的有效用户为test组用户读写权限的控制 如果要让所有的用户均可写
chmod o+w /mnt/ #修改共享目录的权限 setsebool -P samba_export_all_rw 1 #修改SElinux的bool值然后编辑主配置文件
vim /etc/samba/smb.conf加入writeble = yes 如果需要指定某个用户可写 需要进行如下修改,进入smb.conf中
write list = test #test用户可写 write list = +test 或者 @test #test组可写 admin users = test #共享的超级用户如果需要在远程客户机上进行挂载 我们需要进行以下的操作,首先在client上我们需要编辑认证文件
vim /root/zyc如上编辑好用户名和密码 为了这个文件可以被访问,我们需要修改其权限
chmod 600 /root/zyc然后安装cifs访问的软件
yum install cifs-utils -y然后进行挂载操作
mount -o credentials=/root/zyc,mutilpleuser,sec=ntlmssp //192.168.173.150/zyc /mnt/其中各个参数分别为 credentials=/root/zyc 指定挂载时所需要的用户文件 mutipleuser 支持多用户 sec=ntlmssp 认证为标准的smb认证方式