Linuxのすべてのユーザーにフォルダーの書き込みアクセスを許可するにはどうすればよいですか?


191

Ubuntuにapache2をインストールしたところ、/ var / wwwフォルダーが保護されていることに気付きました。私はsudo何でもできますが、書き込みアクセスを許可したいだけです。

これどうやってするの?

試しましたsudo chmod 7777 /var/wwwが、うまくいきませんでした。


これは公的にアクセス可能なサーバーですか、それともインターネットに直接接続していませんか?前者がセキュリティの決定を考慮することが重要である場合-インターネット上のサーバーは常に攻撃を受けています(/ var / log / messagesまたは同等のものを見てください)。
kwutchak

これは単なるラップトップであり、インターネットからはアクセスできません。
カーソンマイヤーズ

回答:


321

書き込み可能な複数のユーザーと最適に共有する/var/wwwには、共通のグループを割り当てる必要があります。たとえば、UbuntuおよびDebianのWebコンテンツのデフォルトグループはwww-dataです。書き込みアクセスを必要とするすべてのユーザー/var/wwwがこのグループに属していることを確認してください。

sudo usermod -a -G www-data <some_user>

次に、/ var / wwwに正しい許可を設定します。

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

さらに、ディレクトリとその下のすべてのディレクトリを「set GID」にして、下に作成されるすべての新しいファイルとディレクトリ/var/wwwwww-dataグループによって所有されるようにする必要があります。

sudo find /var/www -type d -exec chmod 2775 {} \;    

内のすべてのファイルを検索し/var/www、所有者とグループの読み取りおよび書き込み権限を追加します。

sudo find /var/www -type f -exec chmod ug+rw {} \;

自分のアカウントの権限を編集している場合、変更を行うにはログアウトしてからログインし直さなければならない場合があります。


2
それはかなり退屈です...他のフォルダであるかのように、ユーザーにアクセスを許可することはできませんか?
カーソンマイヤーズ

9
それあなたがそれにアクセスする方法です。GUIファイルマネージャのダイアログをナビゲートして同じことをしようとするよりも、コマンドをコピーして貼り付ける方が迅速です。長期的には、少なくともchmodとchgrpのマニュアルページ(「man chmod」)を読むと役立ちます。
jtimberman 09

おそらく最初に読んだときにコマンドを理解していなかったのかもしれませんが、あなたの編集はそれをより明確にします。
カーソンマイヤーズ

1
Apacheのアクセス許可を強制するGUIDの場合は+1。書き込みアクセスが必要な場合は、chmod g + w dir /と同じくらい簡単です
LiraNuna

1
なぜあなたのグループの許可コマンドsudo chmod -R g+wではなく、g+rwまたはg+rwX
確実に14

31

これを行う簡単な方法があります。このコマンドを実行してください。

sudo chmod -R 757 /var/www

基本的に、chmodコマンドは権限を変更し、-Rスイッチはすべてのユーザーに影響します。次に、使用するための正しい許可を単に与えています。


3
このコマンドがOPに対して何を行うかについて、洞察をいただけますか?
n0pe

11
説明不足の場合は-1。その上、chmod $permissions -R $file有効ではありません…
ブラックライトシャイニング

1
それは他の方法で回避のオプション[アクセス許可ではありません
Moataz Elmasry

2
sudo chmod -R 757 /var/www
Bwyss

経験のある人がこれについて簡単な説明を付けて編集を提案してください。
アディプラセティョ

29

読み取り+書き込み:

sudo chmod -R a+rw /var/www

読み取り+書き込み+実行:

sudo chmod -R a+rwx /var/www

7

アクセス制御リストを使用して、jtimbermanが提案した内容を複製することもできますsetfaclコマンドは、既存のACLを交換したり、それを変更するには、-mには、-sを受け入れます。-Rは、ディレクトリACLを再帰的にします。-dを指定すると、指定した設定がデフォルトになります。これは、今後のユーザーアカウントを予想している場合に便利です。

これらは、chmodを使用して、ユーザー、グループ、その他、およびマスクに対して許可を設定するだけです。

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

そして、これはあなたが指定されたユーザーまたは彼/彼女のグループのためにそれを行う方法かもしれません:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

そしてもちろん、グループ設定を変更することなく、特定のユーザー、複数のユーザーなどを指定できるという強みがあります。また、chmodとは異なり、あるグループに1つのディレクトリへのアクセスを許可し、他のグループに別のディレクトリへのアクセスのみを許可する場合、実際にはsetfaclを使用できます。最後に、ディレクトリのACLを表示するには、getfaclを実行します。

getfacl DIRECTORY

また、サブディレクトリのACLを表示するには-Rを指定し、デフォルトを表示するには-dを指定できます。


2

すばやく簡単な答え -

a。ユーザー(user_name)をグループ(-Gwww-dataに追加(-a)します。

sudo usermod -a -G www-data user_name

b。グループ(g)に/ var / wwwの所有ユーザー(u)と同じ(=)パーミッションを再帰的に(-R)与えます。

sudo chmod -R g=u /var/www

説明:Debian / Ubuntu上のApache 2は、ユーザーとグループのwww-data/ var / wwwの所有者として設定します。ユーザーのデフォルトの権限は「コンテンツの表示と変更」ですが、グループは「コンテンツの表示」しかできません。したがって、www-dataグループに自分自身を追加し、wwww-dataユーザーと同じ権限を付与することで、迅速かつ簡単に開発を開始できます。すべてのローカルホスト(PC /ラップトップ)Web開発環境でこれを行います。


1

よく使う

chmod g+w /folder/ -R

それはほとんど自明です。

これは、サブフォルダの再帰のために、儀式へのアクセス権を持つgグループ()/folder/を追加します。w+w-R


-3

試していただけますchmod 0777 /var/wwwか?

警告:すべてのユーザーにこのフォルダーへのアクセスを許可すると、ハッカーはシステムにアクセスできるようになると、このフォルダーにアクセスできるようになります。そのため、許可されたユーザーのグループを作成し、そのグループに書き込みアクセス権を付与する方が適切です。


なぜこれをソリューションとして提供し、すぐにそれを信用しないのですか?-1投票
Tisch

-3

最初に特定のフォルダーパスを入力し、次にこのコマンドを使用して…

chmod -R 777 foldername
chown username:username foldername 

7
わあ、それは悪い!-Rを指定して777を指定しないでください。特に、質問する人が初心者であり、リスクを理解していない場合はそうです。
12

本当に十分な@recluze。
vgoff
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.