
Ubuntu日本語フォーラム

ログインしていません。
普段使っているWindowsパソコンでhtmlファイルを作って、
WinSCPでUbuntuサーバー機の/var/www/(ドキュメントルート)にhtmlファイルを移動させようと思ったのですが、
「リモートにファイル'~'を作成できません 権限がありません サーバーからのエラーメッセージ:Permission denied」というエラーがでて移動できませんでした。
ネットで検索してみると、コチラのサイトに
「$ sudo chown -R ログインユーザID:www-data /var/www/」と
「$ sudo usermod -g www-data ログインユーザID」
で、ディレクトリのパーミッションを変更できると書かれていました。
たぶん、これでwinSCPでhtmlファイルなどを/var/www/に直接移動させることができるようになって
便利だと思うのですが、自分の場合はサイトを外部に公開したいと思っています。
/var/www/の所有者をrootから自分のユーザー名に変更するとセキュリティ面など危険でしょうか?
どなたか、分かる方がおられましたら、教えて頂けないでしょうか?
どうか、宜しくお願いします。
以下のサイトなども見てみたのですが、よく分かりませんでした・・・:(
WinSCPについて
所有者変更について
web のファイルをコピーして…
/var/www 以下の所有者を変更しておく
WWW サーバの設定
VMware上のUbuntuにSCPでファイル転送したい
フォルダのアクセス権限の追加
UbuntuにWordPressをインストール、ドメイン設定までのメモ
DocumentRootは/var/www/htmlなのですが
FTPでの基本的なユーザー権限・パーミッションについて
オフライン
ログインユーザーIDでの作業中にウイルスが入ったとすれば、そのウイルスも/var/wwwにアクセスできるようになります。
中のファイルがrootやwww-dataだとしても削除できます。
できればroot権限のままがいいのかな。
オフライン
vbkさん による投稿:
できればroot権限のままがいいのかな。
すると、rootにパスワードを与えるわけですか?
オフライン
# いかん。引っ掛けみたいな文章になった。直接答えます。
いやらしそうなわたし による投稿:
誤:すると、rootにパスワードを与えるわけですか?
訂正:rootにパスワードを与えることになって、ubuntuの基本的な考え方から逸脱するような気がするです。
オフライン
sudoを使って、ログインユーザーに一時的に管理者レベルの権限を持たせます。
例えば
sudo vi /var/www/index.html
のようにすれば、一時的に管理者権限の操作ができます。
パスワードは、ログインユーザーのものと同じです。
オフライン
ごめんなさい、最初の方読んでなかった。
オフライン
http://www.ep.sci.hokudai.ac.jp/~epnetfan/tebiki/server-ftp/winscp2.html
WinSCPについて良く分かりませんが、こんな風にすればいいのかな
一時的にwww-dataになる
sudo -u www-data -s
一時的にrootになる
sudo su
オフライン
/var/www/はroot所有のまま置いておいた方が安全です。ここにパッケージからファイルが置かれることがあるので、ユーザー権限で編集できるようにすると事故の可能性が出てきます。
また、普通にログインして使うユーザーとは別にアカウントを作るほうが安全です。
単にHTMLだけを置ければいい(wikiやCMSなどの動的コンテンツ管理をしない)のであれば、次のような手順でどうでしょう。
1)
何かしらのユーザー(www-dataとかとは別に)を作成する。そのユーザーでパスワードログインできるようにする。
2)
/etc/apache2/sites-available/default を編集して、「DocumentRoot /var/www/」を「DocumentRoot /home/(作ったユーザー)」 に書き換える(このファイル内に他にも/var/wwwを指定している箇所があるので直す)。
きちんと行う場合は、/etc/apache2/sites-available/defaultをコピーして新しくファイルを作り、sudo a2ensite して……といった手順を踏むべきですが、今回の場合はこの程度でもいいかなと思います。
オフライン
ubuntu の規定の設定では、apache などの Web サーバーは www-data 権限で動作します
ドキュメントルートになる /var/www フォルダのアクセス権限は u=rw,g=r,o=r、所有者は root:root です
つまり、Web サーバーは other に割り当てられた読み込みの権限だけで、コンテンツにアクセスしていることになります
これとは別に、ubuntu のパッケージをインストールするときに /var/www に何かを書き込んだりすることから、root ユーザーに対する書き込み権限は外せないと考えられます
これに WinSCP 等で直接 /var/www のファイルを操作したいという要望を加味すると、/var/www の所有者だけを WinSCP で接続するユーザーにして、なおかつ /var/www の所有者グループ (root) に書き込みのアクセス権を加えるのが、もっとも簡単、確実だと思います
sudo chown ユーザー /var/www
sudo chmod g+w /var/www
drwxrwxr-x 2 ユーザー root 4069 2010-02-13 08:18 /var/www
/var/www の所有者グループをユーザーの属するグループに変えて、書き込み権限を与える方法もあります
これだとそのグループに属する他のユーザーでも (WinSCP等を使って) 書き込みできるようになります
この場合は新しく専用のグループを作るべきだろうと思います
sudo groupadd 新しいグループ
sudo usermod --groups 新しいグループ ユーザー
sudo chown :新しいグループ /var/www
sudo chmod g+w /var/www
drwxrwxr-x 2 root 新しいグループ 4069 2010-02-13 08:18 /var/www
オフライン
vbkさん、zaganさん、hitoさん、ryさん、いろいろ詳しく教えて頂き本当にありがとうございます!
教えいただいた事を参考に頑張ってみたいと思います。
ちなみに、/var/www/には、HTMLだけでなくwikiなども置いてみようと思っています。
hitoさんとryさんの回答を見ると、/var/www/に「パッケージからファイルが置かれることがある」とありますが、
そのファイルは、例えば、/var/www/の中に「home」というディレクトリを作って、/var/www/home/をドキュメントルートにした場合、/var/www/home/の中に作成されるのでしょうか?
それとも、やはり、/var/www/にファイルが置かれるのでしょうか?
初心者なもので、変な質問ですみませんが教えて頂けるとうれしいです。
どうか、宜しくお願いします。
オフライン
/var/www/ユーザ名 でディレクトリを作り、そのディレクトリの所有者をユーザにして運営、というのが無難かなと。
オフライン
#10 Tankさん による投稿:
hitoさんとryさんの回答を見ると、/var/www/に「パッケージからファイルが置かれることがある」とありますが、
そのファイルは、例えば、/var/www/の中に「home」というディレクトリを作って、/var/www/home/をドキュメントルートにした場合、/var/www/home/の中に作成されるのでしょうか?
それとも、やはり、/var/www/にファイルが置かれるのでしょうか?
ubuntu で提供されているパッケージの場合 (そのほかのパッケージでもほとんどのものが)、作成するファイルやフォルダーの位置は決め打ちです
つまり、ドキュメントルートを /var/www から /var/www/home などに変更した場合でも、ubuntu のパッケージは /var/www にファイルやフォルダーを作成します
オフライン
yamaさん、ryさん、教えて下さりありがとうございます!
「作成するファイルやフォルダーの位置は決め打ち」なんですね~
ということであれば、yamaさんが教えて下さったように、/var/www/の中にディレクトリを作ってそのディレクトリの所有者をユーザにして運営、というのが今の自分のレベルでは、無難で簡単かもしれません。
沢山教えて頂き本当にありがとうございました!
オフライン