20

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

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

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

何がうまくいかないかについての提案はありますか?

4

13 に答える 13

21

これは*unixパーミッションの問題であり、たとえば次のように入力してルートアクセスを取得します。

sudo su
[then type your password]

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

于 2009-09-27T22:08:52.053 に答える
14

開発環境にいますか?はいの場合、あなたはすることができます

chown -R user:group /var/www

だからあなたはあなたのユーザーと一緒に書くことができるでしょう。

于 2009-09-27T22:10:55.267 に答える
14

/var/wwwhello.phpという名前のファイルに、アクセス許可がすでにありますか?たぶん、システムはファイルを置き換えることができませんか?

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

wwwフォルダにアクセス許可を適用してみましたか?

これができる場合は、次のことを試してください。

sudo chmod -R 777 /var/www

次に行います:

sudo cp hello.php /var/www

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

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

于 2009-09-27T22:13:10.990 に答える
12

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

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

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

于 2015-04-22T12:44:29.877 に答える
2

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

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

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

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

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

これを削除するために私はしました:

# chattr -i /path/file

その後、ファイルをrmすることができました。

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

:)

于 2014-02-06T00:48:16.053 に答える
1
sudo chown -R $USER:$USER /var/www
于 2021-02-11T11:11:23.043 に答える
0

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

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

于 2009-12-23T01:50:34.670 に答える
0

まず、これはphpとは何の関係もありません。これはUNIXの許可の問題です。スーパーユーザー(sudo / su)としてログインし、パスワードを入力してから、そのコマンドを試す必要があります。

$ su
(type password )
\# your command

$ sudo command
$ (type password)

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

于 2009-09-27T22:01:29.723 に答える
0
sudo cp hello.php /var/www/

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

于 2009-09-27T22:03:59.307 に答える
0

まず、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番目のユーザーです。

于 2011-08-27T06:57:00.383 に答える
0

sudoの代わりに書く必要がありsuます。

次に、PHPファイルをにコピーしますvar/www/ directory

次に、ブラウザに移動し、ローカルhost/test.phpまたは.phpファイル名が何であれ書き込みます。

于 2013-12-20T01:00:18.630 に答える
0

右を変更するディレクトリに次のコマンドを入力します。

たとえば、ディレクトリ:/var/www/html

sudo setfacl -m g:username:rwx . #-> for file

sudo setfacl -d -m g:username: rwx . #-> for directory

これで問題は解決します。

usernameを自分のユーザー名に置き換えます。

于 2021-01-05T13:53:20.877 に答える
0

問題は、特権の問題です。var/ www /に移動し、右クリックして[管理者として開く]を選択し、作業を続行します。

于 2021-07-09T09:30:47.610 に答える