准备与安装

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 禁用策略
setenforce 0

# 安装smb服务
yum install samba -y

配置

配置分为两部分:

  • global(全局)
  • share(共享)

global

网络相关配置(Network-Related Options)

参数说明
workgroupthe Windows NT domain name or workgroup name, for example, MYGROUP.
server stringWindows NT 描述说明
netbios name服务器名,限制15个字符,可以自定义,并非必须为当前主机名
interfaces指定监听的网卡,例如interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow允许访问的IP或IP段,例如hosts allow = 127. 192.168.12. 192.168.13.
hosts deny不允许访问的IP或者IP段
max connectionsmax connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
deadtimedeadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。

日志相关配置(Logging Options)

参数说明
log file日志文件路径
max log size日志文件大小上限,超过上限就轮转,单位KB

独立服务器相关配置(Standalone Server Options)

参数说明
security安全模式,可以是user、share、server、domain。建议配置security = user,用户认证
passdb backend用于存储用户信息,可以是tdbsam或ldapsam。

share

参数说明
comment该共享的描述
path共享目录路径
browseable浏览权限
writable写权限
available可用权限
admin users该共享的管理者
valid users允许访问该共享的用户
invalid users禁止访问该共享的用户
publicpublic用来指定该共享是否允许guest账户访问。
write list允许写入该共享的用户
guest ok同public
create mask创建文件时赋予文件的权限
directory mask创建文件夹时赋予文件夹的权限

配置文件示例

[global]
        workgroup = IF010
        netbios name = cloud.if010.com
        server string = If010 NAS Share
        security = user
        max connections = 300
        deadtime = 120

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

[Data]
        comment = Soft Directories
        path = /data
        public = no
        writable = yes
        browseable = yes
        available = yes
        admin users = root
        write list = user01,uesr02
        valid user = user01,uesr02
        create mask = 0755
        directory mask = 0755

修改完配置后,可以执行testparm检查/etc/samba/smb.conf的语法是否正确。

[root@localhost ~]# testparm 
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

用户的创建

创建不带home的用户

useradd -s /sbin/nologin -M test01
smbpasswd -a test01

创建带home的用户

useradd  -s /sbin/nologin test01
smbpasswd -a test01

关于useradd的用法

主要参数:
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。

关于smbpasswd的用法

主要参数:
-a:添加用户
-d:禁用用户
-e:启用用户
-x:删除用户
-n:把用户的密码设置成空

列出SMB用户
pdbedit -L

最后修改:2022 年 07 月 09 日
-