docs: explain blocked plugin ownership repair · openclaw/openclaw@cbc228f
steipete
·
2026-05-06
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -583,6 +583,14 @@
|
583 | 583 | "source": "Manage plugins", |
584 | 584 | "target": "管理插件" |
585 | 585 | }, |
| 586 | + { |
| 587 | +"source": "Plugin path ownership", |
| 588 | +"target": "插件路径所有权" |
| 589 | + }, |
| 590 | + { |
| 591 | +"source": "Docker permissions", |
| 592 | +"target": "Docker 权限" |
| 593 | + }, |
586 | 594 | { |
587 | 595 | "source": "Plugin manifest", |
588 | 596 | "target": "插件清单" |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -80,6 +80,40 @@ Example:
|
80 | 80 | |
81 | 81 | Reference: [Plugin architecture](/plugins/architecture) |
82 | 82 | |
| 83 | +## Plugin present but blocked by suspicious ownership |
| 84 | + |
| 85 | +If `openclaw doctor`, setup, or startup warnings show: |
| 86 | + |
| 87 | +```text |
| 88 | +blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root) |
| 89 | +plugin present but blocked |
| 90 | +``` |
| 91 | + |
| 92 | +the plugin files are owned by a different Unix user than the process loading |
| 93 | +them. Do not remove the plugin config. Fix the file ownership or run OpenClaw as |
| 94 | +the same user that owns the state directory. |
| 95 | + |
| 96 | +Docker installs normally run as `node` (uid `1000`). For the default Docker |
| 97 | +setup, repair the host bind mounts: |
| 98 | + |
| 99 | +```bash |
| 100 | +sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace |
| 101 | +openclaw doctor --fix |
| 102 | +``` |
| 103 | + |
| 104 | +If you intentionally run OpenClaw as root, repair the managed plugin root to |
| 105 | +root ownership instead: |
| 106 | + |
| 107 | +```bash |
| 108 | +sudo chown -R root:root /path/to/openclaw-config/npm |
| 109 | +openclaw doctor --fix |
| 110 | +``` |
| 111 | + |
| 112 | +Deeper docs: |
| 113 | + |
| 114 | +- [Plugin path ownership](/tools/plugin#blocked-plugin-path-ownership) |
| 115 | +- [Docker permissions](/install/docker#permissions-and-eacces) |
| 116 | + |
83 | 117 | ## Decision tree |
84 | 118 | |
85 | 119 | ```mermaid |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -343,6 +343,14 @@ See [ClawDock](/install/clawdock) for the full helper guide.
|
343 | 343 | sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace |
344 | 344 | ``` |
345 | 345 | |
| 346 | +The same mismatch can show up as a plugin warning such as |
| 347 | +`blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)` |
| 348 | +followed by `plugin present but blocked`. That means the process uid and the |
| 349 | +mounted plugin directory owner disagree. Prefer running the container as the |
| 350 | +default uid 1000 and fixing the bind mount ownership. Only chown |
| 351 | +`/path/to/openclaw-config/npm` to `root:root` if you intentionally run |
| 352 | +OpenClaw as root long term. |
| 353 | + |
346 | 354 | </Accordion> |
347 | 355 | |
348 | 356 | <Accordion title="Faster rebuilds"> |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -127,6 +127,34 @@ visible plugin without importing runtime code or repairing dependencies.
|
127 | 127 | See [Plugin dependency resolution](/plugins/dependency-resolution) for the |
128 | 128 | install-time lifecycle. |
129 | 129 | |
| 130 | +### Blocked plugin path ownership |
| 131 | + |
| 132 | +If plugin diagnostics say |
| 133 | +`blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)` |
| 134 | +and config validation follows with `plugin present but blocked`, OpenClaw found |
| 135 | +plugin files owned by a different Unix user than the process that is loading |
| 136 | +them. Keep the plugin config in place; fix the filesystem ownership or run |
| 137 | +OpenClaw as the same user that owns the state directory. |
| 138 | + |
| 139 | +For Docker installs, the official image runs as `node` (uid `1000`), so the |
| 140 | +host bind-mounted OpenClaw config and workspace directories should normally be |
| 141 | +owned by uid `1000`: |
| 142 | + |
| 143 | +```bash |
| 144 | +sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace |
| 145 | +``` |
| 146 | + |
| 147 | +If you intentionally run OpenClaw as root, repair the managed plugin root to |
| 148 | +root ownership instead: |
| 149 | + |
| 150 | +```bash |
| 151 | +sudo chown -R root:root /path/to/openclaw-config/npm |
| 152 | +``` |
| 153 | + |
| 154 | +After fixing ownership, rerun `openclaw doctor --fix` or |
| 155 | +`openclaw plugins registry --refresh` so the persisted plugin registry matches |
| 156 | +the repaired files. |
| 157 | + |
130 | 158 | For npm installs, mutable selectors such as `latest` or a dist-tag are resolved |
131 | 159 | before installation and then pinned to the exact verified version in OpenClaw's |
132 | 160 | managed npm root. After npm finishes, OpenClaw verifies the installed |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。