使用chmod、chown后仍无法访问src文件夹:Linux权限问题求助
解决Linux目录权限拒绝问题
核心问题分析
你遇到的问题根源有两点:
- 文件夹缺少执行权限:你执行的
chmod -R 666 src会把所有文件和文件夹权限设为rw-rw-rw-,但Linux中文件夹必须拥有**执行权限(x)**才能进入并访问内部内容,缺少x权限时,即便你是所有者也无法查看目录内文件,这就是ls -al显示权限问号的原因。 - 所有者组未统一:仅设置用户为sam但组仍为root,虽不是核心问题,但统一用户与组能避免后续权限冲突。
修复步骤
1. 用root权限执行权限修正命令
确保你以root身份操作(或在命令前加sudo):
- 统一所有者与用户组:将src目录及所有内容的所有者和组都设为sam(默认普通用户的组名与用户名一致):
chown -R sam:sam src - 分类型修复权限:
- 给所有文件夹添加执行权限(允许进入目录):
find src -type d -exec chmod 755 {} \; - 给所有文件设置合理读写权限(普通业务文件无需执行权限):
若项目中有需要执行权限的脚本文件,可单独调整,比如find src -type f -exec chmod 644 {} \;chmod +x src/scripts/start.sh。
- 给所有文件夹添加执行权限(允许进入目录):
2. 检查父目录权限
如果执行完上述命令仍无法访问,检查src所在的父目录权限。比如src在/root/projects/下,默认/root目录权限为drwx------,仅root可访问,此时你需要:
- 把整个项目目录迁移到sam的家目录(如
/home/sam/projects/); - 或临时修改父目录权限让sam能访问:
chmod o+rx /path/to/parent-directory
3. 验证结果
切换回sam账户,执行ls -al src,此时应能正常查看目录内容,再运行npm命令即可正常工作。
内容的提问来源于stack exchange,提问作者Simple Fellow
相关产品推荐
相关产品推荐

