常见问题解答
T1GUI 沙盒环境下的安全隐私与权限指南
核心安全声明
FileShows 是一款基于沙盒(Sandbox)机制构建的文件管理工具,我们通过技术架构确保您的数据隐私:
- 隐私隔离:应用运行于独立沙盒内,遵循系统级权限约束,无法越权访问您的系统核心数据。
- 本地化处理:除必要的用户登录外,应用功能完全无需联网。所有文件扫描、分类、管理操作均在您的本地设备上完成,您可以在断网环境下正常使用并验证。
- 按需访问 (On-Demand Access):应用遵循“无交互不触发”原则。所有操作均需由用户显式指定目标目录后发起,应用不会在后台静默扫描或处理未经授权的文件。
- 数据零外流:我们不具备任何文件上传逻辑,不收集、不缓存、不上传您的文件内容或任何隐私元数据。
权限配置排查 (针对非 App Store 版本)
由于本应用属于独立分发应用(非 Mac App Store 下载),macOS 的自动授权机制有时会失效。若您遇到无法读取文件的问题,请按以下步骤操作:

1. 推荐方案:开启“完全磁盘访问权限”
这是解决文件管理器类应用在沙盒环境下权限受限最稳定、最有效的方法。
- 操作路径:进入 系统设置 -> 隐私与安全性 -> 完全磁盘访问权限 (Full Disk Access)。
- 操作方法:点击底部的 “+” 号,在应用程序中选择 FileShows,并确保其开关已开启。
- 安全验证:由于本应用具备完全离线处理的特性,授予此权限仅用于本地文件管理,您可以放心开启。
2. 解决权限列表不显示的问题
若您在“隐私与安全性 -> 文件和文件夹”中找不到本应用,通常是因为 macOS 系统的授权触发机制延迟。
- 解决办法:直接参考上述步骤开启“完全磁盘访问权限”,该权限优先级最高,涵盖了所有文件夹的选择性访问权限。
- 重置记录:若想重置所有权限请求记录,可在“终端”执行:
tccutil reset All com.iche2.fileshows
3. 关键提醒
- 重启生效:在系统设置中更改权限后,请务必重启 FileShows 应用。
- 显式授权:在应用内使用
Choose a directory功能时,请在系统弹窗中手动确认,应用仅会获得该选定目录的操作权。
T2GUI 沙盒环境下 SSH/rsync 远程同步指南
Q: 为什么应用在同步时提示“Operation not permitted”或权限错误?
A: 这是由于沙盒(App Sandbox)安全机制限制。
沙盒应用被禁止直接访问系统敏感目录(如 ~/.ssh)。即使您的终端可以免密登录,应用也无法读取其中的私钥和验证文件。要解决此问题,您需要为应用建立一个独立的非交互式认证环境。
解决方案:三个步骤实现自动化同步
1. 迁移私钥
将您的私钥文件(如 id_rsa 或 id_ed25519)从系统保护目录复制到一个普通目录(建议使用绝对路径,例如 ~/Documents/ssh_keys/)。
2. 修正文件权限(核心步骤) SSH 协议要求私钥必须保持严格的私有性。请在终端执行以下命令,否则 SSH 会拒绝加载该私钥:
chmod 600 ~/Documents/ssh_keys/id_rsa
3. 使用非交互式指令 在应用配置或终端测试中,通过特定的参数组合绕开沙盒限制。
终端验证示例
请根据您的需求选择命令。测试成功的标准是:指令运行后直接开始传输,全程无需手动输入密码或确认 "yes"。
使用 rsync 同步目录:
# 注意:若服务器端口不是 22,请在 ssh 后添加 -p [端口号]
rsync -avz -e "ssh -i /AbsolutePath/id_rsa -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" /local/path/ root@remote_host:/remote/path/
使用 scp 传输文件:
scp -i /AbsolutePath/id_rsa -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null /local/file root@remote_host:/remote/path/
参数深度解析
-i [AbsolutePath]:指定私钥位置。建议使用完整路径(如/Users/name/...)而非~/...,以确保沙盒环境能准确识别。BatchMode=yes:禁用所有交互提示。连接失败时立即返回错误,防止应用界面因等待密码输入而“假死”。StrictHostKeyChecking=no:自动接受远程服务器指纹,跳过手动确认步骤。UserKnownHostsFile=/dev/null:将主机指纹记录定向到空设备。解决沙盒无法读写系统known_hosts文件导致的权限冲突。
常见错误排查
- 提示 "Identity file ... not accessible":请检查路径是否正确,并确认应用是否有权访问该文件夹。
- 提示 "Permission denied (publickey)":请确认您的私钥是否已正确添加到远程服务器的
authorized_keys中。
Linux (Snap) 环境补充
若您使用 Snap 版本,受限于容器隔离机制,需手动开启 SSH 接口授权:
- 执行授权:在终端运行以下命令:
bash sudo snap connect fileshows:ssh-keys - 验证状态:执行
snap connections fileshows,若 Slot 栏位出现ssh-keys,即表示授权成功。 - 路径提醒:请确保脚本中引用私钥时使用绝对路径(参考前文说明)。
Linux (Flatpak) 环境补充
若您使用 Flatpak 版本,需在所有外部命令前添加 flatpak-spawn --host 前缀,以穿透沙盒直接调用宿主机资源。
1. 授权沙盒通信 在终端执行以下命令,允许应用调用宿主机进程接口(执行后请重启应用):
flatpak override --talk-name=org.freedesktop.Flatpak com.iche2.fileshows
2. 使用命令前缀
在任务脚本中,所有宿主机命令必须添加 flatpak-spawn --host 前缀。
示例:
* 文件同步:flatpak-spawn --host rsync -avz /src/path/ user@host:/dest/path/
* 压缩归档:flatpak-spawn --host gzip /path/to/file
核心优势 * 全命令通用:适用于所有需调用外部工具的场景。 * 继承配置:直接复用宿主机的 SSH 密钥、配置与环境变量。 * 路径说明:指令中的路径需使用宿主机的绝对路径。
注意:请确保宿主机已安装相关工具。只要系统终端能跑通的命令,加此前缀即可生效。