如何使用CHMOD获取"drwx---r-x+"文件夹权限? - Bash 脚本

How to get "drwx---r-x+" folder permission using CHMOD? - Bash script

我在通过网络移动某些文件时遇到问题,这似乎是由文件权限引起的。

目前我有具有此权限的文件夹 drwxrwxrwx。 我需要 运行 一个 bash 脚本来更改 drwx---r-x+

的权限

需要有 ACL。

我不太明白如何使用 CHMOD 命令获得相同的权限。到目前为止我已经尝试过:

chmod -R ugo=rx "file"

但是这个好像改成了dr-xr-xr-x,还是不够...

那么问题来了,我应该运行用哪个命令实现drwx---r-x+ ??

提前致谢。

PS。此命令在 MACOSX Maveriks 中必须 运行,因此 "setfacl" 命令将无济于事。

权限drwx---r-x+细分如下:

  • d当然是目录。
  • rwx 表示它可以被 u 服务器读取、写入和访问。这三位可以用八进制数7.
  • 表示
  • --- 表示没有为分配给目录的 g 组设置上述三个位。没有设置位,所以八进制数是 0.
  • r-x 表示与前两个类别不匹配的用户——即其他人,或“other”——可以阅读并访问目录的内容,但不能写入它。这里的位在个位列和四位列,所以表示这个权限的八进制数是5.
  • + 表示有 "extended security information" 与此目录关联,标准 ls "long format" 中未显示。例如,一个访问控制列表。

要设置该目录的基本权限,您可以使用八进制速记:

$ chmod 705 directoryname

或者您可以使用 "symbolic" 表示:

$ chmod u+rwx,g-rwx,o+rx-w directoryname

显然,shorthand 更短。

对于 + 表示的扩展安全信息,您需要找出设置的内容才能复制它。 ls 命令有一个 -e 选项来显示扩展的安全设置。

要从命令行实际 设置 您的 ACL,您需要使用 chmod'a =a-a+a 选项.关于此的文档可在 man chmod 的 OSX 中找到。来自该手册页:

         Examples
          # ls -le
          -rw-r--r--+ 1 juser  wheel  0 Apr 28 14:06 file1
            owner: juser
            1: admin allow delete
          # chmod =a# 1 "admin allow write,chown"
          # ls -le
          -rw-r--r--+ 1 juser  wheel  0 Apr 28 14:06 file1
            owner: juser
            1: admin allow write,chown