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

如何设置public目录权限:sudo组可读写、所有用户仅可读?

修改public目录权限的方案

要实现sudo组用户拥有读写权限,其他用户仅拥有读取权限的目标,我们可以通过以下步骤操作:

1. 确保目录的所属组为sudo组

首先需要把public目录的所属组设置为sudo,这样sudo组的用户才能继承组权限:

sudo chgrp sudo public/

如果需要连同目录内的所有子文件、子目录一起修改所属组,加上-R参数(递归操作):

sudo chgrp -R sudo public/

2. 设置目录权限

这里需要注意:目录的执行权限(x)是用户进入目录的前提,如果只给其他用户r权限,他们连目录都进不去,更无法读取里面的文件。所以我们需要给其他用户配置rx权限(读取+进入),sudo组配置rwx权限(读取+写入+进入):

符号模式(直观易懂,推荐)

sudo chmod g=rwx,o=rx public/

如果需要递归修改所有内容,同时区分文件和目录的权限(避免给普通文件加上不必要的执行权限),可以用大写X(仅给目录或已有执行权限的文件添加执行权限):

sudo chmod -R g=rwx,o=rx,u=rwX public/

解释:

  • g=rwx:sudo组用户拥有读、写、执行权限
  • o=rx:其他用户拥有读、执行权限(能进入目录并读取内容)
  • u=rwX:保持目录所有者的读写权限,仅给目录添加执行权限

数字模式(简洁高效)

如果习惯用数字权限,对应的配置是775(所有者rwx,组rwx,其他rx):

sudo chmod 775 public/

递归修改的话:

sudo chmod -R 775 public/

⚠️ 注意:数字模式会统一修改所有者、组、其他用户的权限,如果原所有者权限不是rwx,这个命令会覆盖它,所以符号模式更灵活。

3. 验证权限设置

执行以下命令查看最终权限:

ls -ld public/

输出应该类似这样(重点看权限位和所属组):

drwxrwxr-x 2 your_user sudo 4096 Aug 20 10:00 public/
  • drwxrwxr-x:权限位对应所有者rwx,组rwx,其他rx
  • sudo:目录的所属组为sudo组

额外提醒

  • 如果public是web服务器(如Nginx/Apache)的根目录,可能还需要确保服务进程的用户(比如www-data)拥有对应权限,但你的需求是sudo组用户有读写权限,所以按上述配置即可。
  • 递归操作-R要谨慎,确认目标目录下没有不需要修改权限的重要文件,避免误操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:38:48