私はLinuxにあまり興味がなく、次の問題があります。
開発専用のUbuntuLinuxシステムのLAMP環境をインストールしました(PC上にあり、本番サーバーではありません)。
だから私は/ var/wwwをAptanaのワークスペースとして設定しようとしています(IDE PHP開発)に使用します)ができませんこれは、このディレクトリに書き込む権限がないためです(この権限を持っていないのは、ログに記録されたユーザーだと思います)。
だから私はやった:
Sudo chown -R andrea:www-data /var/www/
Sudo chmod -R g+s /var/www/
そう:
まず、ユーザー(andreaという名前)を/ var/www /ディレクトリの所有者として設定し(つまり、このディレクトリに書き込むことができることを意味します)、 www-dataグループ。
次に、このディレクトリをg + sで設定すると、そのディレクトリで作成されたすべての新しいファイルのグループがディレクトリのグループに設定されます。
問題は、この/ var/www /ディレクトリにアクセスしようとすると、permission deniedエラーメッセージが表示されることです。
andrea@andrea-virtual-machine:/var$ cd www/
andrea@andrea-virtual-machine:/var/www$ ls
ls: impossibile aprire la directory .: Permesso negato
テキストはイタリア語で、次のことを意味します:ディレクトリを開くことができません:アクセスが拒否されました
どうして?何が足りないのですか?この問題を解決するにはどうすればよいですか?
EDIT-1:これはSudo ls -al/var/wwwコマンドの出力です:
andrea@andrea-virtual-machine:/var/www$ Sudo ls -al /var/www
[Sudo] password for andrea:
totale 16
d-wx--s--x 4 andrea www-data 4096 apr 27 15:19 .
drwxr-xr-x 14 root root 4096 apr 27 11:53 ..
drwxr-sr-x 2 andrea www-data 4096 apr 27 12:08 html
drwxrwsr-x 3 andrea www-data 4096 apr 27 15:20 .metadata
ディレクトリに対するexecute権限なしでread権限がある場合、パスに含めることはできますが、その内容を表示できないため、/var/www
にいる場合たとえば、単純なhtml
ではhtml
を表示できませんが、ls html
でls
サブディレクトリの内容を表示できます。実行する必要があります:
Sudo chmod uga+r /var/www
Sudo
が必要ない可能性があります。最初にそれなしで試すことができます。
これはUbuntuの違いではなく、Linuxのパーミッションがどのように機能するかです。実行(x)権限はディレクトリにアクセスすることであり、読み取り(r)権限はそのコンテンツを一覧表示することです。
ウィキペディアのこの記事 から、すべてを読むことをお勧めします:
ディレクトリに設定すると、この権限[executes]は、名前がわかっている場合はファイルの内容とメタ情報にアクセスできますが、ファイルを一覧表示することはできません。読み取りも設定されていない限り、ディレクトリ内。
また
ディレクトリに設定すると、このアクセス許可[読み取り]により、ディレクトリ内のファイルの名前を読み取ることができますが、それ以上の情報は見つかりません。内容、ファイルの種類、サイズ、所有権、権限など、それらについて。
andrea@andrea-virtual-machine:/var/www$ Sudo ls -al /var/www
d-wx--s--x 4 andrea www-data 4096 apr 27 15:19 .
ユーザーandreaの場合:
(w)書き込み権
(x)フォルダへのCDの許可。
現在のフォルダに(r)が設定されていないため、その内容を一覧表示することはできません。これがlsが失敗する理由です。
グループと他のグループに同じ権利が設定されています(どちらもありません)