ubuntu搭建samba

ubuntu搭建samba

os:ubuntu server 24.04

root用户搭建,使用root用户名具备读写权限,匿名用户仅有读权限

samba的账号密码解析:

1.在/etc/samba/smb.conf 中配置的用户必须是系统存在的用户(因为samba会

2.密码独立分开,系统密码存放与shadow中,而samba密码则smbpasswd进行保存,实现密码隔离

1.安装samba

1
 apt install samba

2.创建目录

1
2
mkdir -p /share/samba
chmod -R 777 /share/samba

3.添加系统用户到samba数据库

smbpasswd

1
2
#smbpasswd -a <系统现有用户名>
smbpasswd -a root

4.配置 Samba

编辑

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#共享名
[shared]
    #共享目录
    path = /share/samba
    #允许网络上的用户浏览该共享目录
    browseable = yes
    #设置为只读
    read only = yes
    #启用匿名
    guest ok = yes
    #创建文件umask
    create mask = 0664
    #创建目录umask
    directory mask = 0775
    #强制所有访问该共享目录的用户以 admin 用户身份操作有读写权限实现匿名也有读写权限(此配置和wite list对冲)
    #force user = root
    #明确指定只有 root 用户可以写入上传修改删除文件)。
    write list = root
5.重启/开机
1
2
systemctl restart smbd
systemctl enable smbd

centos搭建(历史搭建,忘记有效性)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash
#功能:创建samba共享,创建共享用户同时创建匿名目录everyone(权限777)
#1.安装samba
#2.创建用户
#3.1 创建共享基目录
#3.2 创建共享基目录/everyone目录权限777
#3.3 创建共享基目录/用户目录

#smb用户名
SMB_USER=<用户名>
#smb密码
SMB_PWD=<密码>
#smb共享目录
#SMB_SHARE=/data/smb_share
SMB_SHARE=/usr/share/nginx


#############################################
#永久关闭selinux
setenforce 0
sed -i 's@SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config

#永久关闭防火墙
systemctl stop firewalld
systemctl disabled firewalld





#安装samba
yum -y install samba








#创建用户
useradd -s /sbin/nologin -M $SMB_USER

#创建密码
(echo "$SMB_PWD";sleep 1;echo "$SMB_PWD") |smbpasswd -a $SMB_USER

#创建共享目录
mkdir -p $SMB_SHARE
mkdir -p $SMB_SHARE/everyone
mkdir -p $SMB_SHARE/$SMB_USER
#everyone权限
chmod -R 777 $SMB_SHARE/everyone


#smb配置
#备份
cp /etc/samba/smb.conf{,`date +%F_%T`}

#创建smb配置
echo "
[global]
    #工作组
    workgroup = workgroup
    #验证方式
    security = user
    #密码管理工具,使用samba的密码工具smbpasswd
    passdb backend = tdbsam

    #匿名访问用户名
    map to guest = Bad User
    guest account = nobody
    #日志文件存储位置和日志名称
    log file = /var/log/samba/%m.log
    #日志级别,默认为0,不记录日志
    log level = 2
    #限制每个日志文件的最大容量为1024KB,0代表不限制
    max log size = 1024

[everyone]
    comment=everyone
    #共享文件夹的目录,前提是已经创建好这个文件夹
    path=$SMB_SHARE/everyone 
    #允许浏览
    browseable = yes
    #可写
    writable = yes
    available = yes
    #公共
    public = yes
    #只读
    read only = no
    #guest访问
    guest ok = yes



[$SMB_USER]
    comment=$SMB_USER
    path=$SMB_SHARE/$SMB_USER
    browseable=yes
    writable=yes
    admin users=$SMB_USER
    valid users=root,$SMB_USER
    write list=root,$SMB_USER
    public=yes
    available=yes
    #create mask = 0777
    #directory mask = 0777
    read only = no
">/etc/samba/smb.conf



#启动samba
systemctl restart smb
systemctl enable smb