为什么我不能在 Mac 上更改符号链接的权限?

use*_*498 5 permissions macintosh

简单的问题,也许有一个简单的答案。

我的主文件夹中有几个目录,我希望将它们作为网络服务器上的目录提供。所以,我所做的是创建一个符号链接:

iMac:/Library/WebServer/Documents/ ls -ltr
-rw-rw-r--  1 root      admin     44 Nov 20  2004 index.html.en
-rw-rw-r--  1 root      admin  31958 May 18  2009 PoweredByMacOSXLarge.gif
-rw-rw-r--  1 root      admin   3726 May 18  2009 PoweredByMacOSX.gif
-rwxr-xr-x  1 mego  admin      0 Jan  6  2011 favicon.ico
lrwxrwxr-x  1 mego  admin     52 Jul 26 13:45 myadmin -> /Users/mego/Downloads/phpMyAdmin-3.4.3.2-english
iMac:/Library/WebServer/Documents/ ln -s /Users/mego/opt/rel/src/main/web/ rel
iMac:/Library/WebServer/Documents/ ls -ltr
-rw-rw-r--  1 root      admin     44 Nov 20  2004 index.html.en
-rw-rw-r--  1 root      admin  31958 May 18  2009 PoweredByMacOSXLarge.gif
-rw-rw-r--  1 root      admin   3726 May 18  2009 PoweredByMacOSX.gif
-rwxr-xr-x  1 mego  admin      0 Jan  6  2011 favicon.ico
lrwxrwxr-x  1 mego  admin     52 Jul 26 13:45 myadmin -> /Users/mego/Downloads/phpMyAdmin-3.4.3.2-english
lrwxrwx---  1 mego  admin     47 Oct 12 09:58 rel -> /Users/mego/opt/rel/src/main/web/
Run Code Online (Sandbox Code Playgroud)

/Users/mego/opt/rel 的权限被递归设置为 a+rx 以便每个人都可以读取和执行。

当我尝试更改权限时,即“ chmod a+rx rel ”和“ chmod -R a+rx /Users/mego/opt/rel ”,零效果。

的输出

ls -ld / /Users /Users/mego /Users/mego/opt /Users/mego/opt/rel /Users/mego/opt/rel/src /Users/mego/opt/rel/src/main /Users/mego/opt/rel/src/main/web

iMac:~/ ls -ld / /Users /Users/mego /Users/mego/opt /Users/mego/opt/rel /Users/mego/opt/rel/src /Users/mego/opt/rel/src/main /Users/mego/opt/rel/src/main/web
drwxrwxr-t@ 39 root      admin  1394 Sep 14 15:30 /
drwxr-xr-x   7 root      admin   238 Aug 29 10:04 /Users
drwxr-xr-x+ 98 mego  staff  3332 Oct 15 10:59 /Users/mego
drwxrwxr-x  19 mego  staff   646 Oct 14 20:47 /Users/mego/opt/rel
drwxrwxr-x   5 mego  staff   170 May 31 08:01 /Users/mego/opt/rel/src
drwxrwxr-x   6 mego  staff   204 Oct 12 08:42 /Users/mego/opt/rel/src/main
drwxrwxr-x   5 mego  staff   170 Oct 12 08:42 /Users/mego/opt/rel/src/main/web
iMac:~/ 
Run Code Online (Sandbox Code Playgroud)

必须与用户主文件夹相关。但奇怪的是,另一个文件夹“ myadmin ”具有正确的权限并且可以正常工作。我究竟做错了什么?

先感谢您。

Gil*_*il' 1

/Users/mego具有可能阻止访问的ACL 。这就是该目录+输出的传统 unix 权限之后所指示的内容。ls -l运行ls -lde /Users/mego查看该ACL。

请注意,如果用户被拒绝访问/Users/mego(重要的是可执行位),则它将无法访问其下的任何内容。因此,如果 Web 服务器用户没有执行权限/Users/mego,则世界可读并不重要/Users/mego/opt/rel:Web 服务器用户将无法达到那么远。涉及符号链接也没关系:通过符号链接进行访问涉及遍历到目标的路径。

用于chmod操作 ACL。手册页中的示例应该可以帮助您前进(如果您无法从示例中找出您需要的内容,请在此处询问,并发布 的输出ls -lde /Users/mego)。