2009-09-27 38 views
13

我是php,mysql中的新手。我写了一个hello.php脚本,我试图将其复制到/ var/www目录中(并且稍后将通过Web浏览器打开它)。同样的问题是,尽管我是root,但我不允许在/ var/www中保存/写入任何文件。我试图实现在this问题的步骤,但我得到以下错误,当我处理第三行如何解决/ var/www复制/写入权限被拒绝?

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

我知道符号链接也是一种选择。我希望能够直接将文件写入/复制到/ var/www /目录。

关于发生什么问题的任何建议?

+0

你肯定* *你以root身份执行此操作? – timdev 2009-09-27 22:03:00

+0

@tim:是的,im postive。 – shubster 2009-09-27 22:10:18

+0

你确定你确定吗?粘贴*一切*。 – 2009-09-27 22:11:02

回答

13

it'matter的* UNIX权限,通过输入

sudo su 
[then type your password] 

获得root存取权限,例如,尝试做你必须做

+2

谢谢我的作品! – 2011-12-04 21:54:43

0

首先,这与php无关。这是一个unix权限问题。您需要以超级用户身份(sudo/su)登录并输入密码,然后尝试该命令。

$ su 
(type password) 
\# your command 

$ sudo command 
$ (type password) 

如果您实际指定了您使用的操作系统,它也可能有所帮助。

+0

@meder:即时通讯使用Ubuntu。我曾尝试使用phoebus提到的$ sudo命令。 – shubster 2009-09-27 22:09:04

+0

您是否提示输入密码?如何复制粘贴*一切*你尝试过? – 2009-09-27 22:10:26

+0

你是否分享电脑?你的用户是否被设置为sudoer? – 2009-09-27 22:12:00

0
sudo cp hello.php /var/www/ 

你会得到什么输出?

+0

@phoebus:输出是'cp:无法创建常规文件'/var/www/hello.php':权限被拒绝' – shubster 2009-09-27 22:06:32

+0

cd/var ls -l www旁边的权限是什么? – phoebus 2009-09-27 22:12:54

+0

这是两个命令,cd/var和ls -l。另外,你在使用什么操作系统? – phoebus 2009-09-27 22:13:37

12

你这是在农业开发环境?为什么不做

chown -R user.group /var/www 

所以你可以写你的用户。

+5

好主意,但正确的语法是'#chown -R newuser:newgroup/var/www' http://en.wikipedia.org/wiki/Chown – unpossible 2012-04-19 07:03:19

4

你有一个/var/www的文件叫hello.php已经有权限吗?也许系统不能替换文件?

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

您是否尝试将权限应用于www文件夹?

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

sudo chmod -R 777 /var/www

然后执行:

sudo cp hello.php /var/www

我只推荐这样做,如果你知道100%,这是确定设置整个www文件夹的权限。通过它的声音,您正在自己的生产服务器上运行,因为大多数活动/共享托管服务器都已安装,因此www文件夹不在/ var文件夹中(而是位于用户的主文件夹中)。

虽然在使用sudo前缀做任何事情时都非常小心,如果您做错了,可能会严重损坏您的系统。

+0

这适用于我。 – AndroidHacker 2018-02-13 07:27:59

0

首先,你需要以root登陆,比去/ etc目录并执行在下面给出一些命令。

[[email protected]~]# cd /etc 
[[email protected] /etc]# vi sudoers 

,并在年底

kundan ALL=NOPASSWD: ALL 

其中kundan是用户名,比保存进入这一行。然后尝试传输的文件,并添加sudo作为前缀到要执行的命令:

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

那里拉胡尔是在同一个服务器的第二用户。

+1

欢迎来到StackOverflow。请不要在答案中使用简短的短信标记(例如“你”)。另请注意,如何按4个空格缩进文本会生成突出显示的计算机字体标记。 – 2011-08-28 00:27:47

0

你只需要编写sudo,而不是su

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

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

1

今天遇到类似的问题。没有看到我的解决方案在这里列出,所以我想我会分享。

根无法删除文件。

我做了我的研究。结果发现有一种叫做不可变的位。

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

该位被配置可以防止即使root修改/删除它。

要删除此我所做的:

# chattr -i /path/file 

之后,我可以RM文件。

在相反,这是一个巧妙的方法来知道你是否有想从被保管了东西。

:)

7

执行以下命令

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

它将改变html目录的权限,以便您可以上传,下载和删除文件或目录