私はLinuxを初めて使用し、UbuntuServerを実行しているVM)内に小さなテストサーバーをセットアップしようとしています。/var/wwwフォルダーを見つけました。 Apacheドキュメントが保存されている場所です。実際、VMのIPにアクセスすると、そこに保存されているindex.htmlページが表示されます。
私の問題は、そのフォルダに書き込めないことです。
ls -l
戻り値:
d-w-r-xr-x 2 root root 4096 2011-12-28 16:08 ./
drwxr-xr-x 13 root root 4096 2011-12-28 17:02 ../
-rw-r--r-- 1 root root 177 2011-12-28 16:08 index.html
私のユーザーはgab
と呼ばれています。
このフォルダを処理して、ここでファイルを編集および作成できるようにする場合は、どうすればよいですか?新しいグループを作成する必要がありますか、それとも自分をフォルダの所有者として設定する必要がありますか?
それは保護されたフォルダです。このディレクトリを変更するには、rootである必要があります。
また、gabをこのディレクトリの所有者にすることもできます。
Sudo chown -R gab /var/www
Sudo
はルート(管理者)としてchown -R gab /var/www
コマンドを実行し、システムのセットアップ時に使用したパスワード(おそらくgabと同じパスワード)の入力を求めます。
これを行うと、次のこともできます
Sudo chown -R 755 /var/www
書き込み権限を付与します。
# Permission
7 full
6 read and write
5 read and execute
4 read only
3 write and execute
2 write only
1 execute only
0 none
Reference Class Description
u user the owner of the file
g group users who are members of the file's group
o others users who are not the owner of the file or members of the group
755は、ユーザーがフルアクセス権を持ち、グループが読み取りおよび実行アクセス権を持ち、他のユーザーが読み取りおよび実行アクセス権を持つことを意味します。
www-data
(または同等の)グループのメンバーになることをお勧めしますが、ディレクトリとindex.html
ファイルはどちらもroot
が所有しているため、実際に期待されるかもしれません。 (kobaltzが提案したように)そうすること—仮想ホストを避けたい場合。
仮想ホストの道を行く場合、/var/www
ディレクトリは、Apacheが実行されていることを確認できる単なるプレースホルダーです。
少し読んだことは知っていますが、 このドキュメントページ または このwikiページ をご覧になりましたか?
実際には、ファイルはwww-dataによって所有されている必要があります(またはwww-dataには書き込み権限が必要です)。 「怠惰な」方法は、Sudoを使用して自分自身をルートに切り替え、ファイルを自分自身にchownし、必要なことを実行してから、www-dataに戻すことです-これらのファイルはSudoを使用して追加されたと思いますが、誰でもwww-dataに所有権を譲渡しませんでした
right方法は、フォルダをグループ書き込み可能に設定し、そのグループに自分を追加することです。もちろん、これは(www-dataディレクトリに対して)1回だけ実行する必要があり、その後は通常のユーザーと作業できるため、より理にかなっています。コバルツは正しい基本的な考えを持っていますが、実行のいくつかの側面は私には間違っているようです。