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

Wca*_*ter 7 unix macos bash chmod

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

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

ACL需要在那里.

我不太明白如何使用CHMOD命令实现相同的权限.我到目前为止尝试过:

chmod -R ugo = rx"file"

但这似乎改为dr-xr-xr-x,这还不够......

所以问题是,我应该运行哪个命令来实现drwx --- r-x + ??

提前致谢.

PS.此命令必须在MACOSX Maveriks中运行,因此"setfacl"命令无效.

gho*_*oti 18

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

  • d 当然是一个目录.
  • rwx意味着它是可读的,可写的并且可由u ser 访问.这三个比特可以用八进制数表示7.
  • ---表示没有为分配给目录的g roup 设置上述三个位.没有设置位,所以八进制数是0.
  • r-x意味着谁不是由前两类匹配的用户-也就是所有的人,或" Ø疗法" -可以阅读和目录的访问内容,但不能写入.这里的位在ones列和fours列中,因此表示此权限的八进制数是5.
  • +表示存在与该目录相关联的"扩展安全信息",其未以标准ls"长格式"显示.例如,访问控制列表.

要设置此目录的基本权限,您可以使用八进制简写:

$ chmod 705 directoryname
Run Code Online (Sandbox Code Playgroud)

或者您可以使用"符号"表示:

$ chmod u+rwx,g-rwx,o+rx-w directoryname
Run Code Online (Sandbox Code Playgroud)

显然,简写是......更短.

对于由此表示的扩展安全性信息+,您需要找出为复制它而设置的内容.该ls命令可以-e选择让它显示扩展安全设置.

要实际设置从命令行将ACL,您会使用chmod'a =a,-a+a选项.有关这方面的文档可在OSX中找到man chmod.从那个手册页:

         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
Run Code Online (Sandbox Code Playgroud)