Update nexus: fix conflicts and sync local changes
This commit is contained in:
@@ -1,69 +1,69 @@
|
||||
# Gatekeeper
|
||||
|
||||
> macOS 的安全机制,用于验证应用程序是否来自已识别的开发者可信来源。
|
||||
|
||||
## Overview
|
||||
Gatekeeper 是 macOS 的应用安全验证系统,旨在保护用户免受恶意软件的侵害。它会检查应用程序的来源和签名状态,拒绝运行未授权的软件。
|
||||
|
||||
## How It Works
|
||||
Gatekeeper 会在用户尝试运行从互联网下载的应用程序时触发验证流程:
|
||||
1. 检查应用是否来自 App Store
|
||||
2. 检查是否有有效的 Developer ID 签名
|
||||
3. 检查是否被标记为已隔离(quarantined)
|
||||
|
||||
## Quarantine Attribute
|
||||
macOS 使用扩展属性(Extended Attributes)来标记从互联网下载的文件:
|
||||
- `com.apple.quarantine`:标记文件来自互联网下载
|
||||
- `com.apple.metadata`:包含下载来源 URL 等元数据
|
||||
|
||||
## Removing Quarantine
|
||||
```bash
|
||||
# 递归移除 quarantine 属性(适用于目录)
|
||||
xattr -rd com.apple.quarantine /path/to/application/
|
||||
|
||||
# 验证(无输出表示解除成功)
|
||||
xattr /path/to/application/binary
|
||||
|
||||
# 查看 quarantine 状态
|
||||
xattr -l /path/to/application/binary
|
||||
```
|
||||
|
||||
## Gatekeeper Modes
|
||||
```bash
|
||||
# 查看当前 Gatekeeper 状态
|
||||
spctl --status
|
||||
|
||||
# 允许所有来源(不推荐,存在安全风险)
|
||||
sudo spctl --master-disable
|
||||
|
||||
# 查看应用状态
|
||||
spctl --assess --verbose /path/to/application
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
- **Homebrew**:安装后需解除 quarantine 才能运行
|
||||
- **FRP**:从 GitHub 下载的二进制文件需解除限制
|
||||
- **第三方工具**:任何未签名的可执行文件
|
||||
|
||||
## Security Considerations
|
||||
| 方法 | 安全性 | 适用场景 |
|
||||
|------|--------|----------|
|
||||
| Developer ID 签名 | 最高 | 正式发布的软件 |
|
||||
| App Store | 高 | 仅限 App Store 应用 |
|
||||
| 解除 quarantine | 低 | 自托管工具/开发环境 |
|
||||
|
||||
## Best Practices
|
||||
1. **仅对可信来源解除限制**:如 GitHub Release 官方二进制文件
|
||||
2. **使用 -r 递归参数**:确保目录内所有文件解除限制
|
||||
3. **验证文件完整性**:下载后检查 SHA256 校验和
|
||||
4. **保持 Gatekeeper 开启**:除非完全了解风险,否则不要禁用
|
||||
|
||||
## Related Concepts
|
||||
- [[launchd]] — macOS 服务管理器
|
||||
- [[frp]] — 需要解除 Gatekeeper 才能运行
|
||||
- [[Mac Mini M4]] — 需要处理 Gatekeeper 问题
|
||||
|
||||
## References
|
||||
- Apple Support: Safely open apps on your Mac
|
||||
- `man xattr`
|
||||
- `man spctl`
|
||||
# Gatekeeper
|
||||
|
||||
> macOS 的安全机制,用于验证应用程序是否来自已识别的开发者可信来源。
|
||||
|
||||
## Overview
|
||||
Gatekeeper 是 macOS 的应用安全验证系统,旨在保护用户免受恶意软件的侵害。它会检查应用程序的来源和签名状态,拒绝运行未授权的软件。
|
||||
|
||||
## How It Works
|
||||
Gatekeeper 会在用户尝试运行从互联网下载的应用程序时触发验证流程:
|
||||
1. 检查应用是否来自 App Store
|
||||
2. 检查是否有有效的 Developer ID 签名
|
||||
3. 检查是否被标记为已隔离(quarantined)
|
||||
|
||||
## Quarantine Attribute
|
||||
macOS 使用扩展属性(Extended Attributes)来标记从互联网下载的文件:
|
||||
- `com.apple.quarantine`:标记文件来自互联网下载
|
||||
- `com.apple.metadata`:包含下载来源 URL 等元数据
|
||||
|
||||
## Removing Quarantine
|
||||
```bash
|
||||
# 递归移除 quarantine 属性(适用于目录)
|
||||
xattr -rd com.apple.quarantine /path/to/application/
|
||||
|
||||
# 验证(无输出表示解除成功)
|
||||
xattr /path/to/application/binary
|
||||
|
||||
# 查看 quarantine 状态
|
||||
xattr -l /path/to/application/binary
|
||||
```
|
||||
|
||||
## Gatekeeper Modes
|
||||
```bash
|
||||
# 查看当前 Gatekeeper 状态
|
||||
spctl --status
|
||||
|
||||
# 允许所有来源(不推荐,存在安全风险)
|
||||
sudo spctl --master-disable
|
||||
|
||||
# 查看应用状态
|
||||
spctl --assess --verbose /path/to/application
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
- **Homebrew**:安装后需解除 quarantine 才能运行
|
||||
- **FRP**:从 GitHub 下载的二进制文件需解除限制
|
||||
- **第三方工具**:任何未签名的可执行文件
|
||||
|
||||
## Security Considerations
|
||||
| 方法 | 安全性 | 适用场景 |
|
||||
|------|--------|----------|
|
||||
| Developer ID 签名 | 最高 | 正式发布的软件 |
|
||||
| App Store | 高 | 仅限 App Store 应用 |
|
||||
| 解除 quarantine | 低 | 自托管工具/开发环境 |
|
||||
|
||||
## Best Practices
|
||||
1. **仅对可信来源解除限制**:如 GitHub Release 官方二进制文件
|
||||
2. **使用 -r 递归参数**:确保目录内所有文件解除限制
|
||||
3. **验证文件完整性**:下载后检查 SHA256 校验和
|
||||
4. **保持 Gatekeeper 开启**:除非完全了解风险,否则不要禁用
|
||||
|
||||
## Related Concepts
|
||||
- [[launchd]] — macOS 服务管理器
|
||||
- [[frp]] — 需要解除 Gatekeeper 才能运行
|
||||
- [[Mac Mini M4]] — 需要处理 Gatekeeper 问题
|
||||
|
||||
## References
|
||||
- Apple Support: Safely open apps on your Mac
|
||||
- `man xattr`
|
||||
- `man spctl`
|
||||
|
||||
Reference in New Issue
Block a user