1、安装部分
yum install samba* -y
systemctl enable smb #smb服务随机启动
systemctl start smb #立即启动服务
2、配置部分(核心)
smb的核心配置主要在/etc/samba/smb.conf这个文件中。关于文件夹权限除了在smb中配置还要保证系统文件夹smb用户的权限。
2.1smb全局配置
下面以实际例子说明,重要部分看#号后面的注释(下同)
[global]
security = user #官网推荐配置,不做修改
passdb backend = tdbsam #官网推荐配置,不做修改
map to guest = Bad User #匿名用户能看到文件夹
workgroup = zxsoft
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
load printers = no
cups options = raw
2.2匿名用户有完全权限的配置
[tmp]
comment = tmp #标注提示
path = /home/data/pub #绝对路径
browseable = yes #是否可以浏览,(注意linux中对应文件夹对nobody开放x权限)
writeable = yes #是否可写 (注意linux中对应文件夹对nobody开放rwx权限)
guest ok = yes #这是决定匿名用户能不能打开此文件夹的要素
create mask = 0777 #文件写入系统时采用的文件权限(至于设不设看需求,如果需要非匿名用户上传到这个文件夹的内容不可修改则不设)
directory mask = 0777 #文件写入系统时采用的文件夹权限(至于设不设看需求,如果需要非匿名用户上传到这个文件夹的内容不可修改则不设)
tips:一定要注意对应系统文件夹的权限是否给足了nobody,否则会碰到权限问题的报错。
2.2匿名用户可见但只有指定用户(或组)才能修改的配置,与上面的配置重复部分不再说明。
[zx-share]
comment = share
path = /home/data/share
browseable = yes
guest ok = yes #举一反三下,这里如果是no会发生什么,聪明的你一定会想到什么。
writeable = yes
write list = @smb #拥有修改权限的用户(加个@代表组)
; valid users = @smb #可以登录的用户(加个@代表组)
create mask = 0775 #文件权限当然不能给匿名有写权限
directory mask = 0775 #文件夹权限当然不能给匿名有写权限
2.3完全私有文件夹,指定用户才能登录
[private-gu]
comment = private
path = /home/data/wang
writeable = yes
write list = wang
valid users = wang
create mask = 0700
directory mask = 0700
TIPS:如果是没个员工都搞一个配置实在是太麻烦了,别着急,其实有更好的办法,请看下面smb用户部分。
3smb账户与系统账户
要建smb账户首先同名系统账户要存在。
创建系统账户(指定账户目录,为啥要指定,其实很有用请看下文)
useradd –d /usr/zx -m zx
此命令创建了一个用户zx,其中-d和-m选项用来为登录名zx产生一个主目录/usr/zx(/usr为默认的用户主目录所在的父目录)
tips:如果需要将zx这个用户加入到smb组请使用这个系统命令# usermod -a -G smb zx
创建samba用户
[root@bananapi ~]# smbpasswd -a zxNew SMB password: #输入登入smb的密码
至此咱们配置算是结束了。
windows登陆samba
如果点文件夹有登陆框直接填账户密码即可,如果没有也不用担心
在cmd命令框下使用net use \\ip\ 密码 /user:zx
duang!登陆后发现多了个名为zx的文件夹,打开写入个文件,再查查服务器/usr/zx目录下多了个文件。没错这就是之前创建账户时指定的文件夹目录。创建私人文件夹,so easy!
附:
总结下smb常用的配置项目:
comment = grind’s file
path = /home/grind
allow hosts =host(subnet) #允许访问的ip,安全性很强哦
deny hosts =host(subnet) ##不允许访问的ip,排除坏人
writable = yes|no
user = user(@group)
valid users =user(@group)
invalid users =user(@group)
read list =user(@group)
write list =user(@group)
admin list =user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case =yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case =upper|lower
force user = grind
wide links = yes|no
max connections = 100
delete readonly =yes|no