Skip to content

samba服务器搭建

1 配置

在配置文件/etc/samba/smb.conf中

#共享文件设置参数
[share]      #自定义共享名称,共享路径对应显示的实际名称,常用项
comment =  This is share software         #共享描述,做一个说明
path  =  /home/testfile    #共享目录路径
browseable  =  yes/no      #设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
writable  =  yes/no        #设置共享是否具有可写权限
read only  =  yes/no     #设置共享是否具有只读权限
admin users  =  root     #设置共享的管理员,如果security =share 时,引项无效,多用户中间使用逗                            号隔开,例如admin users = root,user1,user2
# 设置允许访问共享的用户,例如valid users = user1,user2,@group1,@group2(多用户或组使用逗号隔
# 开,@group表示group用户组)
valid users  =  username 
invalid users  =  username    #设置不允许访问共享的用户

# 设置在共享具有写入权限的用户,例如例如write list  = user1,user2,@group1,@group2(多用户或组使
# 用逗号隔开,@group表示group用户组)
write list  =  username     
public  =  yes/no       #设置共享是否允许guest账户访问

guest  ok  =  yes/no    #功能同public 一样
create mask = 0700       #创建的文件权限为700
directory mode = 0700    #创建的文件目录为 700
force user = ubuntu      #客户端默认创建所属用户,设置后防止windows访问成为nobody, 常用项

2 添加用户

smbpasswd -a ubuntu  // 将ubuntu添加到samba用户组

3 重启服务

配置操作后需重启服务

ubuntu

sudo /etc/init.d/smbd restart

centos

常见问题

windows无法访问问题

graph TD
    A["cmd:gpedit.msc"]
    --> B["管理模板"]
    B --> C["网络"]
    C --> D["lanman工作站"]
    D --> E["启用不安全的来宾登陆:已启用"]

centos 服务器 windows无访问权限

确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.conf中允许了这项操作。       /usr/bin/setenforce 修改SELinux的实时运行模式  

setenforce 1 设置SELinux 成为enforcing模式

setenforce 0 设置SELinux 成为permissive模式  

如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数

  /usr/bin/setstatus -v  

?? 不关闭防火墙方法

setsebool -P samba_enable_home_dirs on
setsebool -P samba_domain_controller on
#/usr/sbin/setsebool -P allow_smbd_anon_write=1 
#chcon -t public_content_rw_t <共享文件路径>

Comments