web-dev-qa-db-ja.com

/ var / wwwのコピー/書き込み許可が拒否された場合の解決方法

私はphp mysqlの初心者です。 hello.phpスクリプトを作成しました。これを/ var/wwwディレクトリにコピーしようとしています(後でWebブラウザーで開きたい)。同じ問題は、私がルートであるにもかかわらず、/ var/wwwにファイルを保存/書き込みできないことです。 this の質問で手順を実装しようとしましたが、3行目を処理すると次のエラーが表示されます

find /var/www/ -type f -exec chmod g+w '{}' ';'
chmod: changing permissions of `/var/www/index.html': Operation not permitted

シンボリックリンクもオプションです。ファイルを/ var/www /ディレクトリに直接書き込み/コピーできるようにしたいと思います。

何が間違っているのかについての提案はありますか?

18
shubster

* unix権限の問題で、たとえば次のように入力することにより、ルートアクセス権を取得します。

Sudo su
[then type your password]

そしてあなたがしなければならないことをしようとする

16
Lopoc

開発環境にいますか?なぜしないのですか

chown -R user.group /var/www

そのため、ユーザーと書くことができます。

13
Gabriel Sosa

次のコマンドを実行します

Sudo setfacl -R -m u:<user_name>:rwx /var/www

ファイルまたはディレクトリをアップロード、ダウンロード、削除できるように、htmlディレクトリの権限を変更します

10
Chandra D.P

/var/wwwにhello.phpという名前のファイルがあり、そのファイルに既にアクセス許可がありますかシステムがファイルを置き換えることができないのでしょうか?

ただし、ルートアクセスはシステム上のすべてのユーザーに優先する必要があります。

wwwフォルダーにアクセス許可を適用しようとしましたか?

これを実行できる場合は、次を試してください。

Sudo chmod -R 777 /var/www

その後:

Sudo cp hello.php /var/www

wwwフォルダー全体にアクセス許可を設定しても問題ないことが100%わかっている場合にのみ、これを行うことをお勧めします。ほとんどのライブ/共有ホスティングサーバーは、wwwフォルダーが/ varフォルダーにないように設定されているため(その代わりに、ホームフォルダーにあります)ユーザー)。

ただし、Sudoプレフィックスを使用して何かを行う場合は非常に注意してください。間違っていると、システムに重大な損傷を与える可能性があります。

9
Tisch

今日、同様の問題に遭遇しました。ここに私の修正がリストされていないので、共有すると思いました。

ルートはファイルを消去できませんでした。

私は研究をしました。不変ビットと呼ばれるものがあることがわかりました。

# lsattr /path/file
----i-------- /path/file
#

このビットが構成されていると、rootでも変更/削除できなくなります。

これを削除するには:

# chattr -i /path/file

その後、ファイルをrmできました。

逆に、消えないようにしたいものがあるかどうかを知ることは、巧妙なトリックです。

:)

2
user3277597

まず、これはphpとは関係ありません。これは、Unixのアクセス許可の問題です。スーパーユーザー(Sudo/su)としてログインし、パスワードを入力してから、そのコマンドを試してください。

$ su
(type password )
\# your command

$ Sudo command
$ (type password)

使用するオペレーティングシステムを実際に指定した場合にも役立ちます。

0
meder omuraliev
Sudo cp hello.php /var/www/

どのような出力が得られますか?

0
phoebus

Sudoの代わりにsuと書くだけです。

次に、PHPファイルをvar/www/ directory

次に、ブラウザに移動して、ローカルHost/test.phpまたは.phpファイル名は。

0
arao

上記のいずれも機能しない場合は、vfatファイルシステムを扱っている可能性があります。 「df」を使用して確認します。

http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/ を参照してください。

0
Charles Merriam

まず、rootとしてログインし、/ etcディレクトリに移動して、以下に示すいくつかのコマンドを実行する必要があります。

[root@localhost~]# cd /etc
[root@localhost /etc]# vi sudoers

そして最後にこの行を入力してください

kundan ALL=NOPASSWD: ALL

ここで、kundanはユーザー名であり、保存します。次に、ファイルを転送して、実行するコマンドのプレフィックスとしてSudoを追加してみます。

Sudo cp hello.txt /home/rahul/program/

ここで、rahulは同じサーバーの2番目のユーザーです。

0