Ubuntu の htdocs にフォルダを作成できない

Ubuntu の htdocs にフォルダを作成できない

権限を設定するにはどうすればよいですか? 「新しいフォルダーの作成」オプションがグレー表示されています。

私はこれを試しました:

sudo chmod -rw /opt/lampp/htdocs

しかし、まだ動作しません。以下を追加すると:

sudo chmod -rw 755 /opt/lampp/htdocs, 

それはこう言います:"755" no such file or directory

答え1

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」以外の場合は、すべて問題なく、このセクションをスキップできます。

もしそれが「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 つ、「rx」は他のすべてのユーザー用です。これは読み取り専用で、ディレクトリの内容を表示します。書き込みはできません。

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

しかし、現状では、その領域に書き込む権限がまだありません。なぜでしょうか? 「www」グループに属していないからです。これを修正しましょう:

$ sudo usermod -aG www blub

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

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

これを実行すると、/opt/lampp/htdocs に魔法のようにファイルを書き込めるようになるはずです。

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

答え2

この簡単なターミナルコマンドで完全な権限が与えられhtdocs、PHPプロジェクトに取り掛かることができました。

sudo chmod 777 -R /opt/lampp/htdocs

ムハンマドのコメントに対しては、sudo chmod 755 -R /opt/lampp/htdocs

答え3

+rwまたは8進数のいずれかを使用します両方ではありません。

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

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

答え4

ディレクトリ/opt/lampp/htdocsとその内容のグループ所有権をグループに変更しますjade

sudo chgrp -R jade /opt/lampp/htdocs

その後、権限を変更する場合 (たとえば、グループにjade書き込みアクセス権を付与する場合)、通常は chmod コマンドを使用します。たとえば、次のようになります。

sudo chmod -R g+w /opt/lampp/htdocs

関連情報