samba有三个模式: share|user|domain,平常使用也就是用user模式,也就是使用samba服务器本身的密码资料库,跟passsdb backend有关。
2019.11.7日更新,新装的samba为samba4版本,不再支持share模式,如果需要share模式,需要在security = user
下面添加map to guest = Bad User
,否则testparm会提示忽略share参数
安装软件:
yum install samba -y
配置SMABA:
vim /etc/samba/smb.conf
[global]
workgroup = SAMAB
netbios name = CentOS
server string = This is samba server
unix charset = utf8
#display charset = utf8 //CentOS7.5中已经不适用
dos charset = cp950
log file = /var/log/samba/log.%m
max log size = 50
load printers = no
#与密码有关的设定项目
security = user <==这行就是重点啦!改成user层级
passdb backend = tdbsam <==使用的是TDB资料库格式!
#分享的资源设定方面:删除temp加入homes与project
[homes] <==分享的资源名称,登入samba的账户的家目录,这个可以不考虑配置
comment = Home Directories
browseable = no <==除了使用者自己外,不可被其他人浏览
writable = yes <==挂载后可读写此分享
create mode = 0664 <==建立档案的权限为664
directory mode = 0775 <= =建立目录的权限为775
[project] <==共享资源
comment = smbuser's project
path = /home/project <==实际的Linux上面的目录位置
browseable = yes <==可被其他人所浏览到资源名称(非内容)
writable = yes <==可以被写入
write list = @users <==写入者有哪些人的意思
每次改完smb.conf都重新检查一下语法正确:
testparm
创建相应的目录:
mkdir /home/project
chgrp users /home/project
chmod 2770 /home/project
创建系统账号,加入到users组,并设置密码
useradd -G users smb1
echo 1234 | passwd --stdin smb1
新增samba账号,使用刚刚创建好的系统账号:
pdbedit -a -u smb1
输入两次密码即可
pdbedit -L #可以列出已存在的账号
smbpasswd smab1 #可以修改账号密码
pdbedit -x -u smb1 #可以删除账户
设置开机自启服务:
systemctl enable smb.service
systemctl enable nmb.service
systemctl start smb.service
systemctl start nmb.service
匿名登录smb服务器测试:
smbclient -L //smbserverip
使用账号登录smb服务器测试:
smbclient -L //serverip -U smb1
挂载测试:
mount -t cifs //serverip/smb1 /mnt -o username=smb1
防火墙设置:
firewall-cmd --zone=public --add-service=samba --permanent
firewall-cmd --reload
Selinux设置:
这一步很重要,不然没法正常用的
getsebool -a | grep samba #查看samba的selinux规则
setsebool -P samba_enable_home_dirs=1
chcon -t samba_share_t /home/project
#也可以用
restorecon -Rv '/home/project'
完事在windows上挂载试试就没问题了
本文由 Ethan 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。