web-dev-qa-db-ja.com

どのように私はLinuxのすべてのユーザーにフォルダの書き込みアクセス権を与えることができますか?

UbuntuにApache 2をインストールしたところ、/ var/wwwフォルダが保護されていることに気付きました。私はすべてをSudoすることができますが、書き込みアクセス権を与えるだけでいいのです。

これどうやってするの?

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

187
Carson Myers

/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/wwwの下に作成されたすべての新しいファイルとディレクトリがwww-dataグループによって所有されるようにします。

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

/var/www内のすべてのファイルを見つけて、所有者およびグループに読み取りおよび書き込み許可を追加します。

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

自分のアカウントの権限を編集している場合は、ログアウトしてから再度ログインして変更を加えることができます。

316
jtimberman

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

Sudo chmod -R 757 /var/www

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

32
Krishna Modi

読み取り+書き込み:

Sudo chmod -R a+rw /var/www

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

Sudo chmod -R a+rwx /var/www
28
paivaric

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

これらは単にchmodを使ってユーザー、グループ、その他、そしてマスクに対するパーミッションを設定するだけです。

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

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

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

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

getfacl DIRECTORY

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

7
Nikhil Chelliah

早くて簡単な答え -

a。 ( - a)あなたのユーザー(user_name)をグループ( - G)に追加しますwww-data

Sudo usermod -a -G www-data user_name

b。グループ(g)に、所有ユーザー(u)と同じ(=)権限を付与します。 / var/www再帰的に( - R)。

Sudo chmod -R g=u /var/www

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

2
user1138

私は典型的に使う

chmod g+w /folder/ -R

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

griteアクセス(/folder/)を持つために+wwグループの全員を追加します。-Rはサブフォルダの再帰用です。

1
Arda