You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dockerfile切换新用户删除文件时遇Permission denied问题求助

Docker构建Permission Denied问题解决建议

你的Dockerfile内容如下:

FROM ubuntu
WORKDIR /
RUN touch file1
RUN adduser luffy
RUN chown luffy file1
USER luffy
RUN rm file1

构建时出现Permission denied错误,核心原因是:普通用户luffy对根目录/没有写入/删除权限。虽然file1的所有者是luffy,但删除文件需要所在目录的写权限,而根目录权限归root所有,因此无法执行rm操作。

方案一:使用普通用户的家目录(推荐,符合最小权限原则)

将操作目录切换到luffy的家目录,普通用户对自己的家目录拥有完全权限:

FROM ubuntu
# 先创建用户,切换后自动进入家目录
RUN adduser luffy
USER luffy
RUN touch file1
RUN rm file1

或者调整目录顺序,确保操作在用户权限范围内:

FROM ubuntu
RUN adduser luffy
WORKDIR /home/luffy
RUN touch file1
RUN chown luffy file1
USER luffy
RUN rm file1

方案二:临时切换回root删除文件(不推荐,仅用于特殊场景)

如果必须在根目录操作,可临时切换回root完成删除,再切回普通用户:

FROM ubuntu
WORKDIR /
RUN touch file1
RUN adduser luffy
RUN chown luffy file1
USER luffy
# 临时切换root执行删除
USER root
RUN rm file1
# 切回普通用户
USER luffy

内容的提问来源于stack exchange,提问作者Ninad Mahure

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:42:49