以root执行flutter clean后,非sudo无法运行命令的问题求助
问题原因
用root执行flutter clean后,项目目录下的.dart_tool文件夹(包括其内部所有文件和子目录)的所有者会被设置为root用户。普通用户对root拥有的文件/目录没有默认的读写权限,因此执行flutter clean或flutter pub get时会出现权限不足的报错。
解决方法
重置项目目录所有者
在终端执行以下命令,将整个项目目录的所有者重置为当前普通用户:
sudo chown -R $(whoami) /Users/liamhp/Documents/<my-app>
注意:把
<my-app>替换成你实际的项目文件夹名称
这条命令会递归修改指定目录下所有文件和文件夹的所有者为当前登录用户,直接解决权限问题。
验证修复
执行完上述命令后,以非root权限重新运行以下命令:
flutter clean flutter pub get
如果没有报错,说明权限已恢复正常。
后续注意事项
- 永远不要以root用户执行Flutter相关命令,Flutter官方也明确警告过这一点,避免再次出现权限问题。
- 编写自动化脚本时,确保脚本以普通用户身份运行,不要添加
sudo前缀。
内容的提问来源于stack exchange,提问作者liamhp
相关产品推荐
相关产品推荐

