前提条件:
1、确认server和client分别是哪两台主机:
server : rhel7.3
client : windows10
2、实现两台主机的网络互联:
server: 192.168.100.10
ping 192.168.100.1(vmnet ip)
3、确认yum是否可用
[root@server ~]# yum clean all
[root@server ~]# yum repolist
先确认系统镜像是否连入虚拟机光驱(cd/dvd)
[root@server ~]# mount /dev/cdrom /media/
server服务端配置
[root@server ~]# yum -y install samba*
顺便创建一个标记文件用于实验的访问,并修改权限此标记文件也可为自己需要访问的文件
[root@server ~]# mkdir -p /opt/samba
[root@server samba]# touch flag
[root@server samba]# chmod -R o+w /opt/samba
查看Samba配置目录
smb.conf -> Samba的主配置文件
smb.conf.example -> Samba的示例文件
[root@server samba]# cd /etc/samba/
[root@server samba]# ls
lmhosts smb.conf smb.conf.example
进行selinux设置,参数于示例文件内
[root@server samba]# setsebool -P samba_domain_controller on
[root@server samba]# setsebool -P samba_enable_home_dirs on
[root@server samba]# chcon -t samba_share_t /opt/samba/
[root@server samba]# setsebool -P samba_export_all_rw on
编辑Samba的主配置文件
[root@server opt]# vim /etc/samba/smb.conf
加入:
[common]
comment =common directories #对共享目录的注释、说明信息
path = /opt/samba #Samba的共享目录
interfaces = 192.168.100.10/24 #提供服务的主机地址
hosts allow = 192.168.100. #允许访问的主机或者网段
browseable = yes #该共享目录对客户机是否可见
valid users = luna,tom,jeccy #可访问的用户名
write list = luna #是否具有可写权限
smb.conf文件的配置内容的含义:
[global]:全局设置
[homes]:用户目录共享设置
[printers]:打印机共享设置
[common]:自定义名称的共享目录设置
workgroup:所在工作组名称
security:安全级别,可用值为:share、user、server、domain
passwd backend:设置共享账户文件的类型
注意:Samba服务设置的读取、写入权限,优先级要低于文件系统中设置的权限
检测Samba配置文件格式是否正确
[root@server ~]# testparm
创建Samba用户(前提:必须是系统存在的用户)
[root@server ~]# useradd luna #先创建系统用户
[root@server ~]# useradd tom
[root@server ~]# useradd jeccy
[root@server ~]# passwd luna
[root@server ~]# passwd tom
[root@server ~]# passwd jeccy
[root@server ~]# smbpasswd -a luna #再创建为Samba用户
[root@server ~]# smbpasswd -a tom
[root@server ~]# smbpasswd -a jeccy
[root@server ~]# pdbedit -L #查看所有samba用户
启动samba服务并设置为开机自启
[root@server ~]# systemctl restart smb
[root@server ~]# systemctl restart nmb
[root@server ~]# systemctl enable smb
[root@server ~]# systemctl enable nmb
查看端口
[root@server ~]# netstat -pant
关于防火墙
如果要进行samba服务访问,则需要关闭防火墙才可进行访问;
命令为: systemctl stop firewalld (关闭防火墙并不安全)
查看防火墙状态命令为: systemctl status firewalld
打开防火墙命令为: systemctl start firewalld
如果不想关闭防火墙服务,可使用firewall-cmd命令添加规则放行服务
Client服务端配置
Windows作client:
CIFS特点:windows会自动记录上次访问的用户,所以第一次访问的用户,下一次仍旧默认使用该用户访问。
解决用户切换的方法:
进入cmd,输入net use * /del命令,等待若干分钟后,即可切换其他用户登录Samba服务器。
Linux作client:
(1)单用户访问:
方法一:使用Samba的Linux客户端软件访问
[root@client ~]yum -y install samba-client
[root@client ~]smbclient -U tom //192.168.100.10/common
或
[root@client ~]smbclient //192.168.100.10/common -U barnet%密码
smb: \> mkdir abc #测试tom写权限
smb: \> ls
smb: \>
C# 复制 全屏
方法二:使用挂载方式访问
[root@client ~]mount -t cifs -o username=tom,password=000000 //192.168.100.10/common /mnt
#-t格式:以cifs格式挂载(Samba默认的文件系统类型),-o选项:samba用户名和密码
[root@client ~]cd /mnt
[root@client mnt]ls
[root@client mnt]touch abc #测试tom写权限
touch: cannot touch ‘abc’: Permission denied
(2)多用户访问
[root@client ~]yum -y install samba-client cifs-utils
[root@client ~]mkdir -p /mnt/multi
[root@client ~]vim /etc/fstab
于末行添加://192.168.100.10/common /mnt/multi cifs username=tom,password=000000,multiuser,sec=ntlmssp 0 0
[root@client ~]mount -a #先使用tom获取common的读权限,注意:如果这步做掉了,后面的luna就获取不到common内容
[root@client ~]cd /mnt/multi
[root@client multi]ls
[root@client multi]touch abc #测试tom写权限
touch: cannot touch ‘abc’: Permission denied
[root@client ~]su - luna(创于client的用户)
[luna@client ~]cifscreds add -u luna(server的用户) server #使用luna登录并临时获取写权限
[luna@client ~]cd /mnt/multi
[luna@client multi]touch abc
[luna@client multi]ls
abc
如果创不成看看server的共享文件权限 可能samba需要给o+w权限
本博客转载于:https://www.cnblogs.com/zhengyan6/p/15656824.html