一、服务端开启samba服务
(注:本例中服务端IP:10.1.30.87)
1.防火墙设置:放行samba服务
firewall-cmd --add-service=samba
或
irewall-cmd --permanent --add-service=samba
2.selinux设置
setsebool -P samba_export_all_rw=1 #读写共享
或
setsebool -P samba_export_all_ro=1 #只读共享
设置完后可输入命令
getsebool -a | grep samba
查看当前状态。
3.添加账户
smbpasswd -a root
输入上述命令后回车,会让输入两遍密码确认,以设置账户登陆密码,此密码不必与对应主机用户的保持一致。
需注意的是,samba客户端账户(这里以root为例)首先应存在于linux主机用户中,否则会导致添加失败。
4.修改配置文件
gedit /etc/samba/smb.conf
在配置文件smb.conf的最后加上
[Public] #共享文件夹的名字,可任意命名
comment = commonshare
path=/var #共享文件夹的绝对路径
writable = Yes #设置为可写,等价于read only=no
browseable = Yes #设置所有登陆用户都可见
5.重启samba服务
systemctl restart smb.service
二、客户端登陆共享目录
(注:本例中客户端IP:10.1.30.1)
对于Linux操作系统,输入
mount -t cifs //10.1.30.87/Public /mnt -o username=root
再按提示输入之前在服务端设置的登陆密码,即可将共享目录挂载到/mnt下。
对于windows系统,直接win+R,然后输入\10.1.30.87,回车后在弹窗内输入账户和密码,就可以看到如下界面
窗口中不仅出现了配置文件smb.conf中新增的Public文件夹,还出现了root这一家目录,这一原因是smb.conf中本身就包含如下内容:
[homes]
comment = Home Directories
valid users = %S, %D%w%S #valid users是允许的登入者,%S表示取代目前设定项目值
browseable = no #只有当前登陆用户可见
read only = no
inherit acls = Yes
如果想要避免家目录被共享,可以在上述内容中添加一行
available=No #大小写无所谓,配置文件里不区分
再次打开可以看到,root目录就没有了。