简单的问题,或许也有简单的答案。
我的主文件夹中有几个目录,我希望将它们作为网络服务器上的目录提供。所以,我所做的是创建一个符号链接:
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/
/Users/mego/opt/rel 上的权限递归设置为 a+rx,以便每个人都可以读取和执行。
当我尝试更改权限时,即“chmod a+rx rel“ 和 ”chmod -R a+rx /用户/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:~/
必须是与用户主文件夹相关的内容。但奇怪的是,另一个文件夹”我的管理员“具有正确的权限并且可以正常工作。我做错了什么?
先感谢您。
答案1
man chmod
...
-h 如果文件是符号链接,则更改链接本身的模式而不是链接指向的文件。
...
所以像这样:
chmod -h /Users/mego/opt/rel
应该管用。
答案2
/Users/mego
有一个前交叉韧带这可能会阻止访问。这就是该目录+
输出的传统 unix 权限之后所指示的内容。ls -l
运行ls -lde /Users/mego
查看该ACL。
请注意,如果用户被拒绝访问/Users/mego
(重要的是可执行位),它将无权访问其下的任何内容。因此,如果 Web 服务器用户没有执行权限/Users/mego
,则世界可读并不重要/Users/mego/opt/rel
:Web 服务器用户将无法达到那么远。涉及符号链接也没关系:通过符号链接进行访问涉及遍历到目标的路径。
使用chmod
来操纵 ACL。手册页中的示例应该可以帮助您前进(如果您无法从示例中找出您需要的内容,请在此处询问,并发布 的输出ls -lde /Users/mego
)。
答案3
我相信这chmod
只会影响在符号链接上使用时目标文件/目录的权限。 lchmod
应该更改实际符号链接的权限。