惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
N
Netflix TechBlog - Medium
罗磊的独立博客
博客园 - 聂微东
美团技术团队
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园_首页
宝玉的分享
宝玉的分享
G
GRAHAM CLULEY
Microsoft Azure Blog
Microsoft Azure Blog
量子位
SecWiki News
SecWiki News
F
Fortinet All Blogs
J
Java Code Geeks
S
SegmentFault 最新的问题
V
V2EX
Martin Fowler
Martin Fowler
F
Full Disclosure
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
S
Security Affairs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
S
Secure Thoughts
S
Schneier on Security
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
Cloudbric
Cloudbric
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
V2EX - 技术
V2EX - 技术
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
C
Check Point Blog
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
Google Developers Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Tenable Blog
博客园 - 【当耐特】

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间
Samba 共享和权限控制 | 泠泫凝的异次元空间
Lxn's Area · 2022-02-26 · via 泠泫凝的异次元空间

在Ubuntu主机上使用Samba共享文件并进行权限控制

说明

  1. 本文的顺序基本上遵循操作流程,推荐先整体阅读本文,大概了解整个流程后再行操作。最好先在测试台或虚拟机内操作确认基本无误后再施行至生产环境。
  2. 本文全部操作均在root用户下操作。
1
apt update&&apt install -y samba

本文操作环境中的samba版本为:Version 4.13.17-Ubuntu

设定计划

假设这里有三个文件夹:

共享名实际路径可读可写只读用户
Data0/home/user0/data0user1user2
Data1/home/user0/data1user2-
Data2/home/user0/data2-任何人

确认好共享计划后,就可以开始了。注意,本文并未考虑到打印机的共享,如需在smb协议上共享打印机,可参考官方文档进行配置。

如需设置可读可写(完全开放)的共享文件夹,参看本站文章Samba免授权访问

添加用户

如果上述的用户仅用来做Samba共享权限控制的话,那么应该是既不能让这些用户登录到shell和本地登录,也不应该给这些用户创建对应的Home文件夹。

用下面的命令添加新用户:

1
adduser --no-create-home --disabled-login --shell /sbin/nologin --disabled-password [USER NAME]

--no-create-home选项意味着不会给这个用户创建home文件夹;
--shell参数指定了该用户的shell类型;
--disabled-login选项意味着禁用该用户登录;
--disabled-password选项意味着禁用该用户的密码。

执行该命令后会交互式询问一些信息,包括全名等,无特殊需要则全部留空(直接回车)即可。

阻止共享用户登录到ssh

编辑/etc/ssh/sshd_config

在其中加入一行:

1
DenyUsers user1 user2

或将多个用户添加至同一组,再添加到ssh配置文件中:

1
DenyGroups smbgroup group1

创建Samba共享账户

在上面创建好用户后,即可开始创建Smaba共享账户。请注意,将要创建的samba共享账户必须是本机上存在的本地账户

  • 创建账户:
    1
    smbpasswd -a user1
  • 删除账户:
    1
    smbpasswd -x user1
  • 修改密码:
    1
    smbpasswd user1

建立smb.conf配置文件

首先备份默认的配置文件,cp /etc/samba/smb.conf /etc/samba/smb.conf.bak,然后删掉默认的配置文件,再新建一个空的。

Global

这一节规定了服务器的大体信息,包括所在组和描述等信息。

1
2
3
4
[global]
workgroup = WORKGROUP
security = auto
min protocol = SMB2
  1. workgroup参数必须和局域网内需要连接的其他设备是一样的;
  2. security参数指定验证方式,值有4种:share不验证、user本地用户验证、server用专用的验证服务器验证、domain使用域控制器验证。后两种验证方式不常用,且基本不适用于家用环境,不过多介绍。
  3. server string指定服务器的描述信息;
  4. interfaces指定监听接口;
  5. min protocol指定samba运行的最低版本,提高该值可能会提高兼容性和性能,并解决一些问题,建议不指定。

共享字段

1
2
3
4
5
6
7
8
[Data0]
comment = data0
path = /home/user0/data0
browsable = yes
guest ok = no
force user = user0
write list = user1
read list = user2
  1. browsable控制是否在访问根目录时显示此共享文件夹
  2. force user:强制使用本地服务器的某用户读取,无论客户端使用哪个用户登录。可以设置为root但不建议生产环境中设置为root
  3. write list:可读取写入的用户列表,多个用户用空格隔开
  4. read list:仅读取的用户列表,多个用户用空格隔开
1
2
3
4
5
6
7
8
[Data1]
comment = data1
path = /home/user0/data1
browsable = yes
guest ok = no
force user = user0
write list = user2
force create mode = 0755
  1. force create mode:通过smb创建的文件的默认权限
1
2
3
4
5
6
7
[Data2]
path=/home/user0/data2
browseable = yes
writable = no
comment = wdc
public = yes
guest ok = yes
  1. writable控制是否可写入
  2. guest ok控制是否需要登录才能访问

samba 日志

待完善。

常见问题

无法写入,显示需要权限

查看正在写入的文件夹是否有当前设置的用户的写入权限,必要时可使用chown命令重置一下访问权限。

Failed to add entry for user test.

检查对应的本地账户是否存在。

iOS 18+连接SMB服务器时提示只读

/etc/samba/smb.conf配置文件中的[Global]配置块下添加:

1
vfs objects = streams_xattr

然后重启smb:systemctl deamon-reload && systemctl restart smb nmb,随后iPad或iPhone上推出后再重新连接即可。

原理上其实是iOS上特别依赖于文件额外的标签数据(ADS),但Linux这边服务端默认不提供支持,启用了服务端的xattr模块,即可正常在iOS上使用。

参考资料

排名不分先后

 上一篇

Windows Linux Git