ファイルを編集して「/ var / www」に追加する最も簡単な方法は何ですか?


145

Webサーバーをインストールすると、ユーザーがグラフィックインターフェイスを使用してファイルとディレクトリをローカルWebサーバー/ var / wwwにコピーできるように設定する簡単な方法があります。

Ubuntuで管理者権限を与えましたが、コピーはまだ許可されていません。




マルコス・ロリス・ジュニアが言ったことをやろうとした。マルコスがユーザー名を書いてユーザー名に変更したときにコピーして貼り付けました。ただし、/ etc / apache2 / sites-availableに保存することはできません。そのフォルダーに保存できないためです。???

回答:


222

/ var / wwwをグループで書き込み可能にし、ユーザーをグループに追加すると、そのユーザーはsudoを使用する必要がなくなります。これを試して:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

その後、ユーザーは手間をかけずに/ var / www /ファイルを編集できるはずです。

最初の行はユーザーをwww-dataグループに追加し、2番目の行は所有権が乱れたファイルを消去し、3番目の行はwww-dataグループのメンバーであるすべてのユーザーがすべてのファイルを読み書きできるようにします/ var / www。

ログインしている<username>場合は、グループメンバーシップを有効にするためにログアウトしてから再度ログインする必要があります。


37
これに加えて、いくつかの工夫を加えsudo adduser <username> www-data; sudo chgrp -R www-data /var/www; sudo chmod -R g+rw /var/www; find /var/www -type d -print0 | sudo xargs -0 chmod g+s ます。ログアウトして再度ログインし、新しいグループを選択します。私はやるchmod g+s私の権限が伝播を変更することを確認して、グループの所有者(WWW-データ)をピックアップして、新しいファイルやディレクトリを強制します。
ドンフォークナー

15
@DonFaulknerセキュリティ上の理由から、おそらく/var/wwwroot:rootが所有し続けるsudo chgrp -R www-data /var/www方が良いでしょうsudo chgrp -R www-data /var/www/*
デズモンドヒューム

2
奇妙なことに、これらの3つのコマンドを実行した後、サブフォルダーとファイルの一部composer.jsonおよびなどLICENSE)がバイナリアイコンを使用して表示されます。オープニングcomposer.jsonテキストエディタでは空のファイルを示しており、最悪のことは、私はどちらかのサブフォルダの一部を閲覧することができないということです、私も@DonFaulknerにより示唆されるように、追加のコマンドを試していないし、まだ運。ターミナルをルートとして使用すると、すべてが正常になります。誰もこれが起こる理由を知っていますか?
アリックスアクセル

5
@itsolsを使用するには、ログアウトしてからログインする必要があります。
ジニー

1
@DonFaulkner-ルートが所有するファイルが攻撃ベクトルになる可能性について詳しく説明していただけますか?(私はこれらすべてに不慣れであり、一部はセキュリティへの未確定でルートによる所有のアプローチを提唱しているように見えますが、他の人はルートによって所有しないことを断固として言うので混乱しています。 )
アンドリューチョン14

25

することができますchown、それはそのフォルダのchER ownです。これにより、フォルダーのユーザーとグループを変更し、ユーザーがフォルダーにファイルを追加/削除できるようになります。それを行うには、yourusername名前に置き換えて実行します:

sudo chown yourusername.users /var/www

以上です。


ただし、ホームフォルダーに仮想ホストを作成する方が簡単です。

基本的には、任意のフォルダーをApache提供フォルダーとして使用できます。どのようにシンプルかを示すために、ユーザー名がユーザー名であり、提供するフォルダーが/ home / username / wwwであると仮定します。

mywebprojects/ etc / apache2 / sistes-availableに次のファイル(たとえば)を作成し、ユーザー名とフォルダーパスを置き換えます(基本的には#CHANGE HEREで単にコピーして貼り付けて置き換えます)。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    # CHANGE HERE
    DocumentRoot /home/username/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    # CHANGE HERE
    <Directory /home/username/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

次に、wwwフォルダーを作成し、単純なHello Worldを追加し、デフォルトのWebサイト(/var/www)を無効にし、Webサイトを有効にして、mywebprojectsApacheを再起動します。

mkdir ~/www 
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart

そして、今、あなたはに行く必要はありません/var/www、あなたはあなたのwww(または他のギブネーム)にファイルを追加するだけで、すでにそこにあります:)。


まさに私がしたこと。これに加えて、ディレクトリを共有ドライブに変更して、Windows / OSXで起動したときにすべてのファイルを使用できるようにすることができます。
ジェイソン

9

方法1:

  • ALT+ F2を押してgksudo nautilusと入力し、[実行]をクリックします。

    代替テキスト

  • これは、ルートのprevilegesでnautilusを開きます。
  • ファイルシステム var wwwに移動し、ファイルを追加/コピー/貼り付けできるようになりました。

方法2:

  • nautilus-gksuをインストールします nautilus-gksuをインストールします
  • nautilus -qターミナルにタイプをインストールした後、右クリックメニューを更新します。
  • これで、nautilusの右クリックメニューに[管理者として開く]エントリが表示されます。
  • ルート権限でファイルを開く必要がある場合は、そのファイル/フォルダーを右クリックし、「管理者として開く」を選択するだけです。
  • root権限でそのファイル/フォルダーを開きます。

    代替テキスト


1
これは間違いなく正しい方法です!なぜこれが選ばれた答えではなかったのだろうか。他の方法には、アクセス許可をいじる必要があります。そうすることでシステムを危険にさらすことはありません。あなたの答えに+1。
-itsols

5
@itsols:私はまったく同意しません-にアクセスを許可するアクセス許可を適切に構成するのではなく、Nautilusにファイルシステムへの完全なルートアクセスを許可することにより、システムを危険にさらします/var/www。誤って[delete]キーを1回押すと、システムが起動できなくなる可能性があります。
ネイサンオスマン

@GeorgeEdisonしかし、これは許可を設定するためだけです。そして、これが完了したら、ノーチラスを閉じて、通常どおりに作業します。これは本当に悪いですか?ここで私の無知を失礼します。バージョン5.x以降のUbuntuのユーザーであるにも関わらず、私はまだ非常にチャレンジングな開発マシンをセットアップ見つけて(私のためにそれを行うための明確なカットの仕方がないように思われるが、少なくとも...
itsols

@itsols:この回答の2番目の部分は推奨される方法であり、私が使用する方法です。
ネイサンオスマン

6

sudo usermod -a -G developers $usernameACL を使用するのと同じくらい簡単です。

ただし、開始するには少し手間がかかります。これは少なくともUbuntu 10.10向けです。最初に/ etc / fstabのaclオプションでファイルシステムをマウントします。

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults、acl 0 1

sudo mount -o remount,acl /

次に、この目的のためにユーザーが所属するグループを作成します。

sudo groupadd developers
sudo usermod -a -G developers $username

開発者グループのメンバーになるには、ユーザーはログアウトして再度ログインする必要があります。

もちろん、/ var / wwwディレクトリーに必要なコンテンツがある場合は、これを実行しないでください。開始するためのセットアップを説明するためだけです。

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root:developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

次に、構成ファイルで「/ var / www」への参照を「/ var / www / public」に置き換えて、リロードします。

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

ファイルを作成したユーザー以外のすべてからの削除と名前の変更を制限する場合:

sudo chmod +t /var/www/public

このように、Apacheドキュメントルートの外部に存在するフレームワークのディレクトリを作成したい場合や、サーバーで書き込み可能なディレクトリを作成したい場合は、それでも簡単です。

Apache書き込み可能ログディレクトリ:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

Apacheで読み取り可能なライブラリディレクトリ:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-lineの最新情報を説明してください。文字通り追加することを意図していますか、それともユーザーが行を見つけて背後のオプションを編集することを望んでいますか?
MadMike

sudo rm -rf /var/www-step をスキップしないのはなぜですか。それは本当に必要ではないようです。
MadMike

@MadMikeは、16進数でファイルされることを意図しています。あなたの様々なパーティションがラベル付けされているかを調べるために、実行sudo blkid
Azendale

1
@Azendale私がコメントを書いたとき、それは答えを改善する方法に関する提案として意図されていました。今日、私はこれをもっと直接提案すべきだと知っています。Like:UUID=xxxx-part likeをaで埋める方法を追加してくださいsudo blkid
MadMike 14年

0

最も簡単な方法は、以下の手順に従うことです:

  1. Alt+ Ctrl+ Tを押すと、ターミナルが開きsudo -s、パスワードを入力してログインします。
  2. これでとしてログインしていますroot
  3. ここで入力するnautilusと、rootとしてホームフォルダーが開きます。これで、ファイルを簡単に編集して、好きなことを行うことができます。

お役に立てれば。:)


1
Nautilusのようなグラフィカルアプリケーションを実行するのに適したルートシェルを取得するにsudo -iは、単一のグラフィカルアプリを実行するよりsudo -sも同じ理由sudo -Hで望ましいsudoです。(sudo -sリセットされません。HOMEユーザーはので、それらに属してではなく、rootに属している必要があります自分のホームディレクトリ内の構成ファイルを得ることができます。)
Eliahケーガン

特にサーバーでは、rootアカウントを使用しないことを強くお勧めします。sudoはシステム管理者は、開発者やデザイナーは、自分自身を撮影するために拳銃渡されていないことを確認するための政策を作るためにできるようにしながら、適切なアクセス制御以上のものを提供して足オフ(と自分の会社を!)
シェイン

0

/var/www folderルートが所有しています。このフォルダ内のファイルを変更するには、所有権を自分のユーザー名に変更する必要があります。このために、次のコマンドを試すことができます。

sudo -i //ルートコンソールに変更します

sudo chown -R <username> <path> // for eg. sudo chown -R scott /var/www/html (scott is the username, -R indicates recrusive)

これで、フォルダの所有権が/var/www/html willユーザーに割り当てられますscott。これで、scottはこのフォルダー内のファイルをコピー/移動できます。


-1

サーバーバージョンを使用している場合は、webminを試してください。優れたWeb UIとファイルマネージャーがあります。それかFilezillaのどちらか


4
「サーバーバージョンを使用している場合」を説明できますか?Ubuntu Serverにインストールできるパッケージはすべて、デスクトップバージョンのUbuntuにインストールできます。
エリアケイガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.