如何仅授予文件夹所有者写入/删除访问权限?

ame*_*ior 8 permissions directory chmod read-only

如何创建一个文件夹:

  • 每个人都可以读取文件夹的内容
  • 只有所有者对内容具有写/删除权限

pLu*_*umo 6

创建一个文件夹并运行chmod(更改文件模式)以更改权限。

mkdir folder
chmod 755 folder
Run Code Online (Sandbox Code Playgroud)

实际上这是默认设置。

更改现有文件夹内容的权限:

# Give write access to owner
chmod -R u+w folder
# Revoke write access of group and others
chmod -R go-w folder
# Give read access to everyone
chmod -R a+r folder
Run Code Online (Sandbox Code Playgroud)

或者在一个命令中一起使用 (thx @chrylis)

chmod -R u=rwx,g=rx,o=rx folder
Run Code Online (Sandbox Code Playgroud)

  • 复合形式`u=rwx,g=rx,o=rx` 更简单一些。 (4认同)

mur*_*uru 5

授予所有者用户所有权限,其他人只读取和执行,并取消对内部所有内容的写入权限:

sudo setfacl -Rm u::rwX,g::rX,o::rX /path/to/directory
sudo setfacl -Rdm u::rwX,g::rX,o::rX /path/to/directory
Run Code Online (Sandbox Code Playgroud)

第一个设置现有事物的权限,第二个设置目录中创建的任何事物的默认权限。rwX授予所有权限(如果目录或已经可执行,则 X 授予执行权限)。

  • 为什么这样做而不是`chmod u=rwx,g=rx,o=rx`? (4认同)

hee*_*ayl 4

您需要的权限位(八进制):

0705
Run Code Online (Sandbox Code Playgroud)

或者,如果您也想向该组授予读取/访问权限(考虑到您向全世界授予读取/执行权限,这是有意义的):

0755
Run Code Online (Sandbox Code Playgroud)

前面0的 表示没有任何 SUID、SGID 或粘性位。如果你愿意的话,你可以放弃它。

以描述性信件形式:

rwxr-xr-x
Run Code Online (Sandbox Code Playgroud)