簡単な質問とおそらく簡単な答えがあります。
ホームフォルダにいくつかのディレクトリがあり、Webサーバーのディレクトリとして利用できるようにします。だから、私がしたことはシンボリックリンクを作成することでした:
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/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:~/
ユーザーのホームフォルダに関連するものである必要があります。しかし不思議なことに、別のフォルダ "myadmin"には正しい権限があり、機能します。私は何が間違っているのですか?
前もって感謝します。
/Users/mego
には [〜#〜] acl [〜#〜] があり、アクセスを妨げている可能性があります。これは、このディレクトリの+
の出力に対する従来のunixパーミッションの後のls -l
が示していることです。 ls -lde /Users/mego
を実行して、このACLを表示します。
ユーザーが/Users/mego
へのアクセスを拒否された場合(重要なのは 実行可能ビット )、その下にあるものにはアクセスできないことに注意してください。したがって、Webサーバーユーザーに実行権限/Users/mego
がない場合、/Users/mego/opt/rel
が誰でも読み取り可能であるかどうかは関係ありません。Webサーバーユーザーはそこまで到達できません。シンボリックリンクが含まれていることも問題ではありません。シンボリックリンクを介したアクセスには、ターゲットへのパスのトラバースが含まれます。
chmod
を使用してACLを操作します。 manページの例でうまくいくはずです(例から必要なものがわからない場合は、ここで質問して、ls -lde /Users/mego
の出力を投稿してください)。
man chmod
.。
-hファイルがシンボリックリンクの場合は、リンクが指すファイルではなく、リンク自体のモードを変更します。
.。
だから次のようなもの:
chmod -h /Users/mego/opt/rel
動作するはずです。
chmod
は、シンボリックリンクで使用された場合にのみ、ターゲットファイル/ディレクトリのアクセス許可に影響を与えると思います。 lchmod
は、実際のシンボリックリンクの権限を変更する必要があります。