web-dev-qa-db-ja.com

Ubuntuのhtdocsにフォルダを作成できません

どうすれば許可を設定できますか? [新しいフォルダを作成]オプションはグレー表示されます。私はこれを試しました:Sudo chmod -rw/opt/lampp/htdocs

しかし、それでも機能しません。 Sudo chmod -rw 755/opt/lampp/htdocsを追加すると、「755」というファイルやディレクトリはありません

4
Blub

Chmodとunixファイルのアクセス権の動作を間違えています。

ログインしているユーザーに書き込み権限があるように、/ opt/lampp/htdocsディレクトリを設定する必要があります。また、そこに書き込んだ内容を、LAMPPが使用するWebサーバーが読み取ることができるようにする必要もあります(残念ながら、LAMPについてはよく知りません)。

まず、/ opt/lampp/htdocsの所有者を確認する必要があります。

$ ls -ld /opt/lampp/htdocs

次のようなものが返されます:

drwxr-xr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs

最初のビット(dwrxr-xr-x)はファイル許可です。 「lampp」はディレクトリの所有者であり、「www」はディレクトリのグループ所有者です。これに注意する必要があります。

まず、グループを並べ替えましょう。グループが「root」以外の場合、すべて順調であり、このセクションはスキップできます。

「ルート」の場合は、より賢明なものに変更する必要があります。それが属する新しいグループを作ってみましょう:

$ Sudo groupadd www

次に、ディレクトリのグループを変更します。

$ Sudo chgrp -R www /opt/lampp/htdocs

次に、Webサーバーをグループwwwとして実行する必要があります。 WebサーバーがApacheの場合、/ etc/Apache/httpd.confファイルを確認して、それに応じて「グループ」設定を編集する必要があります。他のWebサーバーの設定がわかりません。

ここで、グループをルートから他のグループに切り替える必要がない場合は、ここにスキップします。

次に、ディレクトリの権限に対処する必要があります。 「setgid」ビットと呼ばれる非常に特殊な権限を使用したいと考えています。

$ Sudo chmod 2775 /opt/lampp/htdocs
$ ls -ld /opt/lampp/htdocs
drwxrwsr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs

権限が多少変更されたことがわかります。これらについて説明しましょう。

  • 最初の文字はファイルの種類です。この場合、「d」はディレクトリ用です。
  • 次の3つの「rwx」は、所有者(lampp)がディレクターに対して持っている権限です。 r =読み取り、w =書き込み、x =ディレクトリーの内容を表示します。
  • 次の3つ、「rws」はグループ所有者(www)向けですが、この場合のxは実際にはsであることに気づきます。これはすぐにわかります。
  • 最後の3つ、「r-x」は、他のすべての人向けです。それが読み込まれ、ディレクトリの内容が表示されます。書き込みなし。

グループ権限の「s」は「setgid」ビットと呼ばれます。これは、ディレクトリで作成されたすべてのファイルに、ディレクトリ自体からグループ所有者を継承させる特別な権限です。したがって、「users」グループの「fred」ユーザーがそこにファイルを作成すると、「www」グループの「fred」が所有することになります。これは、複数の人がすべて同じファイルを読み書きする共有領域で非常に役立ちます。

しかし、現状では、その領域に書き込む機能はまだありません。どうして? 「www」グループに参加していないからです。それを修正しましょう:

$ Sudo usermod -aG www blub

「www」を冒頭でメモした/ opt/lampp/htdocsディレクトリのグループ所有者に置き換えます。

この変更を有効にするには、ログアウトして再度ログインする必要があります。グループメンバーシップはログイン時に読み取られます。

これを実行すると、突然、/ opt/lampp/htdocsに魔法のようにファイルを書き込むことができることがわかります。

システムに書き込みを許可したい他のユーザーがいる場合は、usermod -aD www <username>コマンドを使用してwwwグループに追加するだけです。

15
Majenko

この単純な端末コマンドでhtdocsへの完全な権限が与えられ、PHPプロジェクトで作業を開始することができました

Sudo chmod 777 -R /opt/lampp/htdocs

ムハンマドのコメントに応えて、Sudo chmod 755 -R /opt/lampp/htdocs

2
khaverim

ETHHER + rw OR the octals を使用しますが、両方を使用することはできません。

あなたがしようとしているのは、755と呼ばれるディレクトリと/ opt/lampp/htdocsから読み取りと書き込みの権限を削除することです。

いずれにせよ、xamppを使用するべきではありません。ランプスタックのネイティブインストールをより最新のものにすることができます。taskselを使用してインストールできます。

1
Journeyman Geek