【问题标题】:How to resolve /var/www copy/write permission denied?如何解决 /var/www 复制/写入权限被拒绝?
【发布时间】:2010-12-01 20:37:22
【问题描述】:

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

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

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

对出了什么问题有什么建议吗?

【问题讨论】:

    标签: unix permissions cp


    【解决方案1】:

    *unix 权限的问题,获得 root 访问权限,例如通过键入

    sudo su
    [then type your password]
    

    并尝试做你必须做的事情

    【讨论】:

      【解决方案2】:

      您在开发环境中吗?为什么不这样做

      chown -R user.group /var/www
      

      这样你就可以和你的用户一起写作了。

      【讨论】:

      【解决方案3】:

      您在/var/www 中是否已经有一个名为 hello.php 的文件,该文件对其具有权限?可能系统无法替换文件?

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

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

      如果可以,请尝试以下方法:

      sudo chmod -R 777 /var/www

      然后做:

      sudo cp hello.php /var/www

      如果您 100% 知道可以对整个 www 文件夹设置权限,我只建议您这样做。从它的声音来看,您正在自己的生产服务器上运行,因为大多数实时/共享托管服务器都已设置,因此 www 文件夹不在 /var 文件夹中(而是在用户的主文件夹中)。

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

      【讨论】:

      • 这是唯一对我有用的解决方案。谢谢。
      【解决方案4】:

      执行以下命令

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

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

      【讨论】:

        【解决方案5】:

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

        Root 无法删除文件。

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

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

        配置的这个位甚至可以防止 root 修改/删除它。

        为了删除这个我做了:

        # chattr -i /path/file
        

        之后我可以 rm 文件。

        反过来,这是一个巧妙的技巧,可以知道您是否有想要避免消失的东西。

        :)

        【讨论】:

          【解决方案6】:
          sudo chown -R $USER:$USER /var/www
          

          【讨论】:

            【解决方案7】:

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

            $ su
            (type password )
            \# your command
            
            $ sudo command
            $ (type password)
            

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

            【讨论】:

            • @meder:我正在使用 ubuntu。我尝试过使用phoebus提到的$sudo命令。
            • 是否提示您输入密码?复制粘贴您尝试过的所有内容怎么样?
            • 您共享计算机吗?您的用户设置为 sudoer 吗?
            • 你有没有在我的代码 sn-p 中尝试“su”作为第一件事?这将让您以超级用户身份永久运行会话。
            • @meder:行得通。你能告诉我为什么我应该以超级用户的身份工作吗?是 /var/www/ 目录的“默认”权限问题吗?
            【解决方案8】:
            sudo cp hello.php /var/www/
            

            你得到什么输出?

            【讨论】:

            • @phoebus:输出是'cp:无法创建常规文件`/var/www/hello.php':权限被拒绝'
            • cd /var ls -l www旁边的权限是什么?
            • 这是两个命令,cd /var 和 ls -l。另外,您使用的是什么操作系统?
            • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
            • @edorian 非常感谢三年后我第一次发帖时的告诫 :)
            【解决方案9】:

            如果以上都不起作用,您可能正在处理 vfat 文件系统。使用“df”检查。

            更多详情请见http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/。

            【讨论】:

              【解决方案10】:

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

              【讨论】:

              • 欢迎来到 StackOverflow。请不要在您的答案中使用简短的短信符号(例如 'u' 代表 'you')。还要注意将文本缩进 4 个空格如何产生突出显示的计算机字体符号。
              【解决方案11】:

              你只需要写sudo而不是su。

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

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

              【讨论】:

                【解决方案12】:

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

                例如目录:/var/www/html

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

                这样就可以解决问题了。

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

                【讨论】:

                  【解决方案13】:

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

                  【讨论】:

                    猜你喜欢
                    • 2021-10-21
                    • 2017-10-26
                    • 2014-09-10
                    • 2019-05-17
                    • 2016-05-03
                    • 2016-07-02
                    • 2014-03-14
                    • 2014-12-26
                    • 1970-01-01
                    相关资源
                    最近更新 更多