20

我是php,mysql的新手。我编写了一个 hello.php 脚本,我试图将其复制到 /var/www 目录中(稍后将希望通过 Web 浏览器打开它)。同样的问题是,尽管我是 root,但我不允许在 /var/www 中保存/写入任何文件。我尝试在这个问题中实施步骤,但是在处理第三行时出现以下错误

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 权限的问题,获得 root 访问权限,例如通过键入

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/www名为 hello.php 的文件对其具有权限?也许系统无法替换文件?

虽然,root 访问应该取代系统上的任何用户。

您是否尝试过对www文件夹应用权限?

如果您能做到这一点,请尝试以下操作:

sudo chmod -R 777 /var/www

然后做:

sudo cp hello.php /var/www

如果您知道 100% 可以在整个www文件夹上设置权限,我只建议您这样做。听起来,您正在自己的生产服务器上运行,因为大多数实时/共享托管服务器都已设置,因此该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

今天遇到了类似的问题。没有看到我的修复在这里列出,所以我想我会分享。

Root 无法删除文件。

我做了我的研究。原来有一种东西叫做不可变位。

# 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

首先,您需要以 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 是同一服务器中的第二个用户。

于 2011-08-27T06:57:00.383 回答
0

你只需要写sudo而不是su.

然后只需将 PHP 文件复制到var/www/ directory.

然后转到浏览器,并写入本地文件名host/test.php或任何.php文件名。

于 2013-12-20T01:00:18.630 回答
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

在要修改的目录下输入以下命令:

例如目录:/var/www/html

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

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

这将解决问题。

将用户名替换为您的用户名。

于 2021-01-05T13:53:20.877 回答
0

问题是权限问题导航到 var/www/ 右键单击​​它并选择以管理员身份打开然后继续您的工作

于 2021-07-09T09:30:47.610 回答